共用方式為


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies

Bicep 資源定義

ApplicationGatewayWebApplicationFirewallPolicies 資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 資源,請將下列 Bicep 新增至範本。

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-05-01' = {
  location: 'string'
  name: 'string'
  properties: {
    customRules: [
      {
        action: 'string'
        groupByUserSession: [
          {
            groupByVariables: [
              {
                variableName: 'string'
              }
            ]
          }
        ]
        matchConditions: [
          {
            matchValues: [
              'string'
            ]
            matchVariables: [
              {
                selector: 'string'
                variableName: 'string'
              }
            ]
            negationConditon: bool
            operator: 'string'
            transforms: [
              'string'
            ]
          }
        ]
        name: 'string'
        priority: int
        rateLimitDuration: 'string'
        rateLimitThreshold: int
        ruleType: 'string'
        state: 'string'
      }
    ]
    managedRules: {
      exceptions: [
        {
          exceptionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
          valueMatchOperator: 'string'
          values: [
            'string'
          ]
        }
      ]
      exclusions: [
        {
          exclusionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
        }
      ]
      managedRuleSets: [
        {
          ruleGroupOverrides: [
            {
              ruleGroupName: 'string'
              rules: [
                {
                  action: 'string'
                  ruleId: 'string'
                  sensitivity: 'string'
                  state: 'string'
                }
              ]
            }
          ]
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      fileUploadEnforcement: bool
      fileUploadLimitInMb: int
      jsChallengeCookieExpirationInMins: int
      logScrubbing: {
        scrubbingRules: [
          {
            matchVariable: 'string'
            selector: 'string'
            selectorMatchOperator: 'string'
            state: 'string'
          }
        ]
        state: 'string'
      }
      maxRequestBodySizeInKb: int
      mode: 'string'
      requestBodyCheck: bool
      requestBodyEnforcement: bool
      requestBodyInspectLimitInKB: int
      state: 'string'
    }
  }
  tags: {
    {customized property}: 'string'
  }
}

屬性值

ExceptionEntry

名字 描述 價值
exceptionManagedRuleSets 與例外狀況相關聯的 Managed 規則集。 ExclusionManagedRuleSet[]
matchVariable 我們評估例外狀況條件的變數 'RemoteAddr'
'RequestHeader'
'RequestURI' (必要)
選擇器 當 matchVariable 指向索引鍵/值組時(例如 RequestHeader),這會識別索引鍵。 字串
selectorMatchOperator 當 matchVariable 指向索引鍵/值組時(例如 RequestHeader),這會在選取器上運作 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator 操作 matchVariable 的允許值 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (必要)
matchVariable 的允許值 string[]

ExclusionManagedRule

名字 描述 價值
ruleId 受控規則的標識碼。 字串 (必要)

ExclusionManagedRuleGroup

名字 描述 價值
ruleGroupName 要排除的受控規則群組。 字串 (必要)
規則 將排除的規則清單。 如果未指定任何規則,則會排除群組中的所有規則。 ExclusionManagedRule[]

ExclusionManagedRuleSet

名字 描述 價值
ruleGroups 定義要套用至規則集的規則群組。 ExclusionManagedRuleGroup[]
ruleSetType 定義要使用的規則集類型。 字串 (必要)
ruleSetVersion 定義要使用的規則集版本。 字串 (必要)

GroupByUserSession

名字 描述 價值
groupByVariables 依子句變數分組的清單。 GroupByVariable[] (必要)

GroupByVariable

名字 描述 價值
variableName 用戶會話子句變數。 'ClientAddr'
'GeoLocation'
'None' (必要)

ManagedRuleGroupOverride

名字 描述 價值
ruleGroupName 要覆寫的受控規則群組。 字串 (必要)
規則 將會停用的規則清單。 如果未指定任何規則,群組中的所有規則都會停用。 ManagedRuleOverride[]

ManagedRuleOverride

名字 描述 價值
行動 描述規則相符時要套用的覆寫動作。 'Allow'
'AnomalyScoring'
'Block'
'JSChallenge'
'Log'
ruleId 受控規則的標識碼。 字串 (必要)
敏感性 描述規則相符時要套用的覆寫敏感度。 'High'
'Low'
'Medium'
'None'
Managed 規則的狀態。 如果未指定,預設值為 Disabled。 'Disabled'
'Enabled'

ManagedRulesDefinition

名字 描述 價值
異常 在原則上套用的例外狀況。 ExceptionEntry[]
排除 在原則上套用的排除專案。 OwaspCrsExclusionEntry[]
managedRuleSets 與原則相關聯的Managed規則集。 ManagedRuleSet[] (必要)

ManagedRuleSet

名字 描述 價值
ruleGroupOverrides 定義要套用至規則集的規則群組覆寫。 ManagedRuleGroupOverride[]
ruleSetType 定義要使用的規則集類型。 字串 (必要)
ruleSetVersion 定義要使用的規則集版本。 字串 (必要)

MatchCondition

名字 描述 價值
matchValues 比對值。 string[] (必要)
matchVariables 比對變數的清單。 MatchVariable[] (必要)
negationConditon 這是否為否定條件。 bool
算子 要比對的運算符。 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (必要)
變換 轉換清單。 包含任何的字串數組:
'HtmlEntityDecode'
'小寫'
'RemoveNulls'
'Trim'
'大寫'
'UrlDecode'
'UrlEncode'

MatchVariable

名字 描述 價值
選擇器 比對變數的選取器。 字串
variableName 比對變數。 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (必要)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

名字 描述 價值
位置 資源位置。 字串
名字 資源名稱 字串

約束:
最大長度 = (必要)
性能 Web 應用程式防火牆原則的屬性。 WebApplicationFirewallPolicyPropertiesFormat
標籤 資源標籤 標記名稱和值的字典。 請參閱範本中的 標籤

OwaspCrsExclusionEntry

名字 描述 價值
exclusionManagedRuleSets 與排除相關聯的Managed規則集。 ExclusionManagedRuleSet[]
matchVariable 要排除的變數。 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (必要)
選擇器 matchVariable 是集合時,運算子會用來指定這個排除範圍套用至集合中的哪些專案。 字串 (必要)
selectorMatchOperator 當 matchVariable 是集合時,請在選取器上操作,以指定這個排除範圍套用至集合中的哪些元素。 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (必要)

PolicySettings

名字 描述 價值
customBlockResponseBody 如果動作類型為區塊,客戶可以覆寫回應本文。 主體必須在base64編碼中指定。 字串

約束:
最大長度 =
Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode 如果動作類型為封鎖,客戶可以覆寫響應狀態代碼。 int

約束:
最小值 = 0
fileUploadEnforcement 是否允許 WAF 強制執行檔案上傳限制。 bool
fileUploadLimitInMb WAF 的檔案上傳大小上限為 Mb。 int

約束:
最小值 = 0
jsChallengeCookieExpirationInMins Web 應用程式防火牆 JavaScript 挑戰 Cookie 到期時間以分鐘為單位。 int

約束:
最小值 = 5
最大值 = 1440
logScrubbing 若要清除敏感性記錄欄位 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF 的要求本文大小上限,以 Kb 為單位。 int

約束:
最小值 = 8
模式 原則的模式。 'Detection'
'預防'
requestBodyCheck 是否允許 WAF 檢查要求本文。 bool
requestBodyEnforcement 是否允許 WAF 強制執行要求本文限制。 bool
requestBodyInspectLimitInKB 適用於 WAF 要求本文檢查的 KB 檢查限制上限。 int
原則的狀態。 'Disabled'
'Enabled'

PolicySettingsLogScrubbing

名字 描述 價值
scrubbingRules 套用至記錄以進行清除的規則。 WebApplicationFirewallScrubbingRules[]
記錄清除設定的狀態。預設值為 Enabled。 'Disabled'
'Enabled'

ResourceTags

名字 描述 價值

WebApplicationFirewallCustomRule

名字 描述 價值
行動 動作的類型。 'Allow'
'Block'
'JSChallenge'
'Log' (必要)
groupByUserSession 依子句分組的用戶會話標識符清單。 GroupByUserSession[]
matchConditions 比對條件的清單。 MatchCondition[] (必要)
名字 原則內唯一的資源名稱。 此名稱可用來存取資源。 字串

約束:
最大長度 =
優先權 規則的優先順序。 在具有較高值的規則之前,將會先評估具有較低值的規則。 int (必要)
rateLimitDuration 將套用速率限制原則的持續時間。 僅適用於 ruleType 為 RateLimitRule 時。 'FiveMins'
'OneMin'
rateLimitThreshold 如果 ruleType 是 RateLimitRule,則會套用速率限制閾值。 必須大於或等於 1 int
ruleType 規則類型。 'Invalid'
'MatchRule'
'RateLimitRule' (必要)
描述自訂規則是否處於啟用或停用狀態。 如果未指定,則預設為 Enabled。 'Disabled'
'Enabled'

WebApplicationFirewallPolicyPropertiesFormat

名字 描述 價值
customRules 原則內的自定義規則。 WebApplicationFirewallCustomRule[]
managedRules 描述managedRules結構。 ManagedRulesDefinition (必要)
policySettings 原則的 PolicySettings。 PolicySettings

WebApplicationFirewallScrubbingRules

名字 描述 價值
matchVariable 要從記錄中清除的變數。 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (必要)
選擇器 matchVariable 是集合時,運算子會用來指定此規則套用至集合中的哪些專案。 字串
selectorMatchOperator 當 matchVariable 是集合時,請在選取器上操作,以指定套用此規則的集合中的哪些元素。 'Equals'
'EqualsAny' (必要)
定義記錄清除規則的狀態。 預設值為 Enabled。 'Disabled'
'Enabled'

快速入門範例

下列快速入門範例會部署此資源類型。

Bicep 檔案 描述
具有 NAT 閘道和應用程式閘道的 AKS 叢集 此範例示範如何使用 NAT 閘道部署 AKS 叢集以進行輸出連線,以及用於輸入連線的應用程式閘道。
使用應用程式閘道輸入控制器 AKS 叢集 此範例示範如何使用應用程式閘道、應用程式閘道輸入控制器、Azure Container Registry、Log Analytics 和 Key Vault 部署 AKS 叢集
使用 WAF 和防火牆原則 應用程式閘道 此範本會建立已設定 WAF 以及防火牆原則的應用程式閘道
在 Azure 應用程式閘道上建立 Azure WAF v2 此範本會在 Azure 應用程式閘道上建立 Azure Web 應用程式防火牆 v2,並在後端集區中有兩部 Windows Server 2016 伺服器
使用應用程式閘道來源 Front Door Standard/Premium 此範本會建立 Front Door Standard/Premium 和應用程式閘道實例,並使用 NSG 和 WAF 原則來驗證流量是否通過 Front Door 來源。
使用容器實例和應用程式閘道 Front Door 此範本會建立具有容器群組和應用程式閘道的 Front Door Standard/Premium。

ARM 樣本資源定義

ApplicationGatewayWebApplicationFirewallPolicies 資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 資源,請將下列 JSON 新增至範本。

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2024-05-01",
  "name": "string",
  "location": "string",
  "properties": {
    "customRules": [
      {
        "action": "string",
        "groupByUserSession": [
          {
            "groupByVariables": [
              {
                "variableName": "string"
              }
            ]
          }
        ],
        "matchConditions": [
          {
            "matchValues": [ "string" ],
            "matchVariables": [
              {
                "selector": "string",
                "variableName": "string"
              }
            ],
            "negationConditon": "bool",
            "operator": "string",
            "transforms": [ "string" ]
          }
        ],
        "name": "string",
        "priority": "int",
        "rateLimitDuration": "string",
        "rateLimitThreshold": "int",
        "ruleType": "string",
        "state": "string"
      }
    ],
    "managedRules": {
      "exceptions": [
        {
          "exceptionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string",
          "valueMatchOperator": "string",
          "values": [ "string" ]
        }
      ],
      "exclusions": [
        {
          "exclusionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string"
        }
      ],
      "managedRuleSets": [
        {
          "ruleGroupOverrides": [
            {
              "ruleGroupName": "string",
              "rules": [
                {
                  "action": "string",
                  "ruleId": "string",
                  "sensitivity": "string",
                  "state": "string"
                }
              ]
            }
          ],
          "ruleSetType": "string",
          "ruleSetVersion": "string"
        }
      ]
    },
    "policySettings": {
      "customBlockResponseBody": "string",
      "customBlockResponseStatusCode": "int",
      "fileUploadEnforcement": "bool",
      "fileUploadLimitInMb": "int",
      "jsChallengeCookieExpirationInMins": "int",
      "logScrubbing": {
        "scrubbingRules": [
          {
            "matchVariable": "string",
            "selector": "string",
            "selectorMatchOperator": "string",
            "state": "string"
          }
        ],
        "state": "string"
      },
      "maxRequestBodySizeInKb": "int",
      "mode": "string",
      "requestBodyCheck": "bool",
      "requestBodyEnforcement": "bool",
      "requestBodyInspectLimitInKB": "int",
      "state": "string"
    }
  },
  "tags": {
    "{customized property}": "string"
  }
}

