iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0

昨天簡單介紹使用 S3 架設網站

但是實際上使用 S3 架站

或者說從 S3 流出資源本身就不是個建議的方式

如果不使用其他 AWS 服務單純使用 S3

則有機會透過大量存取造成龐大金額支出

而使用 CloudFront 最大的好處就是可以跟防火牆設定做綁定

除了最基本的可以跟 Web ACLs 關聯做到第七層的防禦

或是進階一點使用 AWS Shield Advanced

也可以達到第三、四、七層甚至是 DDoS 的防禦

再加上 CloudFront 也可以自訂網域

可以將我們的網址指向 CloudFront 再透過 Cert Manager 綁定的憑證交握

因此普遍在使用 S3 架站的時候

基本上還是會在外層掛一個 CloudFront

建立或編輯 Bucket

停用 ACL 和封鎖所有公開存取

建立一個新個 Bucket 並確認 物件擁有權ACL 已停用 (建議)

以及 儲存貯體的「封鎖公開存取」設定封鎖所有公開存取權

如果不想要新建立 Bucket

也可以在原有的 Bucket 中

許可 的分類底下做設定

https://ithelp.ithome.com.tw/upload/images/20231002/20141518OFGjbv2HMA.png

https://ithelp.ithome.com.tw/upload/images/20231002/2014151807wQQzcgul.png

停用靜態網站託管

屬性分類中最下方靜態網站託管的區塊點按編輯

停用靜態網站託管

請求或匯入憑證(Optional)

如果沒有購買 SSL 憑證又想要自訂網域的人

可以在 AWS Certificate Manager 請求一張憑證

已經有憑證的人

則可以手動匯入憑證

需注意匯入憑證時
要連中繼憑證一併匯入

根據官方文件所述
CloudFront 的憑證只支援維吉尼亞北部(us-east-1)
因此平常使用區域在哪裡
使用 CloudFront 如果要客製化網域
都需要在 us-east-1 匯入憑證

建立 CloudFront

來源

來源中可以直接選到我們建立的 S3 Bucket

https://ithelp.ithome.com.tw/upload/images/20231002/201415187n8g9Aq3W3.png

如果選擇完 S3 Bucket 出現下列黃色框框

表示未將網站端點停用

記得先停用網站端點

https://ithelp.ithome.com.tw/upload/images/20231002/201415185w6kQklSRm.png

選擇完 Bucket 後在原始存取的區塊

選擇 Legacy access identities

並在旁邊選擇建立新的 OAI

下方儲存體政策要勾選 是,更新儲存體政策

以便讓 CloudFront 存取 S3

https://ithelp.ithome.com.tw/upload/images/20231002/20141518mfho2ePXQN.png

預設快取行為

快取行為區塊

除了快取之外

也可以選擇 HTTP 允許的方法

以及回應的方式

https://ithelp.ithome.com.tw/upload/images/20231002/20141518H4sicDmRA6.png

設定

設定中可以選擇 CloudFront 佈署的節點

選擇最佳效能的可以佈署到每個 AWS 的 Region

如果有要自訂網域的使用者也需要在這裡選擇憑證

預設根物件記得填 index.html

https://ithelp.ithome.com.tw/upload/images/20231002/2014151877gNgiLgUe.png

等待

等待數分鐘後

再點按 CloudFront 的網址就可以連到頁面

如果無法正常存取

通常是 CloudFront 到 S3 之間的 Policy 有問題

參考資料:

  1. 請求使用 HTTPS 在 CloudFront 與您的 Amazon S3 原始伺服器之間進行通訊
  2. AWS Shield 入門
  3. 與 CloudFront 搭配使用 SSL/TLS 憑證的要求

上一篇
Day 16 S3 架設靜態網站
下一篇
Day 18 使用 IAM User 和 S3 Bucket Bucket Policy 實現跨 AWS Account 存取
系列文
上完 AWS 線上課程就打算應徵相關工作是否搞錯甚麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言