Amazon S3 오리진에 대한 액세스 제한 - 아마존 CloudFront

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3 오리진에 대한 액세스 제한

CloudFront Amazon S3 오리진에 인증된 요청을 보내는 두 가지 방법, 즉 원본 액세스 제어 (OAC) 와 원본 액세스 ID (OAI) 를 제공합니다. OAC는 다음을 지원하므로 OAC를 사용하는 것이 좋습니다.

  • 2022년 12월 이후에 출시된 옵트인 리전을 포함하여 모든 AWS 리전 리전의 모든 Amazon S3 버킷

  • Amazon S3 AWS KMS를 사용한 서버 측 암호화(SSE-KMS)

  • Amazon S3에 대한 동적 요청(PUTDELETE)

오리진 액세스 ID(OAI)는 위 목록의 시나리오에서 작동하지 않거나 이러한 시나리오에서 추가 해결 방법이 필요합니다. 다음 주제에서는 Amazon S3 오리진에서 오리진 액세스 제어(OAC)를 사용하는 방법을 설명합니다. 오리진 액세스 ID(OAI)에서 오리진 액세스 제어(OAC)로 마이그레이션 하는 방법에 대한 자세한 내용은 오리진 액세스 ID(OAI)에서 오리진 액세스 제어(OAC)로 마이그레이션 섹션을 참조하세요.

참고
  • Amazon S3 버킷 오리진과 함께 CloudFront OAC를 사용하는 경우 Amazon S3 객체 소유권을 새 Amazon S3 버킷의 기본값인 버킷 소유자 적용으로 설정해야 합니다. ACL이 필요한 경우 버킷 소유자 선호 설정을 사용하여 를 통해 업로드된 객체에 대한 제어를 유지하십시오. CloudFront

  • 오리진이 웹 사이트 엔드포인트로 구성된 Amazon S3 버킷인 경우 사용자 지정 CloudFront 오리진으로 설정해야 합니다. 즉, OAC(또는 OAI)를 사용할 수 없습니다. OAC는 Lambda @Edge 를 사용한 오리진 리디렉션을 지원하지 않습니다.

주제

새로운 오리진 액세스 제어 생성

다음 항목에 설명된 단계를 완료하여 에서 새 원본 액세스 제어를 설정하십시오. CloudFront

필수 조건

원본 액세스 제어 (OAC) 를 생성하고 설정하기 전에 Amazon S3 버킷 오리진을 사용하여 CloudFront 배포해야 합니다. 이 오리진은 웹 사이트 엔드포인트로 구성된 버킷이 아니라 일반 S3 버킷이어야 합니다. S3 버킷 오리진을 사용한 CloudFront 배포 설정에 대한 자세한 내용은 을 참조하십시오간단한 CloudFront 배포로 시작하기.

참고

OAC를 사용하여 S3 버킷 오리진을 보호하는 경우 특정 CloudFront 설정과 상관없이 Amazon S3 간의 통신은 항상 HTTPS를 통해 이루어집니다.

S3 버킷에 액세스할 수 있는 오리진 액세스 제어 권한 부여

원본 액세스 제어 (OAC) 를 생성하거나 CloudFront 배포에 설정하기 전에 OAC에 S3 버킷 오리진에 액세스할 권한이 있는지 확인하십시오. 배포를 생성한 후 CloudFront 배포 구성에서 S3 오리진에 OAC를 추가하기 전에 이 작업을 수행하십시오.

OAC에 S3 버킷에 액세스할 권한을 부여하려면 S3 버킷 정책을 사용하여 CloudFront 서비스 보안 주체 (cloudfront.amazonaws.com) 가 버킷에 액세스하도록 허용하십시오. S3 오리진이 포함된 CloudFront 배포를 대신하여 요청하는 경우에만 버킷에 액세스할 수 있도록 CloudFront 하려면 정책의 Condition 요소를 사용하십시오.

버킷 정책 추가 또는 수정에 대한 자세한 내용은 Amazon S3 사용 설명서Amazon S3 콘솔을 사용하여 버킷 정책 추가를 참조하세요.

