AWS

AWS Cloud Front와 s3 버킷 연동하기

보봉뽕 2022. 1. 18. 17:44

목표

  1. 이미지 https -> http 요청을 위해 SSL 인증
  2. s3 url은 접근 허용 x  & CloudFront url만 접근 허용하고 싶음
  3. 기존 호스팅에 레코드 추가

 

1. s3 버킷 만들기

  • 객체 소유권 -비활성화
  • 퍼블릭액세스 차단 - 모든 퍼블릭 액세스 차단
  • 버킷 버전 관리 - 비활성화
  • 기본 암호화 - 비활성화
  • (고급설정)객체 잠금 - 비활성화
  • 파일 하나 업로드 하기 => 후에 연결 테스트용

 

2. cloud front 배포 생성

  • 원본
    • 원본 도메인 선택(만든 버킷 선택)
    • 버킷을 선택했다면 이름은 자동으로 들어감
    • 목표2를 위해 S3 버킷 액세스 "예" => CloudFront 원본 액세스 ID(OAI) 생성 =>버킷 정책에 사용(CloudFront -> 원본 액세스 ID에서 확인)
  • 설정
    • 대체 도메인 이름(CNAME) 입력
    • 사용자 정의 SSL 인증서, 없다면 인증서 요청 후 요청 승인되면 인증서 선택
  • 배포생성

3. 버킷 속성

  • 정적 웹 사이트 호스팅
    • 정적 웹 사이트 호스팅 - 활성화됨

4. 버킷 권한

  • 버킷 정책
    {
    	"Version": "2012-10-17",
    	"Statement": [
    		{
    			"Sid": "Statement1",
    			"Effect": "Allow",
    			"Principal": {
    				"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity [원본액세스ID]"
    			},
    			"Action": "s3:GetObject",
    			"Resource": "arn:aws:s3:::[버킷이름]/*"
    		}
    	]
    }​

 

5. Route 53

  • 호스팅영역에 CloudFront, SSL 인증 주소 연결하기
  • 레코드 생성
  • CloudFront 연결
    • 레코드 이름: 연결할 도메인 적기
    • 레코드 유형: A
    • 트래픽 라우팅 대상
      • 별칭 ON
      • CloudFront 배포에 대한 별칭 -> 미국동부 버지니아 only
  • SSL 인증 주소
    • CNAME 설정 - AWS Certificate Manager -> 인증서 -> 도메인 에서 인증서 확인 가능
    • 레코드 이름: 확인한 인증서에서 CNAME 이름
    • 레코드 유형: CNAME
    • 트래픽라우팅대상: CNAME 값