CloudFront 403 error

Barney Park·2023년 3월 29일

AWS

목록 보기
3/4

S3에 프론트엔드에서 작성해서 빌드된 파일(ex./dist, index.html, etc)이 저장되어 있고 CloudFront를 통해 서비스를 진행하고 있다.

근데, CloudFront에 배포 이름을 설정한 후에 하위 도메인(ex. www.video.test/man)으로 접근하면 403 error가 발생했다.


S3 endpoint

  • S3 bucket web site endpoint
    정적 웹 사이트 호스팅을 설정할 시 생성되는 웹사이트의 주소다.
  • S3 REST API endpoint
    S3 버킷에 저장되는 객체마다 접근 가능한 URL의 Host 주소

CloudFront의 배포 도메인 이름만을 주소창에 입력한다면 자동적으로 S3의 index.html 파일을 찾아서 실행을 해주는데, 만약에 S3 REST API 엔드포인트를 CloudFront Origin으로 설정한 경우에는 CloudFront 가 Origin(S3) 로 객체를 요청하게 된다.

즉, 웹 서버로 요청하는게 아니라 진짜 객체 저장소(S3의 버켓)에 요청하게 된다. 따라서 Host 뒷 부분 하위 도메인에 대한 정보는 해당 하는 경로(=객체 Key)와 매칭되는 객체가 없어서 403 에러가 발생해준다는 뜻이다.

이를 해결하기 위해서는 CloudFront 배포 내에서 오류 페이지에서 "사용자 정의 오류 응답 생성"을 해줘야 한다.


참고 자료

AWS CloudFront 도메인 이름 접속 시 index.html로 자동 이동

profile
개선합시다

0개의 댓글