상위: AWS
요약
AWS Identity and Access Management(IAM)는 AWS 계정 내에서 누가(주체) 무엇을(리소스) 어떻게(작업) 할 수 있는지를 중앙에서 관리하는 서비스. 모든 AWS 보안의 출발점.
핵심 구성 요소
- IAM User: 개별 사용자. AWS 리소스 접근 자격증명(액세스 키, 콘솔 비밀번호) 보유
- IAM Group: User를 묶어 정책을 일괄 적용 (예:
developers,admins) - IAM Policy: 어떤 주체에 어떤 작업이 허용/거부되는지 정의하는 JSON 문서 (
Effect/Action/Resource구조) - IAM Role: 자격증명을 심지 않고 임시로 권한을 위임받는 장치. EC2·Lambda 같은 서비스가 다른 서비스에 접근할 때 사용
실무 원칙
- 최소 권한(Least Privilege): 필요한 작업·리소스만 명시적으로 허용.
*권한은 지양 - 키 대신 Role: EC2에 액세스 키를 하드코딩하지 말고 인스턴스 프로파일(Role)로 부여 — 키 유출 사고의 대부분이 하드코딩에서 발생
- 루트 계정 봉인: 루트는 MFA 걸고 일상 작업에 사용 금지
예시 정책
{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::my-bucket/*"
}
특정 버킷의 객체 읽기만 허용 — 이 이상은 전부 기본 거부.