CloudFront 배포를 사용하여 Amazon S3 버킷에 대한 액세스를 제한하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 9월 15일

Amazon CloudFront 배포를 통해서만 객체에 액세스할 수 있도록 Amazon Simple Storage Service(Amazon S3) 버킷에 대한 액세스를 제한하려고 합니다. 어떻게 해야 하나요?

해결 방법

중요: 시작하기 전에 CloudFront 배포의 Amazon S3 원본이 REST API 엔드포인트(AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com)로 구성되었는지 확인하십시오. 이 해결 방법은 웹 사이트 엔드포인트(AWSDOC-EXAMPLE-BUCKET.s3-website-us-east-1.amazonaws.com)로 구성된 S3 원본에는 적용되지 않습니다.

CloudFront 원본 액세스 ID(OAI) 생성

1.    CloudFront 콘솔을 엽니다.

2.    배포 목록에서 액세스를 제한하려는 S3 버킷의 콘텐츠를 서비스하는 배포를 선택합니다.

3.    [오리진(Origins)] 탭을 선택합니다.

4.    S3 원본을 선택하고 [Edit]를 선택합니다.

5.    S3 버킷 액세스에서 예, OAI 사용(Yes use OAI)(버킷은 액세스를 CloudFront로만 제한 가능)을 선택합니다.

6.    원본 액세스 ID의 경우 드롭다운 목록에서 기존 ID를 선택하거나 새 OAI 생성을 선택합니다.

7.    버킷 정책(Bucket policy)에서 예, 버킷 정책을 업데이트합니다(Yes, update the bucket policy)를 선택합니다.
참고: 이 단계에서는 S3 원본의 버킷 정책을 업데이트하여 s3:GetObject에 대한 OAI 액세스 권한을 부여합니다.

8.    변경 사항 저장(Save Changes)을 선택합니다.

버킷 정책 검토

1.    Amazon S3 콘솔을 엽니다.

2.    버킷 목록에서 CloudFront 배포의 원본 버킷을 선택합니다.

3.    [권한] 탭을 선택합니다.

4.    버킷 정책에서 다음과 같은 문이 표시되는지 확인합니다.

{
 "Sid": "1",
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EAF5XXXXXXXXX"
  },
 "Action": "s3:GetObject",
 "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*"
}

OAI 설정의 일부로 Yes, update bucket policy를 선택하면 CloudFront가 버킷 정책에 추가하는 문입니다.

5.    CloudFront OAI에서 버킷에 대한 액세스를 금지하는 "Effect": "Deny"가 포함된 문이 있는지 버킷 정책을 검토합니다. CloudFront OAI가 버킷의 객체에 액세스할 수 있도록 해당 문을 수정합니다.

6.    CloudFront OAI가 아닌 소스에서 버킷으로의 액세스를 허용하는 "Effect": "Allow"가 포함된 문이 있는지 버킷 정책을 검토합니다. 각 사용 사례에 따라 해당 문을 수정합니다.

참고: 객체 액세스 제어 목록(객체 ACL)을 사용하여 권한을 관리할 경우, CloudFront OAI 외부에서 해당 파일에 액세스할 수 없는지도 객체 ACL에서 확인해야 합니다.

CloudFront OAI를 사용하여 버킷에 대한 액세스를 제한한 후에 선택적으로 AWS WAF를 통합하여 또 다른 보안 계층을 추가할 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?