如何使用 AWS WAF 限制流量直接傳輸至 ALB,並允許只通過雲端流量?

2 分的閱讀內容
0

我想要使用 AWS WAF 限制使用者直接存取 Application Load Balancer (ALB),而且只允許透過 Amazon CloudFront 進行存取。如何使用 AWS WAF 執行此操作?

解決方案

若要使用 AWS WAF 限制流量直接傳輸至 ALB,並允許只通過雲端流量,請執行下列操作:

  1. 將 CloudFront 設定為,在 CloudFront 傳送至 ALB 的請求中,新增包含機密值的自訂 HTTP 標頭。
  2. 在與 ALB 關聯的 AWS WAF Web ACL 中建立規則,以封鎖不含自訂 HTTP 標頭機密值的請求。

將 CloudFront 設定為,在其傳送至 ALB 的請求中,新增包含機密值的自訂 HTTP 標頭

  1. 開啟 Amazon CloudFront 主控台。
  2. 在導覽窗格中,選擇 Distributions (分發)。
  3. 選擇分發的 ID。
  4. 選擇 Origins (來源)。
  5. 選取您的 ALB 來源,然後選擇 Edit (編輯)。
    **注意:**如果您沒有 ALB 來源,請參閱建立分發更新分發
  6. 針對 Add custom header (新增自訂標頭),新增 Header name (標頭名稱) 和 Value (值)。範例標頭名稱為 Custom-header, 為 Random-12345。
    重要事項︰將 Header name (標頭名稱) 和 Value (值) 視為安全憑證,例如使用者名稱和密碼。
  7. 選擇 Save changes (儲存變更)。

在與 ALB 關聯的 AWS WAF Web ACL 中建立規則,以封鎖不含自訂 HTTP 標頭機密值的請求

注意:如果您沒有與 ALB 關聯的現有 Web ACL,則請按照建立 AWS WAF Web ACL 中的步驟操作。如果您有與 ALB 關聯的現有 Web ACL,請繼續 Create a rule (建立規則)。

建立 AWS WAF Web ACL

  1. 開啟 AWS WAF 主控台
  2. 在導覽窗格的 AWS WAF 下,選擇 Web ACL
  3. 針對 Region (區域),請選取 ALB 所在的 AWS 區域。
  4. 選擇 Create web ACL (建立 Web ACL),然後輸入 Name (名稱)。
  5. 針對 Associated AWS resources (關聯的 AWS 資源),請關聯您的 ALB,然後選擇 Next (下一步)。
  6. 針對 Default web ACL action for requests that don't match any rules (不符合任何規則之請求的預設 Web ACL 動作),請選擇 Allow (允許),然後選擇 Next (下一步)。
  7. 針對 Request sampling options (請求取樣選項),選擇 Enable sampled requests (啟用取樣要求),然後選擇 Next (下一步)。
  8. 檢閱 Web ACL 組態。如果組態與您的規格相符,請選擇 Create web ACL (建立 Web ACL)。

建立規則

  1. 開啟 AWS WAF 主控台
  2. 在導覽窗格的 AWS WAF 下,選擇 Web ACL
  3. 針對 Region (區域),請選取 ALB 所在的 AWS 區域。
  4. 選取已與 ALB 關聯的 Web ACL。
  5. 選擇 Rules (規則),然後選擇 Add Rules (新增規則)、Add my own rules and rule groups (新增我自己的規則和規則群組)。
  6. Name (名稱) 中,輸入 rule name (規則名稱),然後選擇 Regular Rule (一般規則)。
  7. 針對 If a request (如果請求),選擇 doesn't match the statement (NOT) (與陳述式 (NOT) 不相符)。
  8. Statement 1
    針對 Inspect (檢查),選擇 Single Header (單一標題)。
    Header field name (標頭欄位名稱) 中,輸入在 CloudFront 中建立的 Header name (標頭名稱) 的名稱。例如,Custom-header。
    針對 Match type (比對類型),選擇 Exactly matches string (完全與字串相符)。
    針對 String to match (要比對的字串),請輸入在 CloudFront 中建立的 Value (值)。例如,Random-12345。
    針對 Text transformation (文字轉換),請選擇 None (無)。
  9. 針對 Action (動作),選擇 Block (封鎖)。
  10. 選擇 Save rule (儲存規則)。
  11. 針對 Set rule priority (設定規則優先級),如果您有多個規則,請將此規則設定為最高優先級。
  12. 選擇 Save (儲存)。

相關資訊

將自訂標頭新增至原始請求

AWS WAF 規則

AWS 官方
AWS 官方已更新 2 年前