CloudFront 배포 오리진으로 사용하는 Amazon S3 버킷에서 파일에 액세스할 수 없는 이유는 무엇입니까?

3분 분량
0

Amazon CloudFront 배포의 오리진으로 Amazon Simple Storage Service(S3) 버킷을 사용하고 있습니다. 하지만 Amazon S3 버킷에 있는 파일에 액세스하거나 파일을 다운로드할 수 없습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

403 Access Denied 오류 해결

CloudFront에서 403 Access Denied 오류가 반환되는 경우 사용 사례에 따라 다음 AWS 지식 센터 문서 중 하나를 참조하십시오.

CloudFront 지리적 제한 확인

배포에서 지리적 제한을 사용하는 경우 요청이 시작된 국가를 제한하지 않았는지 확인하십시오.

S3 웹사이트 엔드포인트에 HTTPS를 적용하고 있지 않은지 확인

Amazon S3 웹사이트 엔드포인트에서는 HTTPS를 지원하지 않습니다. AWS CLI, API 또는 AWS SDK를 사용하여 CloudFront 배포를 구성한 경우 웹사이트 엔드포인트 오리진에서 HTTPS를 적용하지 않았는지 확인하십시오.

HTTPS를 사용하는지 확인하려면 GetDistributionConfig API 또는 get-distribution-config AWS CLI 명령을 사용하여 배포 구성을 가져옵니다. OriginProtocolPolicyhttps-only로 설정된 경우 http-only를 사용하도록 OriginProtocolPolicy를 수정하십시오.

HTTPS를 사용하려면 S3 REST API 엔드포인트 오리진에서 CloudFront를 사용하십시오. 자세한 내용은 특수 처리가 필요할 수 있는 문자를 참조하십시오.

S3 객체가 50GB 미만인지 확인

HTTP GET, POSTPUT 요청에 허용되는 최대 파일 크기는 50GB입니다. 파일이 50GB보다 크면 400 "BadRequest" 오류가 발생합니다.

자세한 내용은 배포에 대한 일반 할당량을 참조하십시오.

S3 객체 키 이름에 특수 문자가 있는지 확인

S3 객체 키 이름에 특수 문자를 사용한 경우 API 규정 준수를 위해 해당 문자를 수정해야 할 수 있습니다. 자세한 내용은 객체 키 명명 지침을 참조하십시오.

하위 디렉터리의 기본 루트 객체를 사용하지 않았는지 확인

CloudFront 배포는 배포에서 객체를 구성한 경우에도 하위 디렉터리의 기본 루트 객체를 반환하지 않습니다. 자세한 내용은 기본 루트 객체 지정을 참조하십시오.

이 문제를 해결하려면 Lambda@Edge를 사용하여 하위 디렉터리에서 기본 루트 객체를 반환할 수 있습니다. 

S3 오리진에서 호스트 헤더를 사용하지 않았는지 확인

Amazon S3 오리진의 경우 호스트 헤더를 기반으로 캐싱하거나 호스트 헤더를 전달할 수 없습니다. 자세한 내용은 캐싱의 기준이 될 헤더 선택을 참조하십시오.

"No Access-Control-Allow-Origin" 오류 해결

이 문제를 해결하려면 Cloudfront에서 "No 'Access-Control-Allow-Origin' header is present on the requested resource" 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

관련 정보

CloudFront의 오류 응답 상태 코드 문제 해결

AWS 공식
AWS 공식업데이트됨 2달 전
1 댓글

S3 객체가 30GB 미만인지 확인 HTTP GET, POST 및 PUT 요청에 허용되는 최대 파일 크기는 30GB입니다. 파일이 30GB보다 크면 400 “BadRequest” 오류가 발생합니다.

해당 내용은 현재 기준으로 30GB -> 50GB 로 변경되었습니다.

AWS
답글을 게시함 6달 전