屬性值

ExceptionEntry

名字 描述 價值
exceptionManagedRuleSets 與例外狀況相關聯的 Managed 規則集。 ExclusionManagedRuleSet[]
matchVariable 我們評估例外狀況條件的變數 'RemoteAddr'
'RequestHeader'
'RequestURI' (必要)
選擇器 當 matchVariable 指向索引鍵/值組時(例如 RequestHeader),這會識別索引鍵。 字串
selectorMatchOperator 當 matchVariable 指向索引鍵/值組時(例如 RequestHeader),這會在選取器上運作 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator 操作 matchVariable 的允許值 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (必要)
matchVariable 的允許值 string[]

ExclusionManagedRule

名字 描述 價值
ruleId 受控規則的標識碼。 字串 (必要)

ExclusionManagedRuleGroup

名字 描述 價值
ruleGroupName 要排除的受控規則群組。 字串 (必要)
規則 將排除的規則清單。 如果未指定任何規則,則會排除群組中的所有規則。 ExclusionManagedRule[]

ExclusionManagedRuleSet

名字 描述 價值
ruleGroups 定義要套用至規則集的規則群組。 ExclusionManagedRuleGroup[]
ruleSetType 定義要使用的規則集類型。 字串 (必要)
ruleSetVersion 定義要使用的規則集版本。 字串 (必要)

