Amazon S3 다중 리전 액세스 포인트 오리진에 대한 액세스 제한
오리진 액세스 제어(OAC)를 사용하여 Amazon S3 다중 리전 액세스 포인트 오리진에 대한 액세스를 제한할 수 있습니다. S3 다중 리전 액세스 포인트는 네트워크 지연 시간에 따라 가장 가까운 S3 버킷으로 요청을 라우팅하는 글로벌 엔드포인트를 제공합니다.
참고
S3 다중 리전 액세스 포인트가 있는 OAC는 옵트인 리전의 버킷에서 지원하는 MRAP 엔드포인트에는 지원되지 않습니다. 옵트인 리전의 버킷으로 라우팅된 요청은 실패합니다. 다중 리전 액세스 포인트와 연결된 모든 버킷은 기본적으로 활성화된 리전에 있어야 합니다.
표준 Amazon S3 버킷 오리진에서 OAC를 사용하는 방법에 대한 자세한 내용은 Amazon S3 오리진에 대한 액세스 제한 섹션을 참조하세요.
사전 조건
OAC를 생성하고 설정하기 전에 Amazon S3 다중 리전 액세스 포인트 오리진과 함께 CloudFront 배포가 있어야 합니다. 오리진 도메인 이름은 S3 다중 리전 액세스 포인트 호스트 이름 형식을 사용해야 합니다.
multi-region-access-point-alias.accesspoint.s3-global.amazonaws.com
S3 다중 리전 액세스 포인트 생성에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 다중 리전 액세스 포인트 생성 섹션을 참조하세요.
CloudFront에 S3 다중 리전 액세스 포인트에 액세스할 수 있는 권한 부여
CloudFront 서비스 위탁자(cloudfront.amazonaws.com)가 다중 리전 액세스 포인트에 액세스할 수 있도록 다중 리전 액세스 포인트 정책을 업데이트합니다. 정책의 Condition 요소를 사용하여 S3 오리진이 포함된 CloudFront 배포를 위한 요청인 경우에만 CloudFront에서 다중 리전 액세스 포인트에 액세스하도록 허용합니다.
다중 리전 액세스 포인트 정책을 추가하거나 수정하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 다중 리전 액세스 포인트 정책 예제를 참조하세요.
예 CloudFront OAC에 대한 다중 리전 액세스 포인트 정책
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontOACAccess", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3::111122223333:accesspoint/Multi-Region-Access-Point-Alias.mrap/object/*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront distribution ID" } } } ] }
CloudFront에 기본 S3 버킷에 액세스할 수 있는 권한 부여
다중 리전 액세스 포인트 정책 외에도 다중 리전 액세스 포인트와 연결된 각 기본 S3 버킷에 액세스할 수 있는 CloudFront 권한도 부여해야 합니다. 이 작업을 두 가지 방법으로 수행할 수 있습니다.
중요
다중 리전 액세스 포인트와 연결된 모든 S3 버킷에 이 버킷 정책을 추가해야 합니다. 정책이 누락된 버킷이 있는 경우 해당 버킷으로 라우팅된 CloudFront 요청은 거부됩니다.
옵션 1: CloudFront에만 액세스 권한 부여
각 S3 버킷에 CloudFront 서비스 위탁자가 버킷에 액세스할 수 있도록 허용하는 버킷 정책을 추가합니다. 다른 소스에서 버킷에 대한 직접 액세스를 허용해야 하는 경우에도 이 옵션을 사용합니다.
예기본 버킷에 대한 S3 버킷 정책
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontOACAccessViaMRAP", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-us-east-1/*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront distribution ID" } } } ] }
옵션 2: 다중 리전 액세스 포인트에 대한 전체 버킷 액세스 권한 위임
다중 리전 액세스 포인트에 각 기본 버킷에 대한 전체 액세스 권한을 부여합니다. 이 접근 방식을 사용하면 버킷에 대한 모든 액세스가 액세스 관리를 간소화하는 다중 리전 액세스 포인트 정책에 의해 제어됩니다. 버킷에 직접 액세스할 필요가 없는 모든 사용 사례에 대해 이 옵션을 권장합니다.
예액세스를 다중 리전 액세스 포인트에 위임하는 S3 버킷 정책
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DelegateAccessToMRAP", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-us-east-1", "arn:aws:s3:::amzn-s3-demo-bucket-us-east-1/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointArn": "arn:aws:s3::111122223333:accesspoint/Multi-Region-Access-Point-Alias.mrap" } } } ] }
자세한 내용은 Amazon Simple Storage Service 사용 설명서의 다중 리전 액세스 포인트 정책 예제를 참조하세요.
SSE-KMS
기본 S3 버킷의 객체가 서버 측 암호화를 사용하여 AWS KMS(SSE-KMS)로 암호화된 경우 CloudFront 배포에 AWS KMS 키를 사용할 수 있는 권한이 있는지 확인해야 합니다. S3 다중 리전 액세스 포인트는 요청을 여러 리전의 버킷으로 라우팅할 수 있으므로 기본 버킷이 SSE-KMS를 사용하는 각 리전의 KMS 키 정책에 문을 추가해야 합니다. 키 정책을 수정하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 정책 변경을 참조하세요.
예 KMS 키 정책 설명
다음 예제는 OAC가 있는 CloudFront 배포에서 SSE-KMS용 KMS 키에 액세스할 수 있도록 허용하는 KMS 키 정책 문을 보여 줍니다.
{ "Sid": "AllowCloudFrontServicePrincipalSSE-KMS", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront distribution ID" } } }
중요
기본 S3 버킷이 SSE-KMS 암호화를 사용하는 모든 리전의 KMS 키에 이 키 정책 설명을 추가해야 합니다.
오리진 액세스 제어 생성
오리진 액세스 제어(OAC)를 생성하려면 AWS Management Console, CloudFormation, AWS CLI 또는 CloudFront API를 사용할 수 있습니다.
참고
Lambda@Edge 오리진 요청 트리거는 오리진이 직접 액세스되든 오리진 그룹을 통해 액세스되든 SigV4a OAC를 사용하는 오리진과 호환되지 않습니다.
서명 동작
S3 다중 리전 액세스 포인트 오리진의 서명 동작 옵션은 일반 Amazon S3 버킷 오리진의 서명 동작 옵션과 동일합니다. 자세한 내용은 Amazon S3 오리진에 대한 액세스 제한의 오리진 액세스 제어를 위한 고급 설정 섹션을 참조하세요.