IAM (Identity and Access Management)
→ AWS 리소스에 대한 사용자 접근 제어 및 권한 관리 서비스
| 항목 | 루트 유저 | IAM 유저 |
|---|---|---|
| 권한 | 전체 권한 | 역할별 권한 제한 가능 |
| 수량 | 1명 | 여러 명 생성 가능 |
| 삭제 | ❌ 불가 | ⭕ 가능 |
| MFA | 설정 권장 (필수 아님) | 설정 권장 |
| API 호출 | ❌ 불가 | ⭕ 가능 |
| 결제정보 접근 | ⭕ 가능 (IAM 유저는 허용받아야 가능) | ❌ (기본 차단) |
Access Key / Secret Key
IAM 사용자의 API 호출을 위한 자격 정보
Secret Key는 1회만 제공, 유출 금지
IAM 사용자는 기본적으로 결제(Billing) 접근 불가
→ 루트 계정에서 허용 설정 필요
기능 요약:
| 구성요소 | 설명 |
|---|---|
| 사용자(User) | AWS를 사용하는 사람 또는 애플리케이션 |
| 그룹(Group) | 사용자 집합, 그룹에 부여된 권한은 구성원 전체에게 적용 |
| 정책(Policy) | JSON 형식의 권한 설정 문서, 무엇을 할 수 있는지 정의 |
| 역할(Role) | 일시적으로 권한을 위임받아 수행할 수 있도록 하는 가상 권한 묶음 (ex. 다른 사용자나 서비스가 역할을 "입고" 작업 수행) |
JSON이란?
- 정책 문서를 구성하는 형식
- JavaScript Object Notation의 약자
- Key-Value 구조
- 다양한 언어에서 사용 가능
{ "Statement": { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::example-bucket/*" } }
IAM 권한 검증 절차
예: 사용자가 S3 접근 시
- 사용자에게 직접 정책이 부여되어 있는가?
- 사용자 소속 그룹에 정책이 부여되어 있는가?
- 사용자에게 부여된 역할에 정책이 있는가?
✅ 하나라도 만족 시 → 권한 있음
❌ 전부 부재 시 → 권한 없음
IAM 계정의 보안 상태를 요약한 CSV 보고서
포함 정보:
4시간마다 생성 가능
콘솔, CLI, API 모두 지원
보안 감사, 자동화, 상태 점검에 유용