GroupByUserSession

名字 描述 價值
groupByVariables 依子句變數分組的清單。 GroupByVariable[] (必要)

GroupByVariable

名字 描述 價值
variableName 用戶會話子句變數。 'ClientAddr'
'GeoLocation'
'None' (必要)

ManagedRuleGroupOverride

名字 描述 價值
ruleGroupName 要覆寫的受控規則群組。 字串 (必要)
規則 將會停用的規則清單。 如果未指定任何規則,群組中的所有規則都會停用。 ManagedRuleOverride[]

ManagedRuleOverride

名字 描述 價值
行動 描述規則相符時要套用的覆寫動作。 'Allow'
'AnomalyScoring'
'Block'
'JSChallenge'
'Log'
ruleId 受控規則的標識碼。 字串 (必要)
敏感性 描述規則相符時要套用的覆寫敏感度。 'High'
'Low'
'Medium'
'None'
Managed 規則的狀態。 如果未指定,預設值為 Disabled。 'Disabled'
'Enabled'

ManagedRulesDefinition

名字 描述 價值
異常 在原則上套用的例外狀況。 ExceptionEntry[]
排除 在原則上套用的排除專案。 OwaspCrsExclusionEntry[]
managedRuleSets 與原則相關聯的Managed規則集。 ManagedRuleSet[] (必要)

