View a markdown version of this page

使用 CloudFront 進行相互 TLS 身分驗證 (檢視器 mTLS) - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 CloudFront 進行相互 TLS 身分驗證 (檢視器 mTLS)

相互 TLS 身分驗證 (相互傳輸層安全身分驗證 — mTLS) 是一種安全通訊協定,透過要求雙向憑證型身分驗證來延伸標準 TLS 身分驗證,其中用戶端和伺服器都必須證明其身分,才能建立安全連線。使用交互 TLS,您可以確保只有提供信任 TLS 憑證的用戶端才能存取您的 CloudFront 分佈。

運作方式

在標準 TLS 交握中,只有伺服器會呈現憑證,向用戶端證明其身分。使用交互 TLS,身分驗證程序會變成雙向。當用戶端嘗試連線至 CloudFront 分佈時,CloudFront 會在 TLS 交握期間請求用戶端憑證。在建立安全連線之前,用戶端必須呈現 CloudFront 針對您設定的信任存放區驗證的有效 X.509 憑證。

CloudFront 會在 AWS 節點執行此憑證驗證,從原始伺服器卸載身分驗證複雜性,同時維護 CloudFront 的全域效能優勢。您可以將 mTLS 設定為三種模式:

  • 必要模式 (預設) — CloudFront 會根據信任存放區驗證用戶端憑證。如果驗證失敗或未顯示憑證,CloudFront 會拒絕連線。當每個用戶端都必須使用有效的憑證進行身分驗證時,請使用必要的模式。

  • 選用模式 — CloudFront 會在顯示用戶端憑證時驗證用戶端憑證,但允許沒有憑證的連線。憑證中繼資料可在連線函數和 HTTP 標頭中供您的原始伺服器進行授權決策。當您同時支援已驗證和未驗證的用戶端時,請使用選用模式。

  • 傳遞模式 — CloudFront 不會針對信任存放區驗證用戶端憑證。CloudFront 只會驗證用戶端是否擁有對應的私有金鑰。它會將憑證轉送到原始伺服器做為 HTTP 標頭,讓您的原始伺服器執行驗證。不需要任何信任存放區,也不會發生快取。當您的原始伺服器有現有的 mTLS 實作時,請使用傳遞模式。

使用案例

使用 CloudFront 的相互 TLS 身分驗證可解決傳統身分驗證方法不足的幾個關鍵安全案例:

  • 裝置身分驗證與內容快取 - 您可以在允許存取韌體更新、遊戲下載或內部資源之前,驗證遊戲主控台、IoT 裝置或公司硬體。每個裝置都包含唯一的憑證,可證明其真實性,同時受益於 CloudFront 的快取功能。

  • API-to-API 身分驗證 - 您可以保護信任的業務合作夥伴、付款系統或微型服務之間的machine-to-machine通訊。憑證型身分驗證不需要共用秘密或 API 金鑰,同時為自動化資料交換提供強大的身分驗證。