跳至內容

如何使用 AWS WAF 限制直接流量存取 Application Load Balancer,並且只允許透過 API Gateway 的流量?

2 分的閱讀內容
0

我想使用 AWS WAF 來限制對 Application Load Balancer 的直接存取。我也想使用 AWS WAF,只允許透過 Amazon API Gateway 的直接存取。

解決方法

若要使用 AWS WAF 限制直接流量存取 Application Load Balancer,並且只允許透過 API Gateway 的流量,請依照以下步驟操作。

新增自訂 HTTP 標頭

將 API Gateway 設定為在傳送至 Application Load Balancer 的請求中,加入帶有機密值的自訂 HTTP 標頭。

請完成下列步驟:

  1. 開啟 API Gateway console (API Gateway 主控台)。
  2. 在導覽窗格中,選擇 API。
  3. 選擇您的 REST API。
  4. 在 Resources (資源) 中,選擇您的 HTTP 方法。例如,GET。
  5. 選擇 Integration Request (整合請求) 索引標籤,然後選擇 Edit (編輯)。
  6. 展開 URL request headers parameters (網址請求標頭參數) 區段,然後選擇 Add request header parameter (新增請求標頭參數)。
    在 Name (名稱),輸入標頭的名稱。例如,custom-header。
    在 Mapped from (對應來源),輸入機密標頭值。
    **注意:**請確保您用單引號將機密標頭值括起來。例如,「secret-value」。
  7. 選擇 Save (儲存)。

建立防護套件和規則

建立一個與 Application Load Balancer 相關聯的空白 AWS WAF 防護套件。接著,建立一條規則,封鎖沒有帶有機密值自訂 HTTP 標頭的請求。

注意:如果您已擁有與 Application Load Balancer 關聯的現有防護套件,請直接進行建立規則的步驟。

建立防護套件

請完成下列步驟:

  1. 開啟 AWS WAF console (AWS WAF 主控台)。
  2. 在導覽窗格中,選擇 AWS WAF。
  3. 選擇 Resources & protection packs (資源和防護套件)。
  4. 在 Protection packs (防護套件) 下,選擇 Create protection pack (建立防護套件)。
  5. 在 Tell us about your app (告訴我們您的應用程式) 下,選取一個或多個應用程式類別。
  6. 選擇您的應用程式焦點。
  7. 在 Resources to protect (選取要保護的資源) 下,選擇 Add resources (新增資源)。
  8. 選擇 Add regional resources (新增區域資源)。從清單中選取您的 Application Load Balancer。
  9. 在 Choose protection pack (選擇防護套件) 下,選擇 Build your own pack from all of the protections AWS WAF offers (從 AWS WAF 提供的所有保護中建置您自己的套件)。 請忽略右側窗格。
  10. 在 Name and description (名稱和說明) 下,輸入防護套件的名稱。
  11. 選擇 Create protection pack (建立防護套件)。

建立規則

請完成下列步驟:

  1. 開啟 AWS WAF console (AWS WAF 主控台)。
  2. 在導覽窗格中,選擇 AWS WAF。
  3. 選擇 Resources & protection packs (資源和防護套件)。
  4. 在 Protection packs (防護套件) 下,選取已關聯的防護套件,然後選擇規則 (Rules) 旁邊的 View and edit (檢視並編輯)。 這會打開右側窗格。
  5. 在右側窗格中,選擇 Add rule (新增規則)。
    選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
    再次選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
  6. 若要設定規則,請設定以下值:
    在 Action (動作) 中,選擇 Block (封鎖)。
    在 Rule name (規則名稱) 中,輸入規則名稱。
    在 If a request (如果請求) 中,選擇 doesn't match the statement (NOT) (與陳述式不符 (NOT))。
    對於檢查,選擇單一標頭。
    在 Header field name (標頭欄位名稱),輸入自訂 Header name (標頭名稱)。例如,custom-header。
    對於比對類型,選擇完全相符字串。
    在 String to match (要符合的字串),輸入機密標頭值。
    **注意:**請確保您用單引號將機密標頭值括起來。例如,「secret-value」。
  7. 選擇 Create rule (建立規則)。
  8. 如果防護套件中有多條規則,請在右側窗格中選擇編輯規則順序。
    將剛建立的規則移動到最高優先順序,將其置於最上方。
  9. 選擇 Save rule order (儲存規則順序)。

相關資訊

如何將 API Gateway REST API 與 Application Load Balancer 整合?

AWS 官方已更新 1 年前