ManagedRuleSet

名字 描述 價值
ruleGroupOverrides 定義要套用至規則集的規則群組覆寫。 ManagedRuleGroupOverride[]
ruleSetType 定義要使用的規則集類型。 字串 (必要)
ruleSetVersion 定義要使用的規則集版本。 字串 (必要)

MatchCondition

名字 描述 價值
matchValues 比對值。 string[] (必要)
matchVariables 比對變數的清單。 MatchVariable[] (必要)
negationConditon 這是否為否定條件。 bool
算子 要比對的運算符。 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (必要)
變換 轉換清單。 包含任何的字串數組:
'HtmlEntityDecode'
'小寫'
'RemoveNulls'
'Trim'
'大寫'
'UrlDecode'
'UrlEncode'

MatchVariable

名字 描述 價值
選擇器 比對變數的選取器。 字串
variableName 比對變數。 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (必要)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

名字 描述 價值
apiVersion API 版本 '2024-05-01'
位置 資源位置。 字串
名字 資源名稱 字串

約束:
最大長度 = (必要)
性能 Web 應用程式防火牆原則的屬性。 WebApplicationFirewallPolicyPropertiesFormat
標籤 資源標籤 標記名稱和值的字典。 請參閱範本中的 標籤
類型 資源類型 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies'

