如何限制到 Application Load Balancer 的直接流量,並僅允許經由 CloudFront 的流量?

2 分的閱讀內容
0

我想限制對 Application Load Balancer 的直接存取,並僅允許透過 Amazon CloudFront 存取。

簡短說明

若要限制到 Application Load Balancer 的直接流量,並僅允許透過 CloudFront 存取,請使用 Application Load Balancer 接聽程式規則。如果您有現有的 AWS WAF 網頁存取控制清單 (ACL),則可以使用 Web ACL 規則。若要進一步限制對 Application Load Balancer 的存取,請將安全群組設定為限制存取您的來源。若要執行此操作,請使用 AWS 受管理字首清單。最佳實務是使用這些解決方案之一,並且設定安全群組。

解決方法

Application Load Balancer

若要使用 Application Load Balancer 接聽程式規則來限制流量,請參閱限制對 Application Load Balancer 的存取

AWS WAF

**注意:**AWS WAF 費用取決於下列因素:

  • 您建立的 Web ACL 數量
  • 您為每個 Web ACL 新增的規則數量
  • 您收到的 Web 請求數量

如需詳細資訊,請參閱 AWS WAF 定價

若要使用 AWS WAF 自訂 Web ACL 規則來限制流量,請完成下列步驟:

  1. 設定 CloudFront 以在 CloudFront 傳送至 Application Load Balancer 的要求中新增具有機密值的自訂 HTTP 標頭。
  2. 在與 Application Load Balancer 相關聯的 AWS WAF Web ACL 中建立規則。使用此規則可封鎖不包含自訂 HTTP 標頭機密值的請求。

設定 CloudFront 以新增自訂 HTTP 標頭

請完成下列步驟:

  1. 開啟 CloudFront 主控台
  2. 從導覽窗格中選擇分佈
  3. 選擇您的分佈 ID。
  4. 選擇來源
  5. 選取您的 Application Load Balancer,然後選擇編輯
    **注意:**如果您的 Application Load Balancer 不是來源,請更新您的分佈,然後將 Application Load Balancer 設定為來原。
  6. 新增自訂標頭 中,輸入標頭名稱
    重要:****標頭名稱作為安全憑證,例如使用者名稱和密碼。將這些值複製到文字檔案,以便在本程序中稍後使用。
  7. 選擇儲存變更

在 Web ACL 中建立規則,以封鎖沒有標頭的請求

請完成下列步驟:

  1. 開啟 AWS WAF 主控台
  2. 在導覽窗格的 AWS WAF 下,選擇 Web ACL
  3. 對於區域,選取 Application Load Balancer 所在的 AWS 區域。
    **注意:**如果您有與 Application Load Balancer 相關聯的現有 Web ACL,請跳至步驟 9。
  4. 選擇建立 Web ACL,然後輸入名稱
  5. 對於關聯的 AWS 資源,選取您的 Application Load Balancer,然後選擇下一步
  6. 對於不符合任何規則的請求的預設 Web ACL 動作,選擇允許,然後選擇下一步
  7. 對於請求取樣選項,選擇啟用取樣請求,然後選擇下一步
  8. 選擇建立 Web ACL
  9. 開啟 AWS WAF 主控台
  10. 在導覽窗格的 AWS WAF 下,選擇 Web ACL
  11. 對於區域,選取 Application Load Balancer 所在的區域。
  12. 選取與 Application Load Balancer 相關聯的 Web ACL。
  13. 規則下,選擇新增規則,然後選擇新增我自己的規則和規則群組
  14. 對於名稱,輸入規則名稱。
  15. 對於類型,選擇一般規則
  16. 對於如果請求,選擇與陳述式不符 (NOT)
  17. 陳述式 1 下設定下列設定:
    對於檢查,選擇單一標頭
    對於標頭欄位名稱,輸入您在 CloudFront 中建立的標頭名稱
    對於比對類型,選擇完全相符字串
    對於比對字串,輸入您在 CloudFront 中建立的
    對於文字轉換,選擇
  18. 對於動作,選擇封鎖
  19. 選擇儲存規則
  20. 對於設定規則優先順序,如果您有多個規則,則將此規則設定為最高優先順序。
  21. 選擇儲存

安全群組

若要進一步限制 Application Load Balancer 的流量,請在 Application Load Balancer 中的安全群組上使用 AWS 受管理字首清單

若要更新現有的安全群組,請參閱更新關聯的安全群組。若要將 Application Load Balancer 與安全群組關聯,請完成下列步驟:

  1. 開啟 Amazon Elastic Compute Cloud (Amazon EC2) 主控台
  2. 選取負載平衡器,然後選取 Application Load Balancer。
  3. 選擇安全性
  4. 選取要與 Application Load Balancer 關聯的安全群組。
  5. 若要修改傳入規則,請選取編輯傳入規則,然後將組態更新為您的使用案例。
    **注意:**如果您具有允許 0.0.0.0/0 的規則,則必須在刪除現有規則之前新增規則。
  6. 若要允許特定通訊協定,請選取該通訊協定,然後選擇自訂
  7. 對於來源類型,選擇 CloudFront,然後從 AWS 受管理字首清單中選取您的字首。
  8. 選擇儲存

**注意:**最佳實務是僅允許 Application Load Balancer 使用的連接埠。

由於字首清單權重,只能為預設設定下的每個安全群組新增 CloudFront 受管理字首清單。若要在同一安全群組中新增其他使用 CloudFront 作為來源類型的規則,則請求增加配額。或者,使用兩個都參考 CloudFront 受管理字首清單的安全群組。

相關資訊

安全群組

AWS 官方
AWS 官方已更新 7 個月前