다음은 CloudFront OAC가 S3 오리진에 액세스할 수 있도록 허용하는 S3 버킷 정책의 예입니다.

예 OAC에 대한 읽기 전용 액세스를 허용하는 S3 버킷 정책 CloudFront
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::<AWS 계정 ID>:distribution/<CloudFront distribution ID>" } } } }
예 OAC에 대한 읽기 및 쓰기 액세스를 허용하는 S3 버킷 정책 CloudFront
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadWrite", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::<S3 bucket name>/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::<AWS 계정 ID>:distribution/<CloudFront distribution ID>" } } } }

SSE-KMS

S3 버킷 오리진의 객체가 AWS Key Management Service(SSE-KMS)로 서버 측 암호화를 사용하여 암호화된 경우 OAC에 AWS KMS 키를 사용할 권한이 있는지 확인해야 합니다. OAC에 KMS 키를 사용할 수 있는 권한을 부여하려면 KMS 키 정책에 명령문을 추가합니다. 키 정책을 수정하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서키 정책 변경을 참조하세요.

다음 예에서는 OAC에서 KMS 키를 사용할 수 있도록 허용하는 KMS 키 정책 명령문을 보여줍니다.

예 CloudFront OAC가 SSE-KMS용 KMS 키에 액세스할 수 있도록 허용하는 KMS 키 정책 설명
{ "Sid": "AllowCloudFrontServicePrincipalSSE-KMS", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<AWS 계정 ID>:root", "Service": "cloudfront.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::<AWS 계정 ID>:distribution/<CloudFront distribution ID>" } } }

오리진 액세스 제어 생성

,, 또는 API를 사용하여 원본 액세스 제어 (OAC) 를 생성할 수 있습니다. AWS Management Console AWS CloudFormation AWS CLI CloudFront

Console
오리진 액세스 제어를 생성하려면
  1. 에 AWS Management Console 로그인하고 에서 CloudFront https://console.aws.amazon.com/cloudfront/v4/home 콘솔을 엽니다.

  2. 탐색 창에서 Origin access(원본 액세스)를 선택합니다.

  3. Create control setting(제어 설정 생성)을 선택합니다.

  4. Create control setting(제어 설정 생성) 양식을 사용하여 다음을 수행합니다.

    1. Details(세부 정보) 창에서 오리진 액세스 제어의 Name(이름) 및 선택적 Description(설명)을 입력합니다.

    2. Settings(설정) 창에서 기본 설정인 Sign requests(recommended)(요청 서명(권장))를 유지하는 것이 좋습니다. 자세한 설명은 오리진 액세스 제어를 위한 고급 설정 섹션을 참조하세요.

  5. Origin type(오리진 유형) 드롭다운에서 S3를 선택합니다.

  6. 생성을 선택하세요.

    OAC를 생성한 후 Name(이름)을 기록해 둡니다. 다음 절차에서 필요합니다.

배포의 S3 오리진에 오리진 액세스 제어를 추가하려면
  1. 에서 CloudFront 콘솔을 엽니다https://console.aws.amazon.com/cloudfront/v4/home.

  2. OAC를 추가하려는 S3 오리진이 있는 배포를 선택한 다음 Origins(원본) 탭을 선택합니다.

  3. OAC를 추가할 S3 오리진을 선택한 다음 Edit(편집)을 선택합니다.

  4. Origin 액세스의 경우 Origin 액세스 제어 설정 (권장) 을 선택합니다.

  5. Origin access control(원본 액세스 제어) 드롭다운 메뉴에서 사용할 OAC를 선택합니다.

  6. 변경 사항 저장을 선택합니다.

배포가 모든 CloudFront 엣지 로케이션에 배포되기 시작합니다. 엣지 로케이션은 새 구성을 수신하면 S3 버킷 오리진으로 보내는 모든 요청에 서명합니다.

CloudFormation

AWS CloudFormation에 오리진 액세스 제어(OAC)를 생성하려면 AWS::CloudFront::OriginAccessControl 리소스 유형을 사용합니다. 다음 예는 오리진 액세스 제어를 생성하기 위한 YAML 형식의 AWS CloudFormation 템플릿 구문을 보여줍니다.

Type: AWS::CloudFront::OriginAccessControl Properties: OriginAccessControlConfig: Description: An optional description for the origin access control Name: ExampleOAC OriginAccessControlOriginType: s3 SigningBehavior: always SigningProtocol: sigv4

자세한 내용은 AWS CloudFormation사용 설명서의 AWS::CloudFront::OriginAccess 제어를 참조하십시오.

CLI

AWS Command Line Interface(AWS CLI)를 사용하여 오리진 액세스 제어를 생성하려면 aws cloudfront create-origin-access-control 명령을 사용합니다. 각 개별 파라미터를 명령줄 입력으로 지정하는 대신 입력 파일을 사용하여 명령의 입력 파라미터를 제공할 수 있습니다.

오리진 액세스 제어를 생성하려면(입력 파일과 CLI)
  1. 다음 명령을 사용하여 이름이 origin-access-control.yaml인 파일을 생성합니다. 이 파일에는 create-origin-access-control 명령에 대한 모든 입력 파라미터가 들어 있습니다.

    aws cloudfront create-origin-access-control --generate-cli-skeleton yaml-input > origin-access-control.yaml
  2. 방금 생성한 origin-access-control.yaml 파일을 엽니다. 파일을 편집하여 OAC의 이름, 설명(선택 사항)을 추가하고 SigningBehavioralways로 변경합니다. 그런 다음 파일을 저장합니다.

    다른 OAC 설정에 대한 자세한 내용은 오리진 액세스 제어를 위한 고급 설정 섹션을 참조하세요.

  3. 다음 명령으로 origin-access-control.yaml 파일의 입력 파라미터를 사용하여 오리진 액세스 제어를 만듭니다.

    aws cloudfront create-origin-access-control --cli-input-yaml file://origin-access-control.yaml

    명령 출력에 있는 Id 값을 기록해 둡니다. CloudFront 배포의 S3 버킷 오리진에 OAC를 추가하는 데 필요합니다.

OAC를 기존 배포의 S3 버킷 오리진에 연결하려면(입력 파일과 CLI)
  1. 다음 명령을 사용하여 OAC를 추가하려는 CloudFront 배포의 배포 구성을 저장합니다. 배포에는 S3 버킷 오리진이 있어야 합니다.

    aws cloudfront get-distribution-config --id <CloudFront distribution ID> --output yaml > dist-config.yaml
  2. 방금 생성한 dist-config.yaml이라는 파일을 엽니다. 파일을 편집하여 다음과 같이 변경합니다.

    • Origins 객체에서 OriginAccessControlId라는 필드에 OAC의 ID를 추가합니다.

    • OriginAccessIdentity라는 필드에서 값을 제거합니다(있는 경우).

    • ETag 필드의 이름을 IfMatch로 바꾸지만 필드 값은 변경하지 마세요.

    완료되면 파일을 저장합니다.

  3. 오리진 액세스 제어를 사용하도록 배포를 업데이트하려면 다음 명령을 사용합니다.

    aws cloudfront update-distribution --id <CloudFront distribution ID> --cli-input-yaml file://dist-config.yaml

배포가 모든 CloudFront 엣지 로케이션에 배포되기 시작합니다. 엣지 로케이션은 새 구성을 수신하면 S3 버킷 오리진으로 보내는 모든 요청에 서명합니다.

API

CloudFront API를 사용하여 원본 액세스 제어를 생성하려면 를 사용하십시오 CreateOriginAccessControl. 이 API 호출에서 지정하는 필드에 대한 자세한 내용은 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

오리진 액세스 제어를 생성한 후 다음 API 호출 중 하나를 사용하여 배포의 S3 버킷 오리진에 연결할 수 있습니다.

이 두 API 호출에 대해 오리진 내부의 OriginAccessControlId 필드에 오리진 액세스 제어 ID를 제공합니다. 이러한 API 호출에서 지정하는 다른 필드에 대한 자세한 내용은 배포를 만들거나 업데이트할 때 지정하는 값와 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

오리진 액세스 ID(OAI)에서 오리진 액세스 제어(OAC)로 마이그레이션

레거시 오리진 액세스 ID(OAI)에서 오리진 액세스 제어(OAC)로 마이그레이션하려면 먼저 S3 버킷 오리진을 업데이트하여 OAI와 OAC가 버킷 콘텐츠에 액세스할 수 있도록 합니다. 이렇게 하면 전환 중에 버킷에 대한 액세스 권한이 CloudFront 절대 손실되지 않습니다. OAI와 OAC가 모두 S3 버킷에 액세스할 수 있도록 하려면 각 보안 주체에 대해 하나씩 두 개의 명령문을 포함하도록 버킷 정책을 업데이트합니다.

다음 예제 S3 버킷 정책은 OAI와 OAC 모두가 S3 오리진에 액세스할 수 있도록 허용합니다.

예 OAI 및 OAC에 대한 읽기 전용 액세스를 허용하는 S3 버킷 정책
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::<AWS 계정 ID>:distribution/<CloudFront distribution ID>" } } }, { "Sid": "AllowLegacyOAIReadOnly", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*" } ] }