OwaspCrsExclusionEntry

名字 描述 價值
exclusionManagedRuleSets 與排除相關聯的Managed規則集。 ExclusionManagedRuleSet[]
matchVariable 要排除的變數。 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (必要)
選擇器 matchVariable 是集合時,運算子會用來指定這個排除範圍套用至集合中的哪些專案。 字串 (必要)
selectorMatchOperator 當 matchVariable 是集合時,請在選取器上操作,以指定這個排除範圍套用至集合中的哪些元素。 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (必要)

PolicySettings

名字 描述 價值
customBlockResponseBody 如果動作類型為區塊,客戶可以覆寫回應本文。 主體必須在base64編碼中指定。 字串

約束:
最大長度 =
Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode 如果動作類型為封鎖,客戶可以覆寫響應狀態代碼。 int

約束:
最小值 = 0
fileUploadEnforcement 是否允許 WAF 強制執行檔案上傳限制。 bool
fileUploadLimitInMb WAF 的檔案上傳大小上限為 Mb。 int

約束:
最小值 = 0
jsChallengeCookieExpirationInMins Web 應用程式防火牆 JavaScript 挑戰 Cookie 到期時間以分鐘為單位。 int

約束:
最小值 = 5
最大值 = 1440
logScrubbing 若要清除敏感性記錄欄位 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF 的要求本文大小上限,以 Kb 為單位。 int

約束:
最小值 = 8
模式 原則的模式。 'Detection'
'預防'
requestBodyCheck 是否允許 WAF 檢查要求本文。 bool
requestBodyEnforcement 是否允許 WAF 強制執行要求本文限制。 bool
requestBodyInspectLimitInKB 適用於 WAF 要求本文檢查的 KB 檢查限制上限。 int
原則的狀態。 'Disabled'
'Enabled'

PolicySettingsLogScrubbing

名字 描述 價值
scrubbingRules 套用至記錄以進行清除的規則。 WebApplicationFirewallScrubbingRules[]
記錄清除設定的狀態。預設值為 Enabled。 'Disabled'
'Enabled'

ResourceTags

名字 描述 價值

WebApplicationFirewallCustomRule

名字 描述 價值
行動 動作的類型。 'Allow'
'Block'
'JSChallenge'
'Log' (必要)
groupByUserSession 依子句分組的用戶會話標識符清單。 GroupByUserSession[]
matchConditions 比對條件的清單。 MatchCondition[] (必要)
名字 原則內唯一的資源名稱。 此名稱可用來存取資源。 字串

約束:
最大長度 =
優先權 規則的優先順序。 在具有較高值的規則之前,將會先評估具有較低值的規則。 int (必要)
rateLimitDuration 將套用速率限制原則的持續時間。 僅適用於 ruleType 為 RateLimitRule 時。 'FiveMins'
'OneMin'
rateLimitThreshold 如果 ruleType 是 RateLimitRule,則會套用速率限制閾值。 必須大於或等於 1 int
ruleType 規則類型。 'Invalid'
'MatchRule'
'RateLimitRule' (必要)
描述自訂規則是否處於啟用或停用狀態。 如果未指定,則預設為 Enabled。 'Disabled'
'Enabled'

