ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] IAM 개념 및 IAM 사용자 추가하기 + IAM 정책 시뮬레이터
    AWS 2024. 6. 18. 12:50

     

     

    IAM(Identity and Access Management)

    유저를 관리하고 접근 레벨 및 권한에 대한 관리

     

     

    AWS 계정을 최초로 생성할 때,

    해당 계정은 모든 AWS 서비스 및 리소스에 대해 완전한 액세스 권한이 있는 루트 사용자입니다.

    이러한 루트 계정은 모든 권한을 가지고 있기 때문에 공유되어서 사용되면 안됩니다.

     

    만약에 A라는 회사에서 보유하고 있는 루트 계정을

    B, C, D라는 직원이 입사하여 개발과 관리를 위해 권한이 필요하다고 루트 계정을 알려주게 되면

    보안상 심각한 문제가 됩니다. 거기다가 만약에 C라는 직원이 갑자기 퇴사하게 된다면...?!

    그러므로 루트 계정으로부터 특정 리소스에 대해서 관리하고 사용할 수 있는 권한을 부여해주는

    IAM 계정을 B, C, D 직원에 각각 부여하여 사용하는 것이 좋습니다.

     

     

    AWS에 로그인을 하려고 한다면

    아래와 같은 사진처럼 루트 사용자와 IAM 사용자를 구분해서 로그인할 수 있도록 나눠놓은 것을 확인할 수 있습니다.

     

     

     

     

    IAM의 기능

    • 각 사용자에게 고유한 자격 증명(액세스 키, 암호 등)을 할당할 수 있습니다.
    • 매우 세밀한 접근 권한 부여 기능이 존재합니다.
      • 예를 들어서 데이터베이스에서 테이블 생성, 삭제, 복사와 같은 기능 중에 생성 기능만 사용하게 권한을 부여 가능합니다.
    • Multi-Factor Authentication(MFA, 다중인증) 기능을 제공합니다.

     

    더 자세한 내용은 아래 링크에서 확인하실 수 있습니다.

    https://aws.amazon.com/ko/iam/faqs/

     

     

     

     

    • 그룹 (Group)
      • 유사한 작업을 수행하는 사용자들에게 동일한 권한을 부여하기 위해 사용됩니다.
      • 사용자는 여러 그룹에 속할 수 있으며, 그룹을 통해 간편하게 권한을 관리할 수 있습니다.

     

    • 유저 (User)
      • 특정 사용자에게 고유한 자격 증명을 제공하고, 개인별로 권한을 부여하기 위해 사용됩니다.
      • 사용자는 직접 정책을 연결하여 권한을 부여받거나, 그룹을 통해 권한을 상속받을 수 있습니다.

     

    • 역할 (Role)
      • 사용자나 서비스가 특정 작업을 수행할 때 필요한 권한을 부여하기 위해 사용됩니다.

     

    • 정책 (Policy)
      • AWS 리소스에 대한 권한을 정의하는 JSON 형식의 문서입니다.
      • 세부적으로 권한을 설정하고 제어하기 위해 사용됩니다.

     

     

     

    IAM 사용자 추가하기

    1) IAM 대시보드

    • 액세스 관리 -> 사용자 클릭
    • 사용자 생성 클릭

     

    2) 사용자 세부 정보 지정

    AWS Management Console에 대한 사용자 액세스 권한 제공을 클릭하면

    Identity Center에서 사용자가 콘솔을 액세스 할 수 있는 권한을 제공받을 수 있습니다.

     

    또한 암호 설정의 경우, AWS에서 자동으로 생성된 암호를 부여하거나 사용자 지정 암호를 통해서 직접 설정할 수 있습니다.


    3) 권한 설정

    권한 설정에서는 사용자 그룹을 새로 생성하거나, 기존의 사용자 그룹에 사용자를 추가할 수 있습니다.

    지금 위 사진은 기존에 만들어 놓은 그룹이 없기 때문에 그룹을 생성하고자 합니다.

    그룹 생성을 클릭해줍니다.

     

     

    그러면 위와 같은 팝업창이 뜨면서 그룹과 해당 그룹에 포함되는 정책들을 추가해줄 수 있습니다.

    완성되었다면 사용자 그룹 생성을 클릭해줍니다.

     

    그럼 위와 같이 생성한 그룹이 나타나는 것을 볼 수 있고,

    생성하고자 하는 사용자를 희망하는 그룹으로 선택해줍니다.

     

     

    4) 검토 및 생성

    지금까지 적용한 내용들을 최종적으로 확인하는 단계입니다.

    앞에서 만든 사용자 세부 정보와 그룹 및 권한에 대한 내용이 맞는지 확인 후, 사용자 생성을 클릭해줍니다.

     

     

    5) 생성된 암호 확인 및 다운로드

    마지막으로 생성한 IAM 계정으로 로그인할 수 있는 콘솔 로그인 URL과

    자동 생성된 암호를 확인할 수 있습니다.

    암호의 경우 해당 페이지를 떠나면 알 수 없으므로 .csv 파일을 다운로드 하는 것을 권장합니다!

     

     

    6) 생성한 IAM 사용자로 로그인해보기

     

    콘솔 로그인 URL로 접속하고 사용자 이름암호를 입력하여 로그인을 해줍니다.

    그러면 처음 발급받은 암호로 로그인을 하게 되면, 비밀번호 변경 창이 뜨게 될 겁니다.

    변경하면 IAM 계정으로 로그인하기 끝!!

     

     

     

     


     

     

    IAM 정책 시뮬레이터

    1. 개발 환경(Staging or Develop)에서 실제 환경(Production)으로 빌드하기 전 IAM 정책이 잘 작동되는지 테스트하기 위함
    2. IAM과 관련된 문제들을 디버깅하기에 최적화된 툴(이미 실제로 유저에 부여된 다양한 정책들도 테스트 가능)

     

    만약에 개발자 A가 데이터베이스 테이블을 만드는 권한이 없다고 한다면,

    실제 개발자 A의 유저 아이디를 가지고 실제로 시뮬레이션을 돌려보는 것입니다.

     

    따라서 IAM과 관련된 문제들이나 알맞은 정책을 특정 개발자들에게 올바르게 정의되어 있는지를 디버깅하는데 최적화된 툴입니다.

    그리고 이미 실제로 유저에게 부여된 정책들도 테스트가 가능합니다.

    다시 말해 개발자 A에게 부여된 모든 정책들을 근거로 어떤 서비스를 사용할 수 있는지 없는지에 대해 한눈에 알 수 있는 것입니다.

     

     

    정책 시뮬레이터 사용하기

    1) IAM 대시보드

    대시보드로 가서 우측 중간쯤에 있는 정책 시뮬레이터를 클릭해줍니다.

     

     

     

    2) 조건 설정하기

    그러면 위 사진과 같은 화면으로 새 탭이 생길겁니다.

    참고로 IAM Policy Simulator는 한글 지원이 되지 않습니다 ㅠㅠ

     

     

     

     

    왼쪽 사이드바? 쪽에서 생성했던 유저를 클릭해주면 위의 오른쪽 사진처럼 설정했던 정책들이 나오는 걸 확인할 수 있습니다.

     

     

     

    Policy Simulator쪽에서 Select service를 누르면 AWS의 모든 서비스들에 대해서 접근이 가능한지 확인을 해볼 수 있습니다.

    저는 EC2로 선택해보겠습니다.

     

     

     

    EC2를 선택하고 바로 오른쪽 버튼인 Select actions를 클릭하면 EC2의 세부 기능들의 대한 권한을 골라서 선택할 수 있습니다.

    모두 테스트를 해보고 싶다면 Select actions 옆의 Select All을 눌러주면 됩니다.

     

     

    그러면 모든 세부 기능들이 선택되고, 아직 Run Simulation을 누르지 않았으므로

    Permission에 Not simulated가 뜨는 것을 확인할 수 있습니다.

    Run Simulation을 클릭해줍니다.

     

     

    다음과 같이 빨간 글씨로 denied로 뜨는 것을 확인할 수 있습니다.

    시뮬레이션을 돌리는 이 유저는 EC2의 해당 Action들에 대해 아무런 권한이 없다는 의미입니다. 

     

     

     

    반면에 다음과 같은 Action들에 대해서는 초록색으로 allowed로 떠있는 것을 볼 수 있습니다.

    그 이유는 제가 해당 유저를 서비스들을 볼 수 있는 권한인 ViewOnlyAccess와 ReadOnlyAccess 정책들을 그룹 권한으로 넣어놨기 때문입니다.

     

     

    이렇게 설정한 권한에 따라 사용자 계정에 대한 시뮬레이션을 돌려보는 것까지 알아보았습니다.

     

     

Designed by Tistory.