OAI와 OAC에 대한 액세스를 모두 허용하도록 S3 오리진의 버킷 정책을 업데이트한 후 OAI 대신 OAC를 사용하도록 배포 구성을 업데이트할 수 있습니다. 자세한 설명은 새로운 오리진 액세스 제어 생성 섹션을 참조하세요.

배포가 완전히 배포되면 버킷 정책에서 OAI에 대한 액세스를 허용하는 명령문을 제거할 수 있습니다. 자세한 설명은 S3 버킷에 액세스할 수 있는 오리진 액세스 제어 권한 부여 섹션을 참조하세요.

오리진 액세스 제어를 위한 고급 설정

CloudFront 원본 액세스 제어 기능에는 특정 사용 사례에만 사용할 수 있는 고급 설정이 포함되어 있습니다. 고급 설정이 특별히 필요한 경우가 아니면 권장 설정을 사용하세요.

오리진 액세스 제어에는 Signing behavior(서명 동작)(콘솔) 또는 SigningBehavior(API, CLI 및 AWS CloudFormation)라는 설정이 포함되어 있습니다. 이 설정은 다음 옵션을 제공합니다.

항상 오리진 요청에 서명(권장 설정)

이 설정의 이름은 콘솔에서 Sign requests(recommended)(서명 요청(권장))이고 API, CLI, AWS CloudFormation에서 always이며, 이 설정을 사용하는 것이 좋습니다. 이 설정을 사용하면 S3 버킷 오리진으로 보내는 모든 요청에 CloudFront 항상 서명합니다.

