본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] S3 - 권한 평가 프로세스

728x90
반응형

Amazon S3의 권한 부여(Authorization) 작동 방식 이해하기

Amazon S3의 권한 부여는 다소 복잡하게 느껴질 수 있지만, 기본 원칙을 이해하면 보다 효율적으로 리소스를 관리할 수 있습니다. 이번 글에서는 Amazon S3의 권한 부여 작동 방식을 세 가지 주요 컨텍스트로 나누어 설명하고, 복잡한 사용 사례와 함께 실무에서의 적용 방안을 살펴보겠습니다.


1. 권한 부여의 기본 원칙

S3의 권한 부여는 사용자 컨텍스트(User Context), 버킷 컨텍스트(Bucket Context), 그리고 **객체 컨텍스트(Object Context)**의 세 단계로 이루어집니다.

(1) 사용자 컨텍스트

요청자가 IAM 사용자 또는 역할(Role)인 경우, 다음과 같은 사항이 평가됩니다.

  • 요청자의 IAM 정책에 해당 작업을 수행할 권한이 있는가?
  • 권한이 없다면 요청은 즉시 **거부(Denied)**됩니다.

(2) 버킷 컨텍스트

버킷 소유 계정의 정책을 평가하여 다음 사항을 확인합니다.

  • 요청이 **명시적으로 거부(Explicit Deny)**되었는가?
  • 명시적 거부가 없다면 객체 컨텍스트로 넘어갑니다.

(3) 객체 컨텍스트

객체 소유자가 요청자에게 권한을 부여했는지 확인합니다.

  • 권한이 없다면 요청은 거부됩니다.
  • 권한이 있다면 요청은 **허가(Granted)**됩니다.

2. 복잡한 사용 사례: 계정 간 권한 부여

다음은 세 개의 계정이 관여하는 복잡한 사용 사례입니다.

  • 계정 1: 사용자 Jill이 속한 계정
  • 계정 2: S3 버킷을 소유한 계정
  • 계정 3: 해당 버킷 내 객체를 소유한 계정

이 경우 S3는 다음 단계를 거쳐 권한을 평가합니다.

  1. IAM 정책 확인
    • 사용자 Jill이 요청한 작업을 수행할 권한이 있는지 확인합니다.
    • 권한이 없으면 요청은 즉시 거부됩니다.
  2. 버킷 정책 평가
    • 버킷 소유자인 계정 2가 요청을 명시적으로 거부했는지 확인합니다.
    • 명시적 거부가 없다면 객체 컨텍스트로 이동합니다.
  3. 객체 ACL 평가
    • 객체 소유자인 계정 3이 사용자 Jill에게 권한을 부여했는지 확인합니다.
    • 권한이 없다면 요청은 거부됩니다.

3. 간소화: 버킷 소유자 강제 설정

ACL(Access Control List)은 복잡하고 관리가 어렵기 때문에 AWS에서는 **버킷 소유자 강제 설정(Bucket Owner Enforced Setting)**을 도입했습니다.
이 설정을 활성화하면, 다음과 같은 변화가 발생합니다.

  • 버킷 소유자와 객체 소유자가 동일한 것으로 간주됩니다.
  • ACL은 더 이상 수정할 수 없으며, 권한 평가에서 제외됩니다.
  • 권한 부여 과정이 간소화됩니다.

4. 버킷 작업 vs 객체 작업

S3의 작업은 버킷 작업객체 작업으로 나뉩니다.

(1) 버킷 작업

  • 예시: s3:ListBucket
  • 리소스는 버킷 수준에서 적용됩니다.
    • ARN 예시: arn:aws:s3:::my-bucket

(2) 객체 작업

  • 예시: s3:GetObject, s3:PutObject, s3:DeleteObject
  • 리소스는 객체 수준에서 적용됩니다.
    • ARN 예시: arn:aws:s3:::my-bucket/*
    • /*는 버킷 내 모든 객체를 대상으로 합니다.

5. 실무 적용 팁

  1. ACL 사용 최소화
    • 가능하다면 버킷 정책만 사용하여 권한을 관리하세요.
    • ACL은 관리 복잡성을 증가시키므로, 사용을 지양하는 것이 좋습니다.
  2. 명시적 거부 활용
    • 권한 부여 시 **명시적 거부(Explicit Deny)**를 적극적으로 활용해 예상치 못한 접근을 방지하세요.
  3. 정책 구분
    • 버킷 작업과 객체 작업에 따라 적절한 ARN 패턴을 설정하세요.
  4. 테스트와 검증
    • IAM 정책, 버킷 정책, 객체 권한 설정을 테스트하여 의도한 대로 작동하는지 검증하세요.

Amazon S3의 권한 부여는 복잡해 보이지만, 기본 원칙과 사용 사례를 이해하면 보다 안전하고 효율적인 리소스 관리가 가능합니다.

728x90
반응형