Question
S3 버킷에 있는 파일을 Signed URL을 사용해서 다운로드 중인데 S3의 endpoint가 노출되는 것을 원치 않을 때 어떻게 하면 좋을까요?
Answer
S3에 데이터 접근할때 URL 노출을 방지하기 위해 CloudFront에 OAI 방식을 연동하여 사용합니다.
[CloudFront OAI를 사용하는 이유]
"CloudFront가 S3에 저장된 Private 객체에 액세스 할 수 있도록 하는 특별한 식별자"
S3 엔드포인트 주소는 버킷명을 포함하고 있어, 권한을 갖지 않은 유저가 버킷 내 다른 Object에도 접근할 수 있는 위험성이 존재합니다.
따라서 오리진 리소스에 대한 직접 액세스를 차단하고 CloudFront를 통해서만 웹사이트에 접근하여 오리진 리소스가 인터넷에서 직접 노출되는 것을 방지해야할 필요가 있는데, 이때 사용하는 것이 OAI입니다.
[CloudFront OAI 기능을 활용하여 S3 버킷의 콘텐츠에 대한 액세스를 제한하는 방법]
Origin 선택
S3 버킷 액세스 허용 -> 예, OAI 사용
새 OAI 생성
OAI는 Origin으로 설정된 S3 버킷에 접근할 때 사용하게 되는 식별자이며, 이 식별자를 통해 Origin에 접근을 허용할지 결정하게 됩니다.
버킷 정책 업데이트 -> 예, 버킷 정책 업데이트
‘예 버킷 정책에 업데이트'를 선택하시면 해당 버킷에 접근할 수 있는 식별자가 S3 권한에 자동으로 추가 됩니다.
위와 같이 설정 한 후 해당 Cloudfront에서 Signed URL을 설정하시게 되면, URL에는 Cloudfront의 endpoint만 기재되지만 실질적으로 도달하는 목적지는 Origin, 즉 S3 버킷으로 도달하게 됩니다.
[참고 문서]
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.