오리진 요청 서명 안 함

이 설정의 이름은 콘솔에서 Do not sign requests(요청 서명 안 함)이고 API, CLI, AWS CloudFormation에서 never입니다. 이 오리진 액세스 제어를 사용하는 모든 배포의 모든 오리진에 대한 오리진 액세스 제어를 끄려면 이 설정을 사용합니다. 오리진 액세스 제어를 사용하는 모든 오리진 및 배포에서 오리진 액세스 제어를 하나씩 제거하는 것과 비교하여 시간과 노력을 절약할 수 있습니다. 이 설정을 사용하면 S3 버킷 오리진으로 보내는 요청에 서명하지 CloudFront 않습니다.

주의

이 설정을 사용하려면 S3 버킷 오리진에 공개적으로 액세스할 수 있어야 합니다. 공개적으로 액세스할 수 없는 S3 버킷 오리진에 이 설정을 사용하면 오리진에 액세스할 CloudFront 수 없습니다. S3 버킷 오리진은 오류를 최종 사용자에게 CloudFront 반환하고 해당 오류를 최종 사용자에게 CloudFront 전달합니다.

뷰어(클라이언트) Authorization 헤더 재정의 안 함

이 설정의 이름은 콘솔에서 Do not override authorization header(승인 헤더 재정의 안 함)이고 API, CLI, AWS CloudFormation에서 no-override입니다. 해당 최종 사용자 요청에 Authorization 헤더가 포함되지 않은 경우에만 원본 요청에 CloudFront 서명하려는 경우 이 설정을 사용하십시오. 이 설정을 사용하면 최종 Authorization 사용자 요청의 헤더가 있을 때는 해당 헤더를 CloudFront 전달하지만, 최종 사용자 요청에 헤더가 포함되지 않은 경우에는 원본 요청에 서명 (자체 Authorization Authorization 헤더 추가) 합니다.

