IAM 정책 평가 로직

IAM 정책 평가 로직 (Policy Evaluation Logic)

정책이 여러 종류이고 서로 겹치면 "결국 허용될까, 거부될까?"가 헷갈려요. IAM은 정해진 평가 규칙으로 이걸 결정해요. 이 논리를 알면 예상치 못한 거부·허용을 줄일 수 있어요.

출처: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html

평가는 크게 세 단계예요.

  1. 인증(Authentication): 요청한 principal을 인증해요(필요한 경우). S3처럼 일부 익명 요청을 허용하는 서비스는 예외.
  2. 요청 컨텍스트 처리: 요청에서 모은 정보로 어떤 정책이 적용되는지 판단.
  3. 허용/거부 결정: 모든 정책 종류를 평가하고, 정책의 순서도 결과에 영향을 줘요.

정책 유형 간 결합 방식이 핵심이에요.

  • 아이덴티티 기반 + 리소스 기반 정책: 같은 계정 안에서 접근하면 두 정책의 권한을 **합집합(union)**으로 봐요. 둘 중 어느 하나에서 허용되면 허용되고, 둘 중 어느 하나의 명시적 deny가 허용을 덮어서 거부로 끝나요.
  • 아이덴티티 기반 정책 + 권한 경계(permissions boundary): 두 권한의 **교집합(intersection)**이 결과예요. 이미 아이덴티티 정책이 있는 사용자에 권한 경계를 추가하면 할 수 있는 작업이 줄어들 수 있어요. 반대로 경계를 제거하면 늘어날 수 있어요.
  • 아이덴티티 기반 정책 + SCP/RCP: 조직 멤버 계정의 사용자가 리소스 기반 정책이 없는 리소스에 접근할 때, 교집합 방식이에요. 사용자 정책·SCP·RCP 세 가지 모두에서 허용되어야 하고, 셋 중 어느 하나의 명시적 deny가 허용을 덮어요.

정리하면 핵심 두 가지예요. deny가 allow를 이긴다. 그리고 같은 카테고리 안에서는 "합집합으로 열리되, 조건이 겹치면 교집합으로 좁혀진다"는 구조를 이해하면 실제 정책을 읽을 때 훨씬 수월해요.

더 알아보기