Post

AWS IAM 접근 권한 관리

IAM 구성 요소, 최소 권한 정책, 유저 생성과 역할 설정

AWS IAM 접근 권한 관리

1. IAM(Identify and Access Management)

  • IAM은 누가, 어떤 리소스나 서비스를 사용할 수 있는지 접근 레벨이나 권한 관리 기능을 제공
  • 대부분의 AWS 리소스가 지역에 따라 제공하는 서비스와 기능이 다른 것과 다르게 IAM은 유니버셜하게 적용되므로 따로 지역을 설정해줄 필요가 없다.
  • IAM은 리소스에 대한 권한만 관리하는 것이 아니라 리소스 안에서 이루어지는 다양한 행동에 대한 세밀한 접근 권한 관리도 가능하다.

2. 최소 권한 정책(least privilege policy)

  • IAM의 목적은 유저가 특정 리소스에만 접근할 수 있고, 특정 데이터만 불러오고 수정할 수 있는 제약을 둠으로써 최소 권한 정책을 적용하는 것이다.
  • 최소 권한 정책을 적용하여 팀에서 그들의 업무를 진행하는 데 최소한의 역할만 제공하고 (필요한 AWS에 대한 권한만 부여) 그 이외에 대한 접근은 일체 차단해야 한다.

3. IAM 구성 요소

  • User: Access Key와 Secret Key를 가지고 AWS 리소스를 사용하는 객체이다.
  • Group: 하나 혹은 여러 유저를 포함한다. 접근 권한을 설정할 때 유저 개개인이 아닌 그룹에 적용할 수 있다. 그러면 그룹 안에 속해있는 모든 유저가 영향을 받는다. 일반적으로 유저보다는 그룹에 특정 권한을 제공한다.
  • Role: 역할은 하나 혹은 다수의 정책을 포함할 수 있다. 대부분의 역할은 AWS에서 디폴트로 제공하지만, 다양한 정책을 합쳐서 새로운 역할을 만들어 유저 및 그룹에 적용할 수도 있다.
  • Policy: 정책을 만들어 최소 권한 정책을 펼칠 수 있다. 정책 A는 데이터베이스 읽기 전용, 정책 B는 대시보드 생성 후 모든 작업을 진행할 수 있는 어드민 모드, 정책 C는 류트 유저 권한으로 설정할 수 있다. 이렇게 다양한 정책을 만들어 유저 및 그룹에 적용할 수 있다.

4. IAM 정책 시뮬레이터

  • 루트 유저가 다른 유저에게 역할 및 정책을 적용시킬 수 있지만 실제로 잘 작동할지는 확실하지 않다.
  • 역할 및 정책을 유저에게 적용하기 전 IAM 정책 시뮬레이터를 돌려봄으로써 IAM 정책이 특정 유저에게 잘 작동되는지 확인할 수 있다.

5. 유저 생성

  • AWS 엑세스 유형
    • 프로그래밍 방식 엑세스: Access Key와 Secret Key가 제공되며, API를 통해 다양한 AWS 리소스의 사용이 가능하다.
    • AWS Management Console 엑세스: 콘솔에서 비밀번호를 통해 AWS 메인 화면에 로그인할 수 있다.

6. 역할 및 정책 생성

  • 신뢰할 수 있는 엔티티
    • AWS 서비스: AWS에서 제공하는 리소스에 대한 다양한 엑세스 컨트롤을 담당
    • AWS 계정: 외부 AWS 유저를 관리
    • 웹 자격 증명: 다양한 플랫폼(Facebook, Google 등)의 인증 과정을 거쳐 오는 유저를 관리하는 옵션
This post is licensed under CC BY 4.0 by the author.