728x90
반응형
IAM 정책 평가 논리 (Evaluation Logic of IAM Policies)
IAM(Identity and Access Management) 정책의 평가 과정은 복잡하지만 중요한 개념입니다. 본 글에서는 IAM 정책의 평가 로직을 이해하기 쉽게 설명하고, 다양한 정책이 어떻게 상호작용하는지, 각 단계에서 무엇을 확인해야 하는지를 다룹니다.
기본 개념
- 기본적으로 모든 요청은 거부
모든 IAM 요청은 기본적으로 암묵적으로 거부됩니다. 이는 모든 리소스에 대한 액세스가 기본적으로 차단됨을 의미합니다. 하지만 루트 사용자는 예외로, 모든 권한을 가지고 있습니다. - 명시적 허용(Explicit Allow)
명시적 허용은 해당 요청이 허용된다는 것을 명확하게 지정하는 것입니다. 정체성 기반 정책(Identity-based policy) 또는 리소스 기반 정책(Resource-based policy)에서 명시적으로 허용되면, 기본적으로 거부된 요청도 허용됩니다. - 명시적 거부(Explicit Deny)
명시적 거부는 요청이 거부되었음을 명확히 지정하는 것입니다. 명시적 거부는 어떤 허용보다 우선하며, 해당 요청은 무조건 거부됩니다. - 권한 경계(Permission Boundary) & SCP(Session Control Policy)
권한 경계나 SCP, 세션 정책이 있을 경우, 명시적 허용이 있어도 이 정책들이 액세스를 제한할 수 있습니다. 만약 이 정책들에서 명시적 허용이 없다면, 암묵적으로 거부됩니다.
IAM 정책 평가 과정
IAM 정책의 평가 과정은 단계별로 진행되며, 각 정책이 어떻게 적용되는지 확인합니다.
- 기본 상태: 거부
모든 요청은 기본적으로 거부 상태로 시작합니다. 이후 정책을 적용해가며 평가합니다. - 명시적 거부 여부 확인
첫 번째 단계는 명시적 거부가 있는지 확인하는 것입니다. 만약 명시적 거부가 있으면, 해당 요청은 무조건 거부됩니다. - SCP 존재 여부 확인
SCP(Service Control Policy)가 존재한다면, 해당 정책에서 명시적으로 허용이 되어야만 요청이 진행됩니다. - 리소스 기반 정책(Resource-based Policy) 평가
리소스 기반 정책에서 허용이 있으면 해당 요청은 허용됩니다. 그렇지 않으면, 다음 단계로 넘어갑니다. - 정체성 기반 정책(Identity-based Policy) 평가
정체성 기반 정책에서 명시적으로 허용된 권한이 있어야만 요청이 허용됩니다. 이때 권한 경계가 존재하는 경우, 권한 경계를 고려해 평가해야 합니다. - 세션 정책(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
반응형
'자격증 > AWS Certified Security - Specialty' 카테고리의 다른 글
[AWS SCS] ABAC (0) | 2024.12.21 |
---|---|
[AWS SCS] Identity-Based Policies vs. Resource-Based Policies (0) | 2024.12.21 |
[AWS SCS] IAM Permission Boundaries (1) | 2024.12.21 |
[AWS SCS] IAM Global condition context keys (0) | 2024.12.21 |
[AWS SCS] IAM Condition Operators (0) | 2024.12.21 |