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
'Programming' 카테고리의 다른 글
[AWS, Certified Developer Associate] EC2 - AMI, Instance Store, EBS, EFS (1) | 2024.04.28 |
---|---|
[AWS, Certified Developer Associate] EC2 - 정의, 인스턴스 유형, 보안그룹 (0) | 2024.04.28 |
[시스템 설계: 한번에 인터뷰 합격하기] 샤딩(Sharding) & RDB vs NoSQL (1) | 2024.03.23 |
[시스템 설계: 한번에 인터뷰 합격하기] 데이터베이스의 장애 극복 전략 (0) | 2024.03.18 |
[시스템 설계: 한번에 인터뷰 합격하기] 수평 스케일링 vs 수직 스케일링 (0) | 2024.02.05 |