주의

뷰어 요청에서 Authorization 헤더를 전달하려면 이 오리진 액세스 제어와 연결된 S3 버킷 오리진을 사용하는 모든 캐시 동작에 대한 Authorization 헤더를 캐시 정책반드시 추가해야 합니다.

오리진 액세스 ID 사용(레거시, 권장하지 않음)

CloudFront 원본 액세스 ID (OAI) 는 원본 액세스 제어 (OAC) 와 유사한 기능을 제공하지만 모든 시나리오에서 작동하지는 않습니다. 따라서 OAC를 대신 사용하는 것이 좋습니다. 특히 OAI는 다음을 지원하지 않습니다.

  • 옵트인 리전을 포함한 모든 AWS 리전의 Amazon S3 버킷

  • Amazon S3 AWS KMS를 사용한 서버 측 암호화(SSE-KMS)

  • Amazon S3에 대한 동적 요청(PUT, POST 또는 DELETE)

  • 2022년 12월 이후 출시된 새로운 AWS 리전

OAI에서 OAC로 마이그레이션하는 방법에 대한 자세한 내용은 오리진 액세스 ID(OAI)에서 오리진 액세스 제어(OAC)로 마이그레이션 섹션을 참조하세요.

OAI를 생성하거나 CloudFront 콘솔을 사용하여 배포에 OAI를 추가할 때 Amazon S3 버킷 정책을 자동으로 업데이트하여 OAI에 버킷 액세스 권한을 부여할 수 있습니다. 또는 버킷 정책을 수동으로 생성하거나 업데이트하도록 선택할 수 있습니다. 어떤 방법을 사용하든 권한을 검토하여 다음 사항을 확인하세요.

  • CloudFront OAI는 파일을 요청하는 최종 사용자를 대신하여 버킷에 있는 파일에 액세스할 수 있습니다. CloudFront

  • 시청자는 Amazon S3 URL을 사용하여 외부에서 파일에 액세스할 수 없습니다. CloudFront

중요

CloudFront 지원하는 모든 HTTP 메서드를 수락하고 CloudFront 전달하도록 구성하는 경우 CloudFront OAI에 원하는 권한을 부여해야 합니다. 예를 들어 해당 DELETE 방법을 사용하는 요청을 수락하고 전달하도록 CloudFront 구성한 경우, 최종 사용자가 원하는 파일만 삭제할 수 있도록 DELETE 요청을 적절하게 처리하도록 버킷 정책을 구성하십시오.

Amazon S3 버킷 정책 사용

다음과 같은 방법으로 버킷 정책을 생성하거나 업데이트하여 Amazon S3 버킷의 파일에 대한 CloudFront OAI 액세스 권한을 부여할 수 있습니다.

  • Amazon S3 콘솔에서 Amazon S3 버킷의 Permissions(권한) 탭 사용

  • Amazon S3 PutBucketPolicyAPI에서 사용.

  • CloudFront 콘솔 사용 CloudFront 콘솔에서 오리진 설정에 OAI를 추가할 때 [예, 버킷 정책 업데이트] 를 선택하여 사용자 대신 버킷 정책을 CloudFront 업데이트하도록 지시할 수 있습니다.

버킷 정책을 수동으로 업데이트하는 경우 다음 사항을 확인하세요.

  • 정책에서 올바른 OAI를 Principal로 지정합니다.

  • 최종 사용자를 대신해 객체에 액세스하는 데 필요한 권한을 OAI에 부여합니다.

자세한 내용은 다음 단원을 참조하세요.

버킷 정책에서 OAI를 Principal로 지정

Amazon S3 버킷 정책에서 OAI를 Principal로 지정하려면 OAI ID가 포함된 OAI의 Amazon 리소스 이름(ARN)을 사용합니다. 예:

"Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }

CloudFront 콘솔의 보안, 원본 액세스, ID (레거시) 에서 OAI ID를 찾을 수 있습니다. 또는 ListCloudFrontOriginAccessIdentitiesAPI에서 CloudFront 사용할 수도 있습니다.

OAI에 권한 부여

OAI에 Amazon S3 버킷의 객체에 액세스할 수 있는 권한을 부여하려면 정책에서 특정 Amazon S3 API 작업과 관련된 작업을 사용합니다. 예를 들어 s3:GetObject 작업을 통해 OAI가 버킷의 객체를 읽을 수 있습니다. 자세한 내용은 다음 섹션의 예제를 참조하거나 Amazon Simple Storage Service 사용 설명서Amazon S3 작업을 참조하세요.

Amazon S3 버킷 정책 예제

다음 예는 CloudFront OAI가 S3 버킷에 액세스할 수 있도록 허용하는 Amazon S3 버킷 정책을 보여줍니다.

CloudFront 콘솔의 보안, 원본 액세스, ID (레거시) 에서 OAI ID를 찾을 수 있습니다. 또는 ListCloudFrontOriginAccessIdentitiesAPI에서 CloudFront 사용할 수도 있습니다.

예 OAI에 읽기 액세스 권한을 부여하는 Amazon S3 버킷 정책

다음 예제에서는 OAI가 지정된 버킷(s3:GetObject)의 객체를 읽을 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*" } ] }
예 OAI에 읽기 및 쓰기 액세스 권한을 부여하는 Amazon S3 버킷 정책

다음 예제에서는 OAI가 지정된 버킷(s3:GetObjects3:PutObject)의 객체를 읽고 쓸 수 있도록 허용합니다. 이를 통해 뷰어는 Amazon S3 버킷에 파일을 업로드할 수 CloudFront 있습니다.

{ "Version": "2012-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::<S3 bucket name>/*" } ] }

Amazon S3 객체 ACL 사용(권장되지는 않음)

중요

Amazon S3 버킷 정책을 사용하여 OAI에 S3 버킷에 대한 액세스 권한을 부여하는 것이 좋습니다. 이 섹션에 설명된 대로 액세스 제어 목록(ACL)을 사용할 수 있지만, 권장하지는 않습니다.

Amazon S3는 S3 객체 소유권버킷 소유자 적용으로 설정할 것을 권장합니다. 즉, 버킷 및 그 안의 객체에 대해 ACL이 비활성화됩니다. 객체 소유권에 이 설정을 적용하는 경우 버킷 정책을 사용하여 OAI에 대한 액세스 권한을 부여해야 합니다(이전 섹션 참조).

다음 섹션은 ACL이 필요한 레거시 사용 사례에만 해당됩니다.

다음과 같은 방법으로 파일의 ACL을 생성하거나 업데이트하여 Amazon S3 버킷의 파일에 대한 CloudFront OAI 액세스 권한을 부여할 수 있습니다.

ACL을 사용하여 OAI에 액세스 권한을 부여하는 경우 Amazon S3 정식 사용자 ID를 사용하여 OAI를 지정해야 합니다. CloudFront 콘솔의 보안, 원본 액세스, ID (레거시) 에서 이 ID를 찾을 수 있습니다. CloudFront API를 사용하는 경우 OAI 생성 시 반환된 S3CanonicalUserId 요소 값을 사용하거나 API를 호출하세요 ListCloudFrontOriginAccessIdentities. CloudFront

새 Amazon S3 리전에서는 인증된 요청에 대해 서명 버전 4를 사용해야 합니다. (각 Amazon S3 리전에서 지원되는 서명 버전은 AWS 일반 참조Amazon Simple Storage Service 엔드포인트 및 할당량을 참조하세요.) 오리진 액세스 ID를 사용 중이고 버킷이 서명 버전 4가 필요한 리전 중 하나에 있는 경우 다음에 유의해야 합니다.

  • DELETE, GET, HEAD, OPTIONSPATCH 요청은 자격과 관계없이 지원됩니다.

  • POST 요청은 지원되지 않습니다.