WebApplicationFirewallPolicyPropertiesFormat

名字 描述 價值
customRules 原則內的自定義規則。 WebApplicationFirewallCustomRule[]
managedRules 描述managedRules結構。 ManagedRulesDefinition (必要)
policySettings 原則的 PolicySettings。 PolicySettings

WebApplicationFirewallScrubbingRules

名字 描述 價值
matchVariable 要從記錄中清除的變數。 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (必要)
選擇器 matchVariable 是集合時,運算子會用來指定此規則套用至集合中的哪些專案。 字串
selectorMatchOperator 當 matchVariable 是集合時,請在選取器上操作,以指定套用此規則的集合中的哪些元素。 'Equals'
'EqualsAny' (必要)
定義記錄清除規則的狀態。 預設值為 Enabled。 'Disabled'
'Enabled'

快速入門範本

下列快速入門範本會部署此資源類型。

範本 描述
具有 NAT 閘道和應用程式閘道的 AKS 叢集

部署至 Azure
此範例示範如何使用 NAT 閘道部署 AKS 叢集以進行輸出連線,以及用於輸入連線的應用程式閘道。
使用應用程式閘道輸入控制器 AKS 叢集

部署至 Azure
此範例示範如何使用應用程式閘道、應用程式閘道輸入控制器、Azure Container Registry、Log Analytics 和 Key Vault 部署 AKS 叢集
使用 WAF 和防火牆原則 應用程式閘道

部署至 Azure
此範本會建立已設定 WAF 以及防火牆原則的應用程式閘道
在 Azure 應用程式閘道上建立 Azure WAF v2

部署至 Azure
此範本會在 Azure 應用程式閘道上建立 Azure Web 應用程式防火牆 v2,並在後端集區中有兩部 Windows Server 2016 伺服器
使用應用程式閘道來源 Front Door Standard/Premium

部署至 Azure
此範本會建立 Front Door Standard/Premium 和應用程式閘道實例,並使用 NSG 和 WAF 原則來驗證流量是否通過 Front Door 來源。
使用容器實例和應用程式閘道 Front Door

部署至 Azure
此範本會建立具有容器群組和應用程式閘道的 Front Door Standard/Premium。

Terraform (AzAPI 提供者) 資源定義

ApplicationGatewayWebApplicationFirewallPolicies 資源類型可以使用目標作業來部署:

  • 資源群組

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 資源,請將下列 Terraform 新增至您的範本。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-05-01"
  name = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      customRules = [
        {
          action = "string"
          groupByUserSession = [
            {
              groupByVariables = [
                {
                  variableName = "string"
                }
              ]
            }
          ]
          matchConditions = [
            {
              matchValues = [
                "string"
              ]
              matchVariables = [
                {
                  selector = "string"
                  variableName = "string"
                }
              ]
              negationConditon = bool
              operator = "string"
              transforms = [
                "string"
              ]
            }
          ]
          name = "string"
          priority = int
          rateLimitDuration = "string"
          rateLimitThreshold = int
          ruleType = "string"
          state = "string"
        }
      ]
      managedRules = {
        exceptions = [
          {
            exceptionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
            valueMatchOperator = "string"
            values = [
              "string"
            ]
          }
        ]
        exclusions = [
          {
            exclusionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
          }
        ]
        managedRuleSets = [
          {
            ruleGroupOverrides = [
              {
                ruleGroupName = "string"
                rules = [
                  {
                    action = "string"
                    ruleId = "string"
                    sensitivity = "string"
                    state = "string"
                  }
                ]
              }
            ]
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        fileUploadEnforcement = bool
        fileUploadLimitInMb = int
        jsChallengeCookieExpirationInMins = int
        logScrubbing = {
          scrubbingRules = [
            {
              matchVariable = "string"
              selector = "string"
              selectorMatchOperator = "string"
              state = "string"
            }
          ]
          state = "string"
        }
        maxRequestBodySizeInKb = int
        mode = "string"
        requestBodyCheck = bool
        requestBodyEnforcement = bool
        requestBodyInspectLimitInKB = int
        state = "string"
      }
    }
  })
}

