[AWS] 클라우드프론트 + S3 접근 권한이 없을때
S3에서 올린 본인 이외에 제 3자도 읽을 수 있도록 올린 것이 아닌 경우 클라우드 프론트에서만 읽을 수 있는 권한을 주는 방법에 대한 것이다.
프로그램으로 하나 씩 올리면서 권한을 줬으면 문제 되지 않는다.
그렇지 않고. 아래 처럼 올린 경우 권한이 없어서 오류가 발생 한다.
s3cmd sync /로컬/디렉토리 s3://버킷이름
아래처럼 배포를 생성할때 설정 해도 되고 다 설정한 다음 후에 수정을 해도 됩니다.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>3RJJB0RE1BXQRMWG</RequestId>
<HostId>BRcHL3+s9rHes27dCLFFiN0AdM2xFBHL4vZM3irfQckFs4G/Ytj7/xNAVJ7eGFRS2nUvm7Euq5E=</HostId>
</Error>
● 클라우드 프론트에서 수정을 통해 설정 방법
배포 > 원본
설정한 S3를 선택한다.
* 원본 액세스
Legacy access identities - CloudFront 원본 액세스 ID(OAI)를 사용하여 S3 버킷에 액세스합니다.
* 새 OAI 생성
* 버킷 정책 - 예, 버킷 정책 업데이트