| 구분 | 정책 (Policy) | 역할 (Role) |
|---|---|---|
| 본질 | 권한 규칙(Allow/Deny) | 임시 자격 증명 신분 |
| 부착 대상 | 사용자/그룹/역할(Identity-based) 또는 리소스(Resource-based) | 스스로 정책을 붙여 권한을 가짐 |
| 자격 증명 | 없음(문서일 뿐) | 장기 키 없음, STS로 임시 키 발급 |
| 누가 사용? | 붙어 있는 주체가 그대로 사용 | 사람/서비스/다른 계정이 AssumeRole로 “역할을 가정”하여 사용 |
| 꼭 필요한 문서 | — | 신뢰 정책(Trust policy): “누가 AssumeRole 가능한가” |
| 대표 사용처 | 권한 정의/재사용 | EC2/Lambda 실행 역할, 크로스 계정 접근, SSO/페더레이션 |
형태: JSON 문서. Effect, Action, Resource, Condition으로 구성.
종류
예시(조각):
{ "Effect":"Allow", "Action":["s3:GetObject"], "Resource":"arn:aws:s3:::my-bucket/*" }
임시 자격 증명 전용 신분. 패스워드/엑세스키 없음.
두 가지 정책을 가짐:
주요 쓰임
신뢰 정책 예시(크로스 계정)
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::111122223333:root" },
"Action": "sts:AssumeRole",
"Condition": { "StringEquals": { "sts:ExternalId": "my-ext-id" } }
}]
}
권한 정책 예시(해당 역할이 할 수 있는 일)
{
"Version": "2012-10-17",
"Statement": [{
"Effect":"Allow",
"Action":["s3:ListBucket","s3:GetObject"],
"Resource":[
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}]
}
Q. 사용자와 역할의 차이는?
Q. 그룹은 뭐죠?
Q. 리소스 정책만으로도 되나요?
aws:PrincipalOrgID/aws:SourceArn 조건)