屬性值

ExceptionEntry

名字 描述 價值
exceptionManagedRuleSets 與例外狀況相關聯的 Managed 規則集。 ExclusionManagedRuleSet[]
matchVariable 我們評估例外狀況條件的變數 'RemoteAddr'
'RequestHeader'
'RequestURI' (必要)
選擇器 當 matchVariable 指向索引鍵/值組時(例如 RequestHeader),這會識別索引鍵。 字串
selectorMatchOperator 當 matchVariable 指向索引鍵/值組時(例如 RequestHeader),這會在選取器上運作 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator 操作 matchVariable 的允許值 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (必要)
matchVariable 的允許值 string[]

ExclusionManagedRule

名字 描述 價值
ruleId 受控規則的標識碼。 字串 (必要)

ExclusionManagedRuleGroup

名字 描述 價值
ruleGroupName 要排除的受控規則群組。 字串 (必要)
規則 將排除的規則清單。 如果未指定任何規則,則會排除群組中的所有規則。 ExclusionManagedRule[]

ExclusionManagedRuleSet

名字 描述 價值
ruleGroups 定義要套用至規則集的規則群組。 ExclusionManagedRuleGroup[]
ruleSetType 定義要使用的規則集類型。 字串 (必要)
ruleSetVersion 定義要使用的規則集版本。 字串 (必要)

GroupByUserSession

名字 描述 價值
groupByVariables 依子句變數分組的清單。 GroupByVariable[] (必要)

GroupByVariable

名字 描述 價值
variableName 用戶會話子句變數。 'ClientAddr'
'GeoLocation'
'None' (必要)

ManagedRuleGroupOverride

名字 描述 價值
ruleGroupName 要覆寫的受控規則群組。 字串 (必要)
規則 將會停用的規則清單。 如果未指定任何規則,群組中的所有規則都會停用。 ManagedRuleOverride[]

ManagedRuleOverride

名字 描述 價值
行動 描述規則相符時要套用的覆寫動作。 'Allow'
'AnomalyScoring'
'Block'
'JSChallenge'
'Log'
ruleId 受控規則的標識碼。 字串 (必要)
敏感性 描述規則相符時要套用的覆寫敏感度。 'High'
'Low'
'Medium'
'None'
Managed 規則的狀態。 如果未指定,預設值為 Disabled。 'Disabled'
'Enabled'

ManagedRulesDefinition

名字 描述 價值
異常 在原則上套用的例外狀況。 ExceptionEntry[]
排除 在原則上套用的排除專案。 OwaspCrsExclusionEntry[]
managedRuleSets 與原則相關聯的Managed規則集。 ManagedRuleSet[] (必要)

ManagedRuleSet

名字 描述 價值
ruleGroupOverrides 定義要套用至規則集的規則群組覆寫。 ManagedRuleGroupOverride[]
ruleSetType 定義要使用的規則集類型。 字串 (必要)
ruleSetVersion 定義要使用的規則集版本。 字串 (必要)

MatchCondition

名字 描述 價值
matchValues 比對值。 string[] (必要)
matchVariables 比對變數的清單。 MatchVariable[] (必要)
negationConditon 這是否為否定條件。 bool
算子 要比對的運算符。 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (必要)
變換 轉換清單。 包含任何的字串數組:
'HtmlEntityDecode'
'小寫'
'RemoveNulls'
'Trim'
'大寫'
'UrlDecode'
'UrlEncode'

MatchVariable

名字 描述 價值
選擇器 比對變數的選取器。 字串
variableName 比對變數。 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (必要)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

名字 描述 價值
位置 資源位置。 字串
名字 資源名稱 字串

約束:
最大長度 = (必要)
性能 Web 應用程式防火牆原則的屬性。 WebApplicationFirewallPolicyPropertiesFormat
標籤 資源標籤 標記名稱和值的字典。
類型 資源類型 “Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-05-01”

