크로스 계정 정책 평가
크로스 계정 정책 평가
계정 간(크로스 계정) 접근에서 리소스 기반 정책과 ID 기반 정책이 어떻게 함께 평가되는지 설명하는 페이지예요. 리소스가 있는 계정과 요청을 보낸 계정이 다를 때의 평가 원리를 다뤄요.
출처: 문서
본문
일반적인(같은 계정) 경우에는 ID 기반 정책만으로 접근을 결정할 수 있어요. 하지만 크로스 계정 접근에서는 리소스 기반 정책과 ID 기반 정책이 함께 작동해야 해요.
예를 들어 계정 A의 IAM 사용자가 계정 B의 S3 버킷에 접근한다고 해볼게요. AWS는 요청에 적용되는 모든 정책을 함께 평가해요. 즉 계정 A의 ID 기반 정책과 계정 B의 버킷에 대한 리소스 기반 정책(버킷 정책)을 함께 봐요.
크로스 계정 요청이 허용되려면 두 정책이 모두 허용해야 해요.
- ID 기반 정책 — 요청한 프린시펄(IAM 사용자/역할)의 정책이 해당 동작에 접근을 허용해야 해요.
- 리소스 기반 정책 — 대상 리소스의 정책(예: S3 버킷 정책)이 그 프린시펄에게 접근을 허용해야 해요.
둘 중 하나라도 허용하지 않으면(또는 어느 쪽이든 명시적 거부가 있으면) 요청은 거부돼요. 특히 명시적 거부는 어느 정책에 있든 전체 요청을 거부해요.
계정 내(같은 계정) 평가
같은 계정 안에서 리소스 기반 정책과 ID 기반 정책이 둘 다 있으면, 일반적으로 ID 기반 정책의 허용만으로 충분할 수 있어요. 같은 계정에서는 리소스 기반 정책 없이 ID 기반 정책만으로도 접근을 허용할 수 있어요. 다만 리소스 기반 정책의 명시적 거부는 같은 계정에서도 적용돼요.
크로스 계정 평가 예시
계정 A의 사용자 Mary가 계정 B의 버킷 amzn-s3-demo-bucket에 접근하려는 경우를 생각해 볼게요.
- 계정 A에서
Mary에게s3:GetObject허용하는 ID 기반 정책을 연결했다고 해요. - 계정 B의 버킷 정책이
Mary를 프린시펄로s3:GetObject허용해야 요청이 성공해요.
즉 리소스 기반 정책과 ID 기반 정책이 모두 허용해야 크로스 계정 접근이 가능해요.
자세한 크로스 계정 정책 조합 규칙과 예시는 정책 언어 상호작용을 참고하세요.