Amazon S3에서 객체 작업에 대한 요청에 권한을 부여하는 방법 - Amazon Simple Storage Service

Amazon S3에서 객체 작업에 대한 요청에 권한을 부여하는 방법

Amazon S3는 객체 작업 요청을 수신하면 모든 관련 권한(리소스 기반 권한(객체 액세스 제어 목록(ACL), 버킷 정책, 버킷 ACL) 및 IAM 사용자 정책을 런타임에 평가할 정책 집합으로 변환합니다. 그런 다음 일련의 단계에서 발생한 정책 세트를 평가합니다. 각 단계에서 Amazon S3은 세 개의 특정 컨텍스트(사용자 컨텍스트, 버킷 컨텍스트 및 객체 컨텍스트)의 하위 정책 세트를 평가합니다.

  1. 사용자 컨텍스트 – 요청자가 IAM 보안 주체일 경우, 이 보안 주체는 소속된 상위 AWS 계정의 권한을 보유해야 합니다. 이 단계에서 Amazon S3은 상위 계정(또한 컨텍스트 권한을 불림)이 소유한 하위 정책 세트를 평가합니다. 이러한 하위 정책 세트에는 상위 계정이 보안 주체에게 연결한 사용자 정책이 포함됩니다. 상위 계정에서 요청 시 리소스(버킷, 객체)를 소유한 경우, Amazon S3은 동시에 해당 리소스 정책(버킷 정책, 버킷 ACL, 객체 ACL)을 평가합니다.

    참고

    상위 AWS 계정이 리소스(버킷 또는 객체)를 소유한 경우, 사용자 정책이나 리소스 정책 중 하나를 사용하여 IAM 보안 주체에게 리소스 권한을 부여할 수 있습니다.

  2. 버킷 컨텍스트 – 이 컨텍스트에서 Amazon S3은 버킷을 소유한 AWS 계정이 소유한 정책을 평가합니다.

    요청 시 객체를 소유한 AWS 계정이 버킷 소유자와 동일하지 않으면, Amazon S3는 버킷 컨텍스트에서 버킷 소유자가 객체에 대한 액세스를 명백하게 거부했을 경우 정책을 평가합니다. 객체에 명시적으로 거부된 세트가 있는 경우 Amazon S3은 해당 요청에 권한을 부여하지 않습니다.

  3. 객체 컨텍스트 – 요청자는 특정 객체 작업을 수행할 수 있는 객체 소유자의 권한을 보유해야 합니다. 이 단계에서 Amazon S3은 ACL을 평가합니다.

    참고

    버킷과 객체 소유자가 같지 않은 경우 버킷 컨텍스트에서 평가되는 버킷 정책에서 객체에 대한 액세스 권한을 부여할 수 있습니다. 소유자가 다르면 객체 소유자는 객체 ACL을 사용하여 권한을 부여해야 합니다. 객체를 소유한 AWS 계정이 IAM 보안 주체가 속한 상위 계정이기도 한 경우, 사용자 컨텍스트에서 평가되는 사용자 정책에서 객체 권한을 구성할 수 있습니다. 이러한 액세스 정책 대안을 사용하는 것에 대한 자세한 내용은 액세스 정책 지침을 참조하십시오.

    버킷 소유자가 버킷의 모든 객체를 소유하고 버킷 정책 또는 IAM 기반 정책을 사용하여 이러한 객체에 대한 액세스를 관리하려는 경우 객체 소유권에 대해 버킷 소유자 시행 설정을 적용할 수 있습니다. 이 설정을 사용하면 버킷 소유자가 버킷의 모든 객체를 자동으로 소유하고 완전히 제어할 수 있습니다. 버킷 및 객체 ACL은 편집할 수 없으며 더 이상 액세스 대상으로 간주되지 않습니다. 자세한 내용은 객체 소유권 제어 및 버킷에 대해 ACL 사용 중지 단원을 참조하십시오.

다음은 객체 작업의 컨텍스트 기반 평가에 대한 그림입니다.

예제 1: 객체 작업 요청

이 예제에서는 상위 AWS 계정이 1111-1111-1111인 IAM 사용자 Jill이 AWS 계정 2222-2222-2222가 소유한 버킷에서 AWS 계정 3333-3333-3333이 소유한 객체에 대해 객체 작업 요청(예: 객체 가져오기)을 전송합니다.

Jill은 상위 AWS 계정, 버킷 소유자 및 객체 소유자의 권한이 필요합니다. Amazon S3은 다음과 같이 컨텍스트를 평가합니다.

  1. IAM 보안 주체가 요청을 하기 때문에 Amazon S3는 상위 AWS 계정 1111-1111-1111에서 요청된 작업 수행을 위해 Jill에게 권한을 부여했는지 확인하기 위해 사용자 컨텍스트를 평가합니다. Jill이 해당 권한을 보유한 경우 Amazon S3은 버킷 컨텍스트를 평가합니다. 그렇지 않으면 Amazon S3은 요청을 거부합니다.

  2. 버킷 컨텍스트에서, 버킷 소유자, AWS 계정 2222-2222-2222는 컨텍스트 권한입니다. Amazon S3은 버킷 소유자가 객체에 대한 Jill의 액세스를 명백하게 거부했는지 확인하기 위해 버킷 정책을 검토합니다.

  3. 객체 컨텍스트에서 컨텍스트 권한은 AWS 계정 3333-3333-3333인 객체 소유자입니다. Amazon S3은 Jill이 객체에 액세스하는 권한을 보유 중인지 확인하기 위해 객체 ACL을 평가합니다. 권한을 보유한 경우 Amazon S3은 요청에 권한을 부여합니다.