아이덴티티 기반 정책과 리소스 기반 정책

아이덴티티 기반 정책과 리소스 기반 정책 (Identity-based policies and resource-based policies)

IAM의 권한 위임(permission delegation)에는 정책을 권한 부여 대상에 따라 구분해요. 아이덴티티 기반 정책은 사용자·역할·그룹 같은 아이덴티티에 연결하고, 리소스 기반 정책은 S3 버킷이나 SNS 토픽 같은 리소스에 연결해요. 이 두 유형이 어떻게 다르고 언제 쓰는지 이해하면 권한을 올바르게 설계할 수 있어요.

출처: 문서

본문

아이덴티티 기반 정책 (Identity-based policies)

아이덴티티 기반 정책은 특정 주체(principal) — IAM 사용자, 그룹, 역할 — 에 연결되는 정책이에요. 이 정책은 그 주체가 어떤 AWS 작업을 어떤 리소스에 대해 수행할 수 있는지를 정의해요.

  • 권한 부여 방식 — 정책을 연결한 아이덴티티 자체가 권한을 받아요. 정책의 Principal 요소를 지정할 필요가 없어요 (이미 아이덴티티에 연결되어 있으므로).
  • 주로 쓰는 경우 — 대부분의 IAM 권한 부여가 아이덴티티 기반 정책으로 이뤄져요. 인라인 정책과 관리형(스탠드얼론) 정책이 모두 아이덴티티 기반일 수 있어요.
  • 규칙 — 아이덴티티 기반 정책은 명시적 거부(Deny)가 명시적 허용(Allow)을 덮는 표준 규칙을 따르며, 권한 경계(permissions boundary)와 결합될 수 있어요.

리소스 기반 정책 (Resource-based policies)

리소스 기반 정책은 리소스 자체에 연결되는 정책이에요. 이 정책은 Principal 요소에서 누가(어떤 계정·역할·사용자) 그 리소스에 접근할 수 있고 어떤 작업을 할 수 있는지를 지정해요.

  • 권한 부여 방식 — 정책을 연결한 리소스가 접근을 위임해요. 정책의 Principal 요소에 접근을 허용할 교차 계정 프린시펄이나 다른 아이덴티티를 명시해요.
  • 주로 쓰는 경우 — Amazon S3 버킷 정책, Amazon SNS 토픽 정책, Amazon SQS 큐 정책, AWS KMS 키 정책, Amazon S3 버킷 정책 등. 리소스 기반 정책은 교차 계정 접근을 간단히 허용하는 데 특히 유용해요 — 역할을 만들 필요 없이 (아이덴티티 기반 정책과 함께) 리소스에서 직접 허용할 수 있기 때문이에요.
  • 규칙 — 리소스 기반 정책은 정책이 연결된 리소스에 대해 제어권이 있어요. 리소스 기반 정책의 교차 계정 접근은, 요청하는 프린시펄의 아이덴티티 기반 정책과 리소스 기반 정책이 모두 접근을 허용할 때만 동작해요.

두 정책 유형의 상호작용

동일 계정 내에서는 아이덴티티 기반 정책만으로 충분히 권한을 위임할 수 있어요. 하지만 교차 계정 접근의 경우, 요청하는 계정의 아이덴티티 기반 정책과 리소스를 소유한 계정의 리소스 기반 정책이 둘 다 접근을 허용해야 해요. 명시적 Deny가 있으면 우선 거부돼요.

정책이 어떻게 결합·평가되는지에 대한 자세한 내용은 정책 평가 로직을 참고하세요.

리소스 기반 정책을 지원하는 서비스

모든 AWS 서비스가 리소스 기반 정책을 지원하는 것은 아니에요. 리소스 기반 정책을 지원하는 서비스 목록은 IAM과 함께 동작하는 AWS 서비스를 참고해 "Resource-based policies" 열을 확인하세요.

더 알아보기 (Learn more)