OwaspCrsExclusionEntry

名字 描述 價值
exclusionManagedRuleSets 與排除相關聯的Managed規則集。 ExclusionManagedRuleSet[]
matchVariable 要排除的變數。 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (必要)
選擇器 matchVariable 是集合時,運算子會用來指定這個排除範圍套用至集合中的哪些專案。 字串 (必要)
selectorMatchOperator 當 matchVariable 是集合時,請在選取器上操作,以指定這個排除範圍套用至集合中的哪些元素。 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (必要)

PolicySettings

名字 描述 價值
customBlockResponseBody 如果動作類型為區塊,客戶可以覆寫回應本文。 主體必須在base64編碼中指定。 字串

約束:
最大長度 =
Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode 如果動作類型為封鎖,客戶可以覆寫響應狀態代碼。 int

約束:
最小值 = 0
fileUploadEnforcement 是否允許 WAF 強制執行檔案上傳限制。 bool
fileUploadLimitInMb WAF 的檔案上傳大小上限為 Mb。 int

約束:
最小值 = 0
jsChallengeCookieExpirationInMins Web 應用程式防火牆 JavaScript 挑戰 Cookie 到期時間以分鐘為單位。 int

約束:
最小值 = 5
最大值 = 1440
logScrubbing 若要清除敏感性記錄欄位 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF 的要求本文大小上限,以 Kb 為單位。 int

約束:
最小值 = 8
模式 原則的模式。 'Detection'
'預防'
requestBodyCheck 是否允許 WAF 檢查要求本文。 bool
requestBodyEnforcement 是否允許 WAF 強制執行要求本文限制。 bool
requestBodyInspectLimitInKB 適用於 WAF 要求本文檢查的 KB 檢查限制上限。 int
原則的狀態。 'Disabled'
'Enabled'

PolicySettingsLogScrubbing

名字 描述 價值
scrubbingRules 套用至記錄以進行清除的規則。 WebApplicationFirewallScrubbingRules[]
記錄清除設定的狀態。預設值為 Enabled。 'Disabled'
'Enabled'

ResourceTags

名字 描述 價值

WebApplicationFirewallCustomRule

名字 描述 價值
行動 動作的類型。 'Allow'
'Block'
'JSChallenge'
'Log' (必要)
groupByUserSession 依子句分組的用戶會話標識符清單。 GroupByUserSession[]
matchConditions 比對條件的清單。 MatchCondition[] (必要)
名字 原則內唯一的資源名稱。 此名稱可用來存取資源。 字串

約束:
最大長度 =
優先權 規則的優先順序。 在具有較高值的規則之前,將會先評估具有較低值的規則。 int (必要)
rateLimitDuration 將套用速率限制原則的持續時間。 僅適用於 ruleType 為 RateLimitRule 時。 'FiveMins'
'OneMin'
rateLimitThreshold 如果 ruleType 是 RateLimitRule,則會套用速率限制閾值。 必須大於或等於 1 int
ruleType 規則類型。 'Invalid'
'MatchRule'
'RateLimitRule' (必要)
描述自訂規則是否處於啟用或停用狀態。 如果未指定,則預設為 Enabled。 'Disabled'
'Enabled'

WebApplicationFirewallPolicyPropertiesFormat

名字 描述 價值
customRules 原則內的自定義規則。 WebApplicationFirewallCustomRule[]
managedRules 描述managedRules結構。 ManagedRulesDefinition (必要)
policySettings 原則的 PolicySettings。 PolicySettings

WebApplicationFirewallScrubbingRules

名字 描述 價值
matchVariable 要從記錄中清除的變數。 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (必要)
選擇器 matchVariable 是集合時,運算子會用來指定此規則套用至集合中的哪些專案。 字串
selectorMatchOperator 當 matchVariable 是集合時,請在選取器上操作,以指定套用此規則的集合中的哪些元素。 'Equals'
'EqualsAny' (必要)
定義記錄清除規則的狀態。 預設值為 Enabled。 'Disabled'
'Enabled'