跳至內容

如何使用 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 官方已更新 4 個月前