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

Amazon S3에서 버킷 작업 요청에 권한을 부여하는 방법

Amazon S3에서 버킷 작업에 대한 요청을 수신하면, Amazon S3는 모든 관련 권한을 정책 세트로 변환하여 런타임 시 평가합니다. 관련 권한에는 리소스 기반 권한(예: 버킷 정책 및 버킷 액세스 제어 목록)과 사용자 정책(요청이 IAM 보안 주체인 경우)이 포함됩니다. 그러면 Amazon S3가 특정 컨텍스트(사용자 컨텍스트 또는 버킷 컨텍스트)에 따라 일련의 단계에서 발생한 정책 세트를 평가합니다.

  1. 사용자 컨텍스트 – 요청자가 IAM 보안 주체일 경우, 이 보안 주체는 소속된 상위 AWS 계정의 권한을 보유해야 합니다. 이 단계에서 Amazon S3은 상위 계정(또한 컨텍스트 권한으로 불림)이 소유한 하위 정책 세트를 평가합니다. 이러한 하위 정책 세트에는 상위 계정이 보안 주체에게 연결한 사용자 정책이 포함됩니다. 또한 상위 계정에서 요청 시 리소스를 소유한 경우(이 경우에는 버킷), Amazon S3은 동시에 해당 리소스 정책(버킷 정책, 버킷 ACL)을 평가합니다. 버킷 작업에 대한 요청이 만들어질 때마다 서버 액세스 로그에 요청자의 정식 ID가 기록됩니다. 자세한 내용은 서버 액세스 로깅을 사용한 요청 로깅 단원을 참조하십시오.

  2. 버킷 컨텍스트 – 요청자는 특정 버킷 작업을 수행할 수 있는 버킷 소유자의 권한을 보유해야 합니다. 이 단계에서 Amazon S3는 버킷을 소유한 AWS 계정이 소유한 하위 정책 세트를 평가합니다.

    버킷 소유자는 버킷 정책 또는 버킷 ACL을 사용하여 권한을 부여할 수 있습니다. 버킷을 소유한 AWS 계정이 IAM 보안 주체의 상위 계정이기도 한 경우 사용자 정책에서 버킷 권한을 구성할 수 있습니다.

다음은 버킷 작업의 컨텍스트 기반 평가에 대한 그래픽을 이용한 그림입니다.

다음 예는 평가 논리를 설명합니다.

예제 1: 버킷 소유자가 요청한 버킷 작업

이 예제에서 버킷 소유자는 AWS 계정의 루트 자격 증명을 사용하여 버킷 작업을 위한 요청을 보냅니다.

Amazon S3은 다음과 같이 컨텍스트 평가를 수행합니다.

  1. AWS 계정의 루트 사용자 자격 증명을 사용하여 요청이 되므로 사용자 컨텍스트는 평가되지 않습니다.

  2. 버킷 컨텍스트에서 Amazon S3은 요청자가 작업을 수행할 수 있는 권한을 보유하고 있는지 확인하기 위해 버킷 정책을 검토합니다. Amazon S3에서 요청에 권한을 부여합니다.

예제 2: 버킷 소유자가 아닌 AWS 계정에서 요청한 버킷 작업

이 예제에서는 AWS 계정 2222-2222-2222가 소유한 버킷 작업을 위해 AWS 계정 1111-1111-1111의 루트 사용자 자격 증명을 사용하여 요청이 이루어졌습니다. 이 요청과 관련된 어떤 IAM 사용자도 없습니다.

이 경우, Amazon S3은 다음과 같이 컨텍스트를 평가합니다.

  1. AWS 계정의 루트 사용자 자격 증명을 사용하여 요청이 되므로 사용자 컨텍스트는 평가되지 않습니다.

  2. 버킷 컨텍스트에서 Amazon S3은 버킷 정책을 검토합니다. 버킷 소유자(AWS 계정 2222-2222-2222)가 요청된 작업을 수행할 수 있도록 AWS 계정 1111-1111-1111에 권한을 부여하지 않은 경우, Amazon S3가 요청을 거부합니다. 그렇지 않으면 Amazon S3은 요청에 권한을 부여하고 해당 작업을 수행합니다.

예제 3: 상위 AWS 계정이 버킷 소유자인 IAM 보안 주체가 요청한 버킷 작업

이 예제에서는 또한 버킷을 소유하고 있는 AWS 계정 1111-1111-1111의 IAM 사용자인 Jill이 요청을 보냅니다.

Amazon S3은 다음의 컨텍스트 평가를 수행합니다.

  1. 사용자 컨텍스트에서 IAM 보안 주체가 요청을 하기 때문에 Amazon S3는 상위 AWS 계정에 속한 모든 정책을 평가하여 Jill이 작업을 수행할 권한을 보유하고 있는지 확인합니다.

    이 예제에서는 보안 주체가 속한 상위 AWS 계정 1111-1111-1111도 버킷 소유자입니다. 따라서 사용자 정책 이외에도 Amazon S3에서는 이들이 동일한 계정에 속하기 때문에 동일한 컨텍스트에서 버킷 정책과 버킷 ACL을 평가합니다.

  2. Amazon S3은 사용자 컨텍스트의 일부로 버킷 정책과 버킷 ACL을 평가했기 때문에 버킷 컨텍스트는 평가하지 않습니다.

예제 4: 상위 AWS 계정이 버킷 소유자가 아닌 IAM 보안 주체가 요청한 버킷 작업

이 예제에서는 상위 AWS 계정이 1111-1111-1111인 IAM 사용자인 Jill이 요청을 전송하지만 버킷은 다른 AWS 계정, 2222-2222-2222가 소유합니다.

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

  1. IAM 보안 주체가 요청을 하기 때문에 Amazon S3은 Jill이 필요한 권한을 보유하고 있는지 확인하기 위해 계정에서 작성한 정책을 검토하여 사용자 컨텍스트를 평가합니다. Jill이 권한을 보유한 경우 Amazon S3은 계속하여 버킷 컨텍스트를 평가합니다. 그렇지 않은 경우 요청을 거부합니다.

  2. 버킷 컨텍스트에서 Amazon S3는 요청된 작업을 수행하기 위해 버킷 소유자 2222-2222-2222가 Jill(또는 Jill의 상위 AWS 계정)에게 권한을 부여했는지를 확인합니다. Jill이 해당 권한을 보유한 경우 Amazon S3은 작업을 요청하고 수행합니다. 그렇지 않은 경우, Amazon S3은 요청을 거부합니다.