권한 - Amazon Simple Storage Service

권한

Amazon S3 다중 리전 액세스 포인트는 여러 AWS 리전에 있는 Amazon S3 버킷에 대한 데이터 액세스를 간소화할 수 있습니다. 다중 리전 액세스 포인트는 GetObjectPutObject 등의 Amazon S3 데이터 액세스 객체 작업을 수행하는 데 사용할 수 있는 글로벌 엔드포인트입니다. 각 다중 리전 액세스 포인트는 글로벌 엔드포인트를 통해 이루어진 모든 요청에 대해 고유한 권한 및 네트워크 제어를 가질 수 있습니다.

또한 각 다중 리전 액세스 포인트는 기본 버킷에 연결된 버킷 정책과 함께 작동하는 사용자 지정 액세스 정책을 적용합니다. 요청이 성공하려면 다음의 모든 정책에서 해당 작업을 허용해야 합니다.

  • 다중 리전 액세스 포인트 정책

  • 기본 AWS Identity and Access Management(IAM) 정책

  • 기본 버킷 정책(요청이 라우팅되는 대상 위치)

특정 IAM 사용자 또는 그룹의 요청만 수락하도록 다중 리전 액세스 포인트 정책을 구성할 수 있습니다. 이렇게 하는 방법의 예는 다중 리전 액세스 포인트 정책 예시의 예시 2를 참조하세요. Virtual Private Cloud(VPC)의 요청만 수락하도록 다중 리전 액세스 포인트를 구성하여 프라이빗 네트워크에 대한 Amazon S3 데이터 액세스를 제한할 수 있습니다.

예를 들어, AWS 계정의 AppDataReader 사용자를 이용하여 다중 리전 액세스 포인트를 통해 GetObject 요청을 한다고 가정하겠습니다. 요청이 거부되지 않도록 하려면 다중 리전 액세스 포인트 및 다중 리전 액세스 포인트의 기본 버킷 각각이 s3:GetObject 권한을 AppDataReader 사용자에게 부여해야 합니다. AppDataReader는 이 권한을 부여하지 않는 버킷에서 데이터를 검색할 수 없습니다.

중요

버킷에 대한 액세스 제어를 위임해도 직접 버킷 이름을 사용하거나 Amazon 리소스 이름(ARN)을 통해 버킷에 액세스할 때 버킷의 동작은 변경되지 않습니다. 버킷에 대한 모든 직접적인 작업은 여전히 이전과 같이 작동합니다. 다중 리전 액세스 포인트 정책에 포함하는 제한은 해당 다중 리전 액세스 포인트를 통해 이루어진 요청에만 적용됩니다.

다중 리전 액세스 포인트에 대한 퍼블릭 액세스 관리

다중 리전 액세스 포인트는 각 다중 리전 액세스 포인트에 대해 독립적인 퍼블릭 액세스 차단 설정을 지원합니다. 다중 리전 액세스 포인트를 생성할 때 해당 다중 리전 액세스 포인트에 적용되는 퍼블릭 액세스 차단 설정을 지정할 수 있습니다.

참고

이 계정의 퍼블릭 액세스 차단 설정(사용자 계정) 또는 외부 버킷에 대한 퍼블릭 액세스 차단 설정에서 활성화된 퍼블릭 액세스 차단 설정은 다중 리전 액세스 포인트에 대한 독립적인 퍼블릭 액세스 차단 설정이 비활성화된 경우에도 계속 적용됩니다.

다중 리전 액세스 포인트를 통해 이루어진 요청에 대해 Amazon S3는 다음에 대한 퍼블릭 액세스 차단 설정을 평가합니다.

  • 다중 리전 액세스 포인트

  • 기본 버킷(외부 버킷 포함)

  • 다중 리전 액세스 포인트를 모두 소유하는 계정

  • 기본 버킷을 소유하는 계정(외부 계정 포함)

이러한 설정 중 하나라도 요청이 차단되어야 함을 나타내는 경우, Amazon S3은 요청을 거부합니다. Amazon S3 퍼블릭 액세스 차단 기능에 대한 자세한 내용은 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단 섹션을 참조하세요.

중요

다중 리전 액세스 포인트에는 기본값으로 모든 퍼블릭 액세스 차단 설정이 사용 설정되어 있습니다. 다중 리전 액세스 포인트에 적용하지 않으려는 모든 설정을 명시적으로 꺼야 합니다.

다중 리전 액세스 포인트를 만든 후에는 다중 리전 액세스 포인트의 퍼블릭 액세스 차단 설정을 변경할 수 없습니다.

다중 리전 액세스 포인트에 대한 퍼블릭 액세스 차단 설정 보기

다중 리전 액세스 포인트에 대한 퍼블릭 액세스 차단 설정을 보는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 다중 리전 액세스 포인트)를 선택합니다.

  3. 검토하려는 다중 리전 액세스 포인트의 이름을 선택합니다.

  4. 권한(Permissions) 탭을 선택합니다.

  5. Block Public Access settings for this Multi-Region Access Point(이 다중 리전 액세스 포인트에 대한 퍼블릭 액세스 차단 설정)에서 다중 리전 액세스 포인트에 적용할 퍼블릭 액세스 차단 설정을 선택합니다.

    참고

    다중 리전 액세스 포인트를 생성한 후에는 퍼블릭 액세스 차단 설정을 편집할 수 없습니다. 따라서 퍼블릭 액세스를 차단하려면 다중 리전 액세스 포인트를 생성하기 전에 퍼블릭 액세스 없이 애플리케이션이 제대로 작동하는지 확인하세요.

다중 리전 액세스 포인트 정책 사용

다음 다중 리전 액세스 포인트 정책 예시는 IAM 사용자에게 다중 리전 액세스 포인트에서 파일을 나열하고 다운로드할 수 있는 액세스 권한을 부여합니다. 이 정책 예시를 사용하려면 user input placeholders를 실제 정보로 대체하세요.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::123456789012:user/JohnDoe" }, "Action":[ "s3:ListBucket", "s3:GetObject" ], "Resource":[ "arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias", "arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias/object/*" ] } ] }

AWS Command Line Interface(AWS CLI)를 사용하여 다중 리전 액세스 포인트 정책을 지정된 다중 리전 액세스 포인트에 연결하려면 다음 put-multi-region-access-point-policy 명령을 사용하세요. 이 예시 명령을 사용하려면 user input placeholders를 실제 정보로 대체하세요. 각 다중 리전 액세스 포인트는 하나의 정책만 가질 수 있으므로 put-multi-region-access-point-policy 작업에 대한 요청은 지정된 다중 리전 액세스 포인트와 연결된 기존 정책을 대체합니다.

AWS CLI
aws s3control put-multi-region-access-point-policy --account-id 111122223333 --details { "Name": "DOC-EXAMPLE-BUCKET-MultiRegionAccessPoint", "Policy": "{ \"Version\": \"2012-10-17\", \"Statement\": { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::111122223333:root\" }, \"Action\": [\"s3:ListBucket\", \"s3:GetObject\"], \"Resource\": [ \"arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias", \"arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias/object/*\" ] } }" }

이전 작업에 대한 결과를 쿼리하려면 다음 명령을 사용하세요.

AWS CLI
aws s3control describe-multi-region-access-point-operation --account-id 111122223333 --request-token-arn requestArn

다중 리전 액세스 포인트 정책을 검색하려면 다음 명령을 사용하세요.

AWS CLI
aws s3control get-multi-region-access-point-policy --account-id 111122223333 --name=DOC-EXAMPLE-BUCKET-MultiRegionAccessPoint

다중 리전 액세스 포인트 정책 편집

다중 리전 액세스 포인트 정책(JSON으로 작성됨)은 이 다중 리전 액세스 포인트와 함께 사용되는 Amazon S3 버킷에 대한 스토리지 액세스를 제공합니다. 특정 주체가 다중 리전 액세스 포인트에서 다양한 작업을 수행하도록 허용하거나 거부할 수 있습니다. 요청이 다중 리전 액세스 포인트를 통해 버킷에 라우팅되면 다중 리전 액세스 포인트와 버킷의 액세스 정책이 모두 적용됩니다. 더 제한적인 액세스 정책이 항상 우선합니다.

참고

버킷에 다른 계정이 소유한 객체가 포함된 경우 다중 리전 액세스 포인트 정책은 다른 AWS 계정이 소유한 객체에는 적용되지 않습니다.

다중 리전 액세스 포인트 정책을 적용한 후에는 정책을 삭제할 수 없습니다. 정책을 편집하거나 기존 정책을 덮어쓰는 새 정책을 만들 수 있습니다.

다중 리전 액세스 포인트 정책을 편집하는 방법

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 다중 리전 액세스 포인트)를 선택합니다.

  3. 정책을 편집할 다중 리전 액세스 포인트의 이름을 선택합니다.

  4. 권한(Permissions) 탭을 선택합니다.

  5. 아래로 스크롤하여 다중 리전 액세스 포인트 정책 섹션으로 이동합니다. 편집을 선택하여 정책을 업데이트합니다(JSON으로).

  6. Edit Multi-Region Access Point policy(다중 리전 액세스 포인트 정책 편집) 페이지가 표시됩니다. 정책을 텍스트 필드에 직접 입력하거나, Add statement(문 추가)를 선택하여 드롭다운 목록에서 정책 요소를 선택할 수 있습니다.

    참고

    콘솔에는 정책에서 사용할 수 있는 다중 리전 액세스 포인트의 Amazon 리소스 이름(ARN)이 자동으로 표시됩니다. 다중 리전 액세스 포인트 정책 예시는 다중 리전 액세스 포인트 정책 예시를 참조하세요.

다중 리전 액세스 포인트 정책 예시

Amazon S3 다중 리전 액세스 포인트가 AWS Identity and Access Management(IAM) 리소스 정책을 지원합니다. 이러한 정책을 사용하여 리소스, 사용자 또는 기타 조건별로 다중 리전 액세스 포인트 사용을 제어할 수 있습니다. 애플리케이션 또는 사용자가 다중 리전 액세스 포인트를 통해 객체에 액세스할 수 있으려면 다중 리전 액세스 포인트와 기본 버킷 모두에서 동일한 액세스를 허용해야 합니다.

다중 리전 액세스 포인트와 기본 버킷에 대해 동일한 액세스를 허용하려면 다음 중 하나를 수행하세요.

  • (권장) Amazon S3 다중 리전 액세스 포인트를 사용할 때 액세스 제어를 단순화하려면 Amazon S3 버킷에 대한 액세스 제어를 다중 리전 액세스 포인트에 위임하세요. 이렇게 하는 방법의 예는 이 섹션의 예시 1을 참조하세요.

  • 다중 리전 액세스 포인트 정책에 포함된 동일한 권한을 기본 버킷 정책에 추가합니다.

중요

버킷에 대한 액세스 제어를 위임해도 직접 버킷 이름을 사용하거나 Amazon 리소스 이름(ARN)을 통해 버킷에 액세스할 때 버킷의 동작은 변경되지 않습니다. 버킷에 대한 모든 직접적인 작업은 여전히 이전과 같이 작동합니다. 다중 리전 액세스 포인트 정책에 포함하는 제한은 해당 다중 리전 액세스 포인트를 통해 이루어진 요청에만 적용됩니다.

예 1 - 버킷 정책에서 특정 다중 리전 액세스 포인트에 대한 액세스 권한 위임(동일한 계정 또는 크로스 계정에 대해)

다음 버킷 정책 예시는 특정 다중 리전 액세스 포인트에 대한 전체 버킷 액세스 권한을 부여합니다. 즉, 이 버킷에 대한 모든 액세스가 해당 다중 리전 액세스 포인트에 연결된 정책으로 제어됨을 의미합니다. 버킷에 직접 액세스할 필요가 없는 모든 사용 사례에 대해 이 방법으로 버킷을 구성하는 것이 좋습니다. 동일한 계정 또는 다른 계정의 다중 리전 액세스 포인트에 대해 이 버킷 정책 구조를 사용할 수 있습니다.

{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointArn" : "MultiRegionAccessPoint_ARN" } } }] }
참고

액세스 권한을 부여하려는 다중 리전 액세스 포인트가 여러 개 있는 경우 각 다중 리전 액세스 포인트를 나열해야 합니다.

예 2 - 다중 리전 액세스 포인트 정책에서 다중 리전 액세스 포인트에 대한 계정 액세스 권한 부여

다음 다중 리전 액세스 포인트 정책은 MultiRegionAccessPoint_ARN으로 정의된 다중 리전 액세스 포인트에 포함된 객체를 나열하고 읽을 수 있는 권한을 계정 123456789012에 허용합니다.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS":"arn:aws:iam::123456789012:user/JohnDoe" }, "Action":[ "s3:ListBucket", "s3:GetObject" ], "Resource":[ "MultiRegionAccessPoint_ARN", "MultiRegionAccessPoint_ARN/object/*" ] } ] }
예 3 - 버킷 나열을 허용하는 다중 리전 액세스 포인트 정책

다음 다중 리전 액세스 포인트 정책은 MultiRegionAccessPoint_ARN으로 정의된 다중 리전 액세스 포인트에 포함된 객체를 나열할 수 있는 권한을 계정 123456789012에 허용합니다.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/JohnDoe" }, "Action": "s3:ListBucket", "Resource": "MultiRegionAccessPoint_ARN" } ] }