본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] IAM Policy Evaluation Logic

728x90
반응형

IAM 정책 평가 논리 (Evaluation Logic of IAM Policies)

IAM(Identity and Access Management) 정책의 평가 과정은 복잡하지만 중요한 개념입니다. 본 글에서는 IAM 정책의 평가 로직을 이해하기 쉽게 설명하고, 다양한 정책이 어떻게 상호작용하는지, 각 단계에서 무엇을 확인해야 하는지를 다룹니다.

기본 개념

  1. 기본적으로 모든 요청은 거부
    모든 IAM 요청은 기본적으로 암묵적으로 거부됩니다. 이는 모든 리소스에 대한 액세스가 기본적으로 차단됨을 의미합니다. 하지만 루트 사용자는 예외로, 모든 권한을 가지고 있습니다.
  2. 명시적 허용(Explicit Allow)
    명시적 허용은 해당 요청이 허용된다는 것을 명확하게 지정하는 것입니다. 정체성 기반 정책(Identity-based policy) 또는 리소스 기반 정책(Resource-based policy)에서 명시적으로 허용되면, 기본적으로 거부된 요청도 허용됩니다.
  3. 명시적 거부(Explicit Deny)
    명시적 거부는 요청이 거부되었음을 명확히 지정하는 것입니다. 명시적 거부는 어떤 허용보다 우선하며, 해당 요청은 무조건 거부됩니다.
  4. 권한 경계(Permission Boundary) & SCP(Session Control Policy)
    권한 경계나 SCP, 세션 정책이 있을 경우, 명시적 허용이 있어도 이 정책들이 액세스를 제한할 수 있습니다. 만약 이 정책들에서 명시적 허용이 없다면, 암묵적으로 거부됩니다.

IAM 정책 평가 과정

IAM 정책의 평가 과정은 단계별로 진행되며, 각 정책이 어떻게 적용되는지 확인합니다.

  1. 기본 상태: 거부
    모든 요청은 기본적으로 거부 상태로 시작합니다. 이후 정책을 적용해가며 평가합니다.
  2. 명시적 거부 여부 확인
    첫 번째 단계는 명시적 거부가 있는지 확인하는 것입니다. 만약 명시적 거부가 있으면, 해당 요청은 무조건 거부됩니다.
  3. SCP 존재 여부 확인
    SCP(Service Control Policy)가 존재한다면, 해당 정책에서 명시적으로 허용이 되어야만 요청이 진행됩니다.
  4. 리소스 기반 정책(Resource-based Policy) 평가
    리소스 기반 정책에서 허용이 있으면 해당 요청은 허용됩니다. 그렇지 않으면, 다음 단계로 넘어갑니다.
  5. 정체성 기반 정책(Identity-based Policy) 평가
    정체성 기반 정책에서 명시적으로 허용된 권한이 있어야만 요청이 허용됩니다. 이때 권한 경계가 존재하는 경우, 권한 경계를 고려해 평가해야 합니다.
  6. 세션 정책(Session Policy) 평가
    세션 정책은 **역할(Role)**을 기반으로 한 정책으로, 이를 통해 요청이 최종적으로 허용되는지 결정됩니다.

예제 분석

예제 1: SQS 정책

  • 정책: Deny sqs:* 와 Allow sqs:DeleteQueue
  • 큐 생성: 불가능 - Deny sqs:*로 인해 모든 작업이 거부됨
  • 큐 삭제: 불가능 - Deny sqs:*로 인해 DeleteQueue도 거부됨
  • ec2:DescribeInstances: 불가능 - 명시적으로 허용되지 않아서 암묵적으로 거부됨

예제 2: 크로스 계정 접근

  • 계정 A에 있는 Alice가 계정 B의 S3 버킷에 접근하려는 경우, 계정 A의 요청자는 정체성 기반 정책을 통해 접근 권한을 부여받아야 합니다.
  • 계정 B의 S3 버킷에는 계정 A의 요청자를 허용하는 리소스 기반 정책이 필요합니다.
  • 동일 계정 내에서는 하나의 허용이 있으면 허용되지만, 크로스 계정에서는 양쪽 모두 허용해야 요청이 승인됩니다.

예제 3: IAM 정책, VPC 엔드포인트, 리소스 정책 결합

  • IAM 정책: s3:* 권한을 부여
  • VPC 엔드포인트 정책: list bucket, get object, put object만 허용
  • S3 버킷 정책: 특정 VPC 엔드포인트를 통해서만 접근 가능

이 설정에서는 EC2 인스턴스가 반드시 VPC 엔드포인트를 통해서만 S3 버킷에 접근할 수 있도록 제한됩니다. VPC 엔드포인트 정책이 이를 제어하며, EC2 인스턴스가 VPC 엔드포인트 외부에서 접근하려 하면 명시적 거부가 발생합니다.

결론

IAM 정책의 평가 로직은 다양한 조건에 따라 다르게 작용할 수 있습니다. 기본적으로는 모든 요청이 거부되며, 명시적 허용이나 거부가 우선 적용됩니다. 또한 권한 경계, SCP, 세션 정책이 존재할 경우 이를 고려해 최종 허용 여부가 결정됩니다.

이해가 어려운 부분도 있을 수 있지만, 다양한 예제와 함께 정책 평가 로직을 익히다 보면 점차 명확해질 것입니다.

728x90
반응형