我設定了一個 CloudFront 分配,使用者透過 CloudFront 分配連接到我的網域,並確定他們的請求是否發送到我的 S3 儲存桶或我的 EC2 執行個體。
在本例中,使用者和 CloudFront 之間的連線是 HTTPS,且瀏覽器中存在綠色掛鎖。
我擔心的是 CloudFront 和 EC2 之間的連線現在是透過 HTTP 進行的。我嘗試將原始策略更改為 HTTPS,但似乎不起作用。
我不需要負載平衡器,因為它只是一台伺服器。
我也不認為我可以在我的 EC2 伺服器上安裝 CloudFront 證書,因為我無法存取 CloudFront 憑證的私鑰。
我也無法在我的 EC2 執行個體上使用 LetsEncrypt 證書,因為它需要域名,而我的 EC2 執行個體只是一個 IP 位址。
現在一切正常,但我只是擔心它不安全。如果有人在我的網站中輸入密碼怎麼辦?難道不是只有在從使用者傳送到 CloudFront 發行版時才進行加密,然後在 CloudFront 和 EC2 之間透過網路傳輸時,它不會加密並且是明文嗎?這難道不能被中間人一路記錄下來嗎?
有沒有辦法解決這個問題,或者這不是一個問題?我有點困惑,因為我看到幾個人說在 CloudFront 和 EC2 執行個體之間使用 HTTP 來源策略很好,但我不確定情況如何。
答案1
有很多方面可以回答這個問題。
CloudFront 端點部署在所謂的邊緣位置流量進入 AWS 全球基礎設施的地方。 CloudFront 和 EC2 之間的任何流量只能透過 AWS 基礎設施進行路由,而不是透過任何第三方營運商。
更新:AWS 全球基礎設施頁面說:所有流經連接我們的資料中心和區域的 AWS 全球網路的資料在離開我們的安全設施之前都會在實體層自動加密。即,即使某些互連實際上正在穿越第 3 方網絡,它們也始終是加密的,因此您的明文 HTTP 永遠不會被第 3 方運營商看到。
您已經信任 AWS 來處理您的資料 - 您執行 EC2、管理 CloudFront 的 SSL 憑證等,因此在同一層級上您可能也信任他們的網路。我想說的是,在 AWS 內窺探純文字流量的風險非常低,儘管並非不存在。
您可以創建自簽署 SSL 憑證您的 EC2 上和 CloudFront 會很樂意接受它們到達您的 EC2 來源。這樣您就可以一直使用 HTTPS。此自簽名憑證僅用於CF <-> EC2 流量,不適合你的使用者 <-> CF 流量,所以沒有問題無效證書警告。
希望有幫助:)