
IAM이란?
- IAM (Identity and Access Management): AWS 서비스 및 리소스에 대한 액세스를 안전하게 관리하는 서비스
- 사용자 및 그룹 관리: 권한 부여 및 액세스 제어
- 리소스 공유: 다른 AWS 계정과 리소스를 공유 가능
- 정책 설정: 사용자, 그룹, 역할의 권한을 JSON 형식의 정책 문서로 설정
IAM의 구성
- 사용자 (User): AWS를 사용하는 실제 사람 또는 애플리케이션
- 그룹 (Group): 여러 사용자를 묶어서 동일한 권한을 부여
- 정책 (Policy): 사용자가 무엇을 할 수 있는지 결정하는 JSON 형식의 문서
- 역할 (Role): AWS 리소스에 부여된 권한으로 서비스나 다른 사용자에게 역할을 부여 가능
IAM 인증과 권한 검증 흐름
- 사용자가 리소스에 액세스 요청 시, 해당 사용자가 부여받은 정책을 검증
- 정책이 승인된 경우, 리소스에 액세스 가능
- 그룹이나 역할을 통해서도 권한을 획득할 수 있음
IAM 자격 증명 보고서
- IAM 사용자와 키, MFA 장치 등의 상태를 보여주는 보고서
- 콘솔, CLI, API에서 생성 가능
IAM 사용자의 종류
-
루트 사용자 (Root User)
- AWS 계정을 처음 생성할 때 자동으로 만들어지는 사용자
- 계정과 관련된 모든 권한을 가짐 (결제 관리 포함)
- 관리 목적으로만 사용 권장 (일반 작업에는 사용하지 않음)
- MFA(다단계 인증) 설정을 권장
- 보안 상 탈취되면 계정 전체에 큰 위험이 발생
-
IAM 사용자 (IAM User)
- 루트 사용자를 통해 생성된 사용자
- 특정한 권한과 역할을 부여받아 AWS 리소스 및 서비스 사용
- 실제 사람 또는 애플리케이션이 될 수 있음
- 콘솔 로그인 여부 설정 가능 (콘솔 로그인 사용 여부를 결정)
- 엑세스 키와 시크릿 엑세스 키를 통해 API 호출 가능
- 빌링(결제 관리)은 별도로 설정하지 않으면 불가능
IAM 모범 사용 사례
- 루트 사용자 사용 지양: 관리 작업만 수행, 실제 작업은 IAM 사용자로
- 불필요한 사용자 생성 금지: 최소 권한만 부여
- MFA 활성화: 루트 사용자 및 관리자 사용자에게 필수
- 액세스 키 대신 역할 활용: 보안을 강화하기 위해
- 정기적인 IAM 상태 점검: 자격 증명 보고서를 활용