Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies
- 最新
- 2024-05-01
- 2024-03-01
- 2024-01-01
- 2023-11-01
- 2023-09-01
- 2023-06-01
- 2023-05-01
- 2023-04-01
- 2023-02-01
- 2022-11-01
- 2022-09-01
- 2022-07-01
- 2022-05-01
- 2022-01-01
- 2021-08-01
- 2021-05-01
- 2021-03-01
- 2021-02-01
- 2020-11-01
- 2020-08-01
- 2020-07-01
- 2020-06-01
- 2020-05-01
- 2020-04-01
- 2020-03-01
- 2019-12-01
- 2019-11-01
- 2019-09-01
- 2019-08-01
- 2019-07-01
- 2019-06-01
- 2019-04-01
- 2019-02-01
- 2018-12-01
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 叢集 |
此範例示範如何使用 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。 |
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' |