cloud front 적용 방법 ( private s3 with acm 인증서)

2023. 7. 3. 15:19AWS

> : 클릭 의미 및 해당 리소쓰 이동
[ ] : 설정시 세부 내용 적시 , 세부 내용 없으면 기 선택된 default 의미 합니다.
주의 : 생성후 나중에 반드시 속성값등 update 필요한 내용
선택 : 어느것을 선택해되 되나 default 선택한것으로 선택하는것이 좋음


1. 흐름도
ㄱ. 사용자 -(acm 인증서)--> aws cloud front --> private s3

2. 요구사항
ㄱ. s3는 public X : 보안에 쉬약함
ㄴ. 인증서는 aws 제공 acm 인증서 ( 자체 인증서 사용 가능)
ㄷ. 도메인은 리소쓰는 route53 사용 ( 자체 dns 사용도 가능)

3. 사용 방법
ㄱ. s3 > [버킷만들기 : 고유 이름 , 모든 퍼블릭 액세스 차단] > 버킷 만들기
ㄴ. cloudfront > 배포 생성
[원본 도메인 : 3.ㄱ에서 만든 s3 이름으로 찾기으면 s3 full domain 으로 변경됨
원본 엑세스 : 원본 액세스 제어 설정(권장) < 버킷은 CloudFront에 대한 액세스만 제한할 수 있습니다.>
주의 : 생성후 다시 s3 속성값 변경해야 하며 aws 에서 정책 자동 생성해서 제공해줌
뷰어 프로토콜 : Redirect HTTP to HTTPS
선택 : 웹 애플리케이션 방화벽(WAF) : 활성화
대기 : 리소쓰가 없으면 ㄷ. 항목으로 이동해서 먼저 생성후 selectbox reload
계속 : 3.ㄷ에서 만들어진 인증서가 reload하면 보일것임 선택하면 됨]
배포


ㄷ. acm 인증서 생성
a. 새창 > 버지니아 북부 > AWS Certificate Manager(ACM) > 요청 > 퍼블릭 인증서 요청 >
[완전히 정규화된 도메인 이름 : cloudfront에 사용할 2차 도메인을 넣는다. > 요청

b. 인증서나열 > route 53 레코드 생성 : route53 사용시 자동으로 등록
선택:자체 dns 사용시 제공된 CNAME 이름 ,CNAME 값 등록

########### 무엇이던 적당히 알려주는곳에서 얻은 생성방법 ##############

Amazon CloudFront와 프라이빗 Amazon S3 버킷을 연결하는 방법은 다음과 같습니다.

  1. Amazon S3 버킷 생성:
    • AWS Management Console에 로그인합니다.
    • Amazon S3 서비스로 이동합니다.
    • "버킷 생성"을 클릭하고 고유한 이름을 제공합니다.
    • 리전 및 권한과 같은 버킷에 대한 원하는 설정을 구성합니다.
    • 버킷에 대한 공개 액세스를 비활성화하는 것을 잊지 마세요.
  2. Amazon S3 버킷 정책 구성:
    • 생성한 버킷을 선택하고 "Permissions" 탭으로 이동합니다.
    • "Bucket Policy"를 클릭하고 버킷에 대한 액세스를 제한하는 정책을 추가합니다. 다음은 정책의 예입니다.
jsonCopy code
{ "Version": "2012-10-17", "Id": "PolicyForCloudFrontPrivateAccess", "Statement": [ { "Sid": "AllowCloudFrontAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity YOUR_ORIGIN_ACCESS_IDENTITY" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*" } ] }

YOUR_ORIGIN_ACCESS_IDENTITY를 CloudFront 배포와 연결된 Origin Access Identity(OAI)로 바꾸고, YOUR_BUCKET_NAME을 S3 버킷의 이름으로 대체하세요.

  1. Amazon CloudFront 배포 생성:
    • AWS Management Console에서 Amazon CloudFront 서비스로 이동합니다.
    • "Create Distribution"을 클릭하고 원하는 전송 방법(웹 또는 RTMP)을 선택합니다.
    • 배포에 대한 설정, 인출 속도 및 보안 설정을 구성합니다.
    • "Origin Settings" 섹션에서 "Origin Domain Name"에 프라이빗 S3 버킷의 엔드포인트를 입력합니다. (예: YOUR_BUCKET_NAME.s3.amazonaws.com)
    • "Origin Access Identity"를 사용하여 CloudFront가 프라이빗 S3 버킷에 액세스할 수 있도록 설정합니다.
    • 나머지 설정을 구성하고 배포를 생성합니다.

이제 CloudFront를 통해 프라이빗 S3 버킷에 액세스할 수 있어야 합니다. CloudFront 배포의 도메인 이름을 사용하여 프라이빗 S3 리소스에 접근할 수 있습니다.