AWS Elemental MediaStore 오리진에 대한 액세스 제한
CloudFront는 AWS Elemental MediaStore 오리진에 대한 액세스를 제한할 수 있도록 오리진 액세스 제어(OAC)를 제공합니다.
새 오리진 액세스 제어 생성
다음 주제에 설명된 단계를 완료하여 CloudFront에서 새 오리진 액세스 제어를 설정합니다.
필수 조건
오리진 액세스 제어(OAC)를 생성하고 설정하기 전에 MediaStore 오리진과 함께 CloudFront 배포가 있어야 합니다.
MediaStore 오리진에 액세스할 수 있는 오리진 액세스 제어 권한 부여
오리진 액세스 제어를 생성하거나 CloudFront 배포에서 이를 설정하기 전에 OAC에 MediaStore 오리진에 액세스할 수 있는 권한이 있는지 확인합니다. 이 작업은 CloudFront 배포를 생성한 후 배포 구성에서 MediaStore 오리진에 OAC를 추가하기 전에 수행해야 합니다.
OAC에 MediaStore 오리진에 액세스할 수 있는 권한을 부여하려면 MediaStore 컨테이너 정책 을 사용하여 CloudFront 서비스 보안 주체(cloudfront.amazonaws.com
)가 오리진에 액세스하도록 허용합니다. 정책의 Condition
요소를 사용하여 MediaStore 오리진이 포함된 CloudFront 배포를 대신하는 요청인 경우에만 CloudFront에서 MediaStore 컨테이너에 액세스하도록 허용합니다.
다음은 CloudFront OAC가 MediaStore 오리진에 액세스할 수 있도록 허용하는 MediaStore 컨테이너 정책의 예입니다.
예 CloudFront OAC에 대한 읽기 전용 액세스를 허용하는 MediaStore 컨테이너 정책
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject" ], "Resource": "arn:aws:mediastore:
<region>
:111122223333
:container/<container name>
/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333
:distribution/<CloudFront distribution ID>
" }, "Bool": { "aws:SecureTransport": "true" } } } ] }
예 CloudFront OAC에 대한 읽기 및 쓰기 액세스를 허용하는 MediaStore 컨테이너 정책
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadWrite", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject", "mediastore:PutObject" ], "Resource": "arn:aws:mediastore:
<region>
:111122223333
:container/<container name>
/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333
:distribution/<CloudFront distribution ID>
" }, "Bool": { "aws:SecureTransport": "true" } } } ] }
참고
쓰기 액세스를 허용하려면 CloudFront 배포의 동작 설정에 PUT
을 포함하기 위해 Allowed HTTP methods(허용된 HTTP 메서드)를 구성해야 합니다.
오리진 액세스 제어 생성
OAC를 생성하려면 AWS Management Console, AWS CloudFormation, AWS CLI 또는 CloudFront API를 사용할 수 있습니다.
오리진 액세스 제어를 위한 고급 설정
CloudFront 오리진 액세스 제어 기능에는 특정 사용 사례만을 위한 고급 설정이 포함되어 있습니다. 고급 설정이 특별히 필요한 경우가 아니면 권장 설정을 사용하세요.
오리진 액세스 제어에는 Signing behavior(서명 동작)(콘솔) 또는 SigningBehavior
(API, CLI 및 AWS CloudFormation)라는 설정이 포함되어 있습니다. 이 설정은 다음 옵션을 제공합니다.
- 항상 오리진 요청에 서명(권장 설정)
-
이 설정의 이름은 콘솔에서 서명 요청(권장)이고 API, CLI, AWS CloudFormation에서
always
이며, 이 설정을 사용하는 것이 좋습니다. 이 설정을 사용하면 CloudFront가 항상 MediaStore 오리진으로 보내는 모든 요청에 서명합니다. - 오리진 요청 서명 안 함
-
이 설정의 이름은 콘솔에서 Do not sign requests(요청 서명 안 함)이고 API, CLI, AWS CloudFormation에서
never
입니다. 이 오리진 액세스 제어를 사용하는 모든 배포의 모든 오리진에 대한 오리진 액세스 제어를 끄려면 이 설정을 사용합니다. 오리진 액세스 제어를 사용하는 모든 오리진 및 배포에서 오리진 액세스 제어를 하나씩 제거하는 것과 비교하여 시간과 노력을 절약할 수 있습니다. 이 설정을 사용하면 CloudFront가 MediaStore 오리진으로 보내는 모든 요청에 서명하지 않습니다.주의
이 설정을 사용하려면 MediaStore 오리진에 공개적으로 액세스할 수 있어야 합니다. 공개적으로 액세스할 수 없는 MediaStore 오리진에 이 설정을 사용하는 경우 CloudFront가 오리진에 액세스할 수 없습니다. MediaStore 오리진은 CloudFront에 오류를 반환하고 CloudFront 해당 오류를 뷰어에 전달합니다. 자세한 내용은 Public read access over HTTPS(HTTPS를 통한 공개 읽기 액세스)에 대한 MediaStore 컨테이너 정책 예시를 참조하세요.
- 뷰어(클라이언트)
Authorization
헤더 재정의 안 함 -
이 설정의 이름은 콘솔에서 Do not override authorization header(승인 헤더 재정의 안 함)이고 API, CLI, AWS CloudFormation에서
no-override
입니다. 해당 뷰어 요청에Authorization
헤더가 포함되지 않은 경우에만 CloudFront에서 오리진 요청에 서명하도록 하려면 이 설정을 사용합니다. 이 설정을 사용하면 CloudFront에서는 뷰어 요청에Authorization
헤더가 있는 경우 이를 전달하지만 뷰어 요청에Authorization
헤더가 포함되어 있지 않으면 오리진 요청에 서명합니다(자체Authorization
헤더 추가).주의
뷰어 요청에서
Authorization
헤더를 전달하려면 이 오리진 액세스 제어와 연결된 MediaStore 오리진을 사용하는 모든 캐시 동작에 대한Authorization
헤더를 캐시 정책에 반드시 추가해야 합니다.