요청이 허용되는지 거부되는지 결정하기

요청이 허용되는지 거부되는지 결정하기

AWS가 요청을 허용할지 거부할지 결정하는 핵심 규칙을 설명한 페이지예요. "기본 거부", "명시적 허용", "명시적 거부가 허용을 덮는다(Deny 우선)"가 세 가지 기둥이에요.

출처: 문서

본문

AWS 요청이 허용되는지 거부되는지는 다음 규칙으로 결정돼요.

  1. 기본적으로 모든 요청은 거부된다. 아무 정책도 명시적으로 허용하지 않으면 요청은 거부돼요.
  2. 명시적 허용(explicit allow)이 기본 거부를 덮는다. 어떤 정책이든 동작을 명시적으로 허용하면 그 요청은 허용될 수 있어요.
  3. 명시적 거부(explicit deny)가 모든 허용을 덮는다. 적용되는 어떤 정책에 명시적 거부가 있으면, 다른 정책이 아무리 허용해도 그 요청은 거부돼요.

즉 AWS는 요청에 적용되는 모든 정책을 함께 평가해요.

  • 아무 정책에도 명시적 거부가 없고, 어느 정책이든 명시적 허용이 있다면 → 허용.
  • 어떤 정책이든 명시적 거부가 있으면 → 거부 (다른 허용을 무시).
  • 허용도 거부도 없으면 → 거부 (기본 거부).

명시적 거부가 허용보다 우선한다는 점이 핵심이에요. 그래서 최소 권한 원칙을 강화하려면 넓은 허용을 주고서도 특정 조건에서 거부하는 정책을 추가하는 것이 안전한 패턴이에요.

평가 흐름 요약

요청이 들어오면 AWS는 요청에 적용되는 모든 정책 타입(ID 기반, 리소스 기반, 권한 경계, SCP, RCP, 세션 정책)을 모아 함께 평가해요. 하나라도 명시적 거부면 결과는 거부, 그렇지 않고 하나라도 명시적 허용이면 허용, 둘 다 없으면 거부예요.

더 알아보기 (Learn more)