2022-06-29

限制 CloudFront CDN 的讀取

限制 CloudFront CDN 的讀取

使用 CloudFront 的 CDN 協助非公開 S3 資料的傳輸 (尤其是影片檔和大量的圖檔)

這兩篇介紹的很詳儘:

https://deliciousbrains.com/wp-offload-media/doc/cloudfront-setup/ https://deliciousbrains.com/wp-offload-media/doc/serve-private-media-signed-cloudfront-urls/

A. Create a free HTTPS Certificate

建立免費的 SSL/TLS 認證,建立此認證的用意是讓 CloudFront 可以使用,並指定你自己的網域而不是 CloudFront 提供的預設網域。 注意事項: 1.在 Certificate Manager 建立認證。 2. 要指定區域為 us-east-1 (N. Virginia) 3. Request a public certificate 4. 網域使用包含子網域的設定,例如「.shinder.cc」 5. 使用 DNS Validation 的方式驗證網域

B. Create an Amazon CloudFront Origin Access Identity

建立 OAI 是讓 CloudFront 可以透過 OAI 去讀取 S3 的資料,並同步。這個動作要在設定 CloudFront distribution 前設定,才會是最方便處理的。OAI 的位置在 CloudFront 頁面左側 "Security" > "Origin access identity"。

C. Create an Amazon CloudFront distribution

建立時指定 S3 bucket,並指定使用 OAI,更新 S3 bucket 存取政策。 設定自訂的網域 Alternative domain name (CNAME),並輸入設定第一個動作申請的 SSL 認證。

D. Add a Custom Domain (CNAME) to the distribution

設定 DNS,以自訂的網域指向 CloudFront 預設的網域。

E. Create an Amazon CloudFront Key Pair

在主帳號的下拉選單,點選 Security Credentials 進入 CloudFront Key Pairs 分頁,以建立 key pair。 此組 key pair 用來產生可讀取 CDN 的網域或 cookie。

F. Create a New Amazon CloudFront Behavior for Private Media

在 CloudFront distribution 項目內設定 behavior 設定可讀取的路徑(資料夾前綴), Restrict Viewer Access

G. 使用 aws-cloudfront-sign

最後使用 aws-cloudfront-sign 套件,來產生簽證的 URL。

FB 留言