[AWS, Certified Developer Associate] IAM
Programming

[AWS, Certified Developer Associate] IAM

IAM (Identity and Access Management)

  • 사용자 생성, 그룹배치
  • 글로벌 서비스
  • 계정 생성 시 기본적으로 Root account 생성
  • 사용자를 생성해 특정 그룹 내에 배치
    • 그룹 내에 그룹은 X
  • 각 그룹 별로 AWS 권한을 설정하는 데에 사용
    • 보안문제, 비용문제를 방지하기 위해 사용자 별 권한을 제한
    • 최소 권한의 원칙 (least privilege principle)
  • 한 사용자가 다수의 그룹에 포함될 수 있음

 

 

IAM 정책

  • 사용자, 그룹, IAM 역할의 권한을 정의하는 JSON 문서
  • 그룹 별로 정책 생성 가능
  • 그룹에 속해있지 않은 사용자에 대해서는 사용자에 대해서만 적용 가능한 인라인 정책 생성 가능

 

  • Version : 정책 언어 버전, 보통 2012-10-17
  • Id : 정책 식별자 (Optional)
  • Statement : 하나 이상의 독립적인 구성
    • Sid : Statement 식별자 (Optional)
    • Effect : 각 정책의 허용/거부 여부 (Allow, Deny)
    • Principal : 정책이 적용될 대상 (account/user/role)
    • Action : 정책이 적용될 API 호출 목록
    • Recourse : 적용될 Action의 리소스 목록

 

IAM 비밀번호 정책과 MFA (Multi Factor Authentication)

  • 보안을 위해 비밀번호 정책 설정 가능
    • 최소 비밀번호 길이
    • 특정 문자 필수
    • 비밀번호 변경 가능 여부 설정
    • 비밀번호 재사용 방지
  • AWS는 MFA를 필수적으로 사용하도록 권장
  • 비밀번호 + 보안장치를 통해 이중으로 로그인
  • 비밀번호가 유출되어도 MFA를 통한 이중 로그인이 필요하므로 보안 우수
  • MFA의 종류
    • Virtual MFA device (가상 MFA 장치) : Google Authenticator, Authy
    • U2F (Universal 2nd Factor) : 물리적 장치. 하나의 키에서 루트, IAM 모두 지원
    • Hardware Key Fob MFA Device : AWS GovCloud (US)에 필요

 

IAM 역할 (Role)

  • 사용자가 아닌 AWS 서비스가 수행하는 Action에 대한 권한을 생성
  • ex) EC2 인스턴스에 IAMReadOnlyAccess 권한이 포함된 IAM Role 적용
    • 해당 Role이 적용된 EC2 인스턴스는 IAM Read 가능

  • EC2 Instance Roles
  • Lambda Function Roles
  • Roles for CloudFormation

 

IAM 모범사례

  • Root Account는 AWS 계정 설정 제외 사용 X
  • 사용자를 그룹에 넣어 해당 그룹에 권한 부여 가능 (그룹 단위 권한 관리)
  • MFA 등을 활용해 보안 강화
  • AWS 서비스에 권한을 부여할 때마다 IAM Role 생성해 사용
  • CLI, SDK 사용 시 액세스키 생성 및 사용
  • 게정 권한을 관리할 때에는 IAM 자격 증명 보고서 / IAM 액세스 분석기 사용
  • IAM 사용자와 액세스 키 공유 X

Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!