🕰️ 작성일 : 2025.02.24

Q : S3에서 Pre-Signed URL을 생성하면 버킷 이름이 노출됩니다. Custom Domain 기반의 Pre-Signed URL을 생성 할 수 있을까요?

A : CloudFront을 Custom Domain으로 연결하고, CloudFront에서 Custom Domain 기반으로 Pre_Signed URL을 생성 할 수 있습니다. 이를 위해서는 CloudFront의 Key Group을 생성해야하며, CloudFront의 뷰어 액세스 제한 을 Trusted key groups (recommended) 으로 지정해야합니다.

💻 테스트 하기

image.png

  1. CloudFront의 Origin을 Amazon S3로 지정하고 Distribution을 생성합니다.
  2. CloudFront의 Custom Domain을 Route 53에 등록합니다.
  3. CloudFront에 접근하려는 요청 중 Key 기반의 서명 된 요청만을 승인하도록 Public/Private Key을 생성하고 Public Key을 CloudFront에 등록합니다.
  4. CloudFront의 뷰어 액세스 제한 을 Trusted key groups (recommended) 으로 설정하여 서명된 요청만이 CloudFront에 접근 되도록 설정합니다.
  5. Local에서 SDK 기반으로 CloudFront에 대한 Signed URL을 생성하고 반환 받은 URL 기반으로 접근합니다.

1~2 번 항목은 AWS의 공식 문서를 참고하여 진행합니다. 테스트에서는 3번 항목부터 진행합니다.

3. CloudFront에 접근하려는 요청 중 Key 기반의 서명 된 요청만을 승인하도록 Public/Private Key을 생성하고 Public Key을 CloudFront에 등록합니다.

# openssl 기반 Private Key 생성하기
openssl genrsa -out private_key.pem 2048

# Public Key 추출하기 
openssl rsa -pubout -in private_key.pem -out public_key.pem
# Public Key 추출
cat public_key.pem