Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2022-11-01
Bicep リソース定義
ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。
- リソース グループ - リソース グループのデプロイ コマンドを参照してください
各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。
リソース形式
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の Bicep をテンプレートに追加します。
resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-11-01' = {
name: 'string'
location: 'string'
tags: {
tagName1: 'tagValue1'
tagName2: 'tagValue2'
}
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: {
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'
state: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
}
policySettings: {
customBlockResponseBody: 'string'
customBlockResponseStatusCode: int
fileUploadEnforcement: bool
fileUploadLimitInMb: 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'
}
}
}
プロパティ値
ApplicationGatewayWebApplicationFirewallPolicies
名前 | 説明 | 値 |
---|---|---|
name | リソース名 | string (必須) |
location | リソースの場所。 | string |
tags | リソース タグ。 | タグの名前と値のディクショナリ。 「テンプレート内のタグ」を参照してください |
properties | Web アプリケーション ファイアウォール ポリシーのプロパティ。 | WebApplicationFirewallPolicyPropertiesFormat |
WebApplicationFirewallPolicyPropertiesFormat
名前 | 説明 | 値 |
---|---|---|
customRules | ポリシー内のカスタム 規則。 | WebApplicationFirewallCustomRule[] |
managedRules | managedRules 構造体について説明します。 | ManagedRulesDefinition (必須) |
policySettings | ポリシーの PolicySettings。 | PolicySettings |
WebApplicationFirewallCustomRule
名前 | 説明 | 値 |
---|---|---|
action | アクションの種類。 | 'Allow' 'ブロック' 'Log' (必須) |
groupByUserSession | 句別のユーザー セッション識別子グループの一覧。 | GroupByUserSession[] |
matchConditions | 一致条件の一覧。 | MatchCondition[] (必須) |
name | ポリシー内で一意のリソースの名前。 この名前は、リソースへのアクセスに使用できます。 | string 制約: 最大長 = 128 |
priority | ルールの優先度。 値が小さいルールは、値が大きいルールの前に評価されます。 | int (必須) |
rateLimitDuration | レート制限ポリシーが適用される期間。 ruleType が RateLimitRule の場合にのみ適用されます。 | 'FiveMins' 'OneMin' |
rateLimitThreshold | ruleType が RateLimitRule の場合に適用するレート制限しきい値。 1 以上である必要があります | INT |
ruleType | ルールの種類。 | 'Invalid' 'MatchRule' 'RateLimitRule' (必須) |
state | カスタム ルールが有効または無効の状態であるかどうかを示します。 指定しない場合、既定値は [有効] になります。 | 'Disabled' 'Enabled' |
GroupByUserSession
名前 | 説明 | 値 |
---|---|---|
groupByVariables | group by 句変数の一覧。 | GroupByVariable[] (必須) |
GroupByVariable
名前 | 説明 | 値 |
---|---|---|
variableName | ユーザー セッション句変数。 | 'ClientAddr' 'GeoLocation' 'None' (必須) |
MatchCondition
名前 | 説明 | 値 |
---|---|---|
matchValues | 一致する値。 | string[] (必須) |
matchVariables | 一致変数の一覧。 | MatchVariable[] (必須) |
negationConditon | これが否定条件かどうか。 | [bool] |
operator | 照合する演算子。 | 'Any' 'BeginsWith' 'Contains' 'EndsWith' 'Equal' 'GeoMatch' 'GreaterThan' 'GreaterThanOrEqual' 'IPMatch' 'LessThan' 'LessThanOrEqual' 'Regex' (必須) |
変換 | 変換の一覧。 | 次のいずれかを含む文字列配列: 'HtmlEntityDecode' '小文字' 'RemoveNulls' 'Trim' '大文字' 'UrlDecode' 'UrlEncode' |
MatchVariable
名前 | 説明 | 値 |
---|---|---|
セレクター | match 変数のセレクター。 | string |
variableName | 一致する変数。 | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (必須) |
ManagedRulesDefinition
名前 | 説明 | 値 |
---|---|---|
除外 | ポリシーに適用される除外。 | OwaspCrsExclusionEntry[] |
managedRuleSets | ポリシーに関連付けられている管理ルール セット。 | ManagedRuleSet[] (必須) |
OwaspCrsExclusionEntry
名前 | 説明 | 値 |
---|---|---|
exclusionManagedRuleSets | 除外に関連付けられている管理ルール セット。 | ExclusionManagedRuleSet[] |
matchVariable | 除外する変数。 | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (必須) |
セレクター | matchVariable がコレクションの場合、この除外が適用されるコレクション内の要素を指定するために演算子を使用します。 | string (必須) |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この除外が適用されるコレクション内の要素を指定します。 | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (必須) |
ExclusionManagedRuleSet
名前 | 説明 | 値 |
---|---|---|
ruleGroups | ルール セットに適用するルール グループを定義します。 | ExclusionManagedRuleGroup[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
ExclusionManagedRuleGroup
名前 | 説明 | 値 |
---|---|---|
ruleGroupName | 除外するマネージド ルール グループ。 | string (必須) |
rules | 除外されるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが除外されます。 | ExclusionManagedRule[] |
ExclusionManagedRule
名前 | 説明 | 値 |
---|---|---|
ruleId | マネージド ルールの識別子。 | string (必須) |
ManagedRuleSet
名前 | 説明 | 値 |
---|---|---|
ruleGroupOverrides | ルール セットに適用するルール グループのオーバーライドを定義します。 | ManagedRuleGroupOverride[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
ManagedRuleGroupOverride
名前 | 説明 | 値 |
---|---|---|
ruleGroupName | オーバーライドするマネージド ルール グループ。 | string (必須) |
rules | 無効になるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが無効になります。 | ManagedRuleOverride[] |
ManagedRuleOverride
名前 | 説明 | 値 |
---|---|---|
action | ルールが一致したときに適用されるオーバーライド アクションについて説明します。 | 'Allow' 'AnomalyScoring' 'ブロック' 'Log' |
ruleId | マネージド ルールの識別子。 | string (必須) |
state | マネージド ルールの状態。 指定しない場合、既定値は [無効] になります。 | 'Disabled' 'Enabled' |
PolicySettings
名前 | 説明 | 値 |
---|---|---|
customBlockResponseBody | アクションの種類がブロックの場合、顧客は応答本文をオーバーライドできます。 本文は base64 エンコードで指定する必要があります。 | string 制約: 最大長 = 32768 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 |
logScrubbing | 機密性の高いログ フィールドをスクラブするには | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | WAF の要求本文の最大サイズ (Kb 単位)。 | INT 制約: 最小値 = 8 |
mode | ポリシーのモード。 | 'Detection' '防止' |
requestBodyCheck | WAF による要求本文のチェックを許可するかどうか。 | [bool] |
requestBodyEnforcement | WAF で要求本文の制限を適用できるかどうかを示します。 | [bool] |
requestBodyInspectLimitInKB | WAF の要求本文検査の最大検査制限 (KB 単位)。 | INT |
state | ポリシーの状態。 | 'Disabled' 'Enabled' |
PolicySettingsLogScrubbing
名前 | 説明 | 値 |
---|---|---|
scrubbingRules | スクラブのためにログに適用されるルール。 | WebApplicationFirewallScrubbingRules[] |
state | ログ スクラブ構成の状態。既定値は [有効] です。 | 'Disabled' 'Enabled' |
WebApplicationFirewallScrubbingRules
名前 | 説明 | 値 |
---|---|---|
matchVariable | ログからスクラブされる変数。 | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (必須) |
セレクター | matchVariable がコレクションの場合、この規則が適用されるコレクション内の要素を指定するために演算子を使用します。 | string |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この規則が適用されるコレクション内の要素を指定します。 | 'Equals' 'EqualsAny' (必須) |
state | ログ スクラブ ルールの状態を定義します。 既定値は [有効] です。 | 'Disabled' 'Enabled' |
クイック スタート テンプレート
次のクイックスタート テンプレートでは、このリソースの種類をデプロイします。
Template | 説明 |
---|---|
Azure Application Gateway で Azure WAF v2 をCreateする |
このテンプレートは、バックエンド プールに 2 つのWindows Server 2016 サーバーを含む Azure Web Application Firewall v2 をAzure Application Gatewayに作成します |
NAT ゲートウェイとApplication Gatewayを備えた AKS クラスター |
このサンプルでは、送信接続用の NAT ゲートウェイと受信接続用のApplication Gatewayを使用して AKS クラスターをデプロイする方法を示します。 |
Front Door Standard/Premium とApplication Gatewayオリジン |
このテンプレートは、Front Door Standard/Premium とApplication Gateway インスタンスを作成し、NSG と WAF ポリシーを使用して、トラフィックが Front Door の配信元を通過したことを検証します。 |
Container InstancesとApplication Gateway付きフロントドア |
このテンプレートでは、コンテナー グループとApplication Gatewayを使用して Front Door Standard/Premium を作成します。 |
Application Gateway イングレス コントローラーを使用した AKS クラスター |
このサンプルでは、Application Gateway、Application Gatewayイングレス コントローラー、Azure Container Registry、Log Analytics、Key Vaultを使用して AKS クラスターをデプロイする方法を示します。 |
WAF とファイアウォール ポリシーを使用したApplication Gateway |
このテンプレートは、ファイアウォール ポリシーと共に構成された WAF を使用してApplication Gatewayを作成します |
ARM テンプレート リソース定義
ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。
- リソース グループ - リソース グループのデプロイ コマンドを参照してください
各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。
リソース形式
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の JSON をテンプレートに追加します。
{
"type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
"apiVersion": "2022-11-01",
"name": "string",
"location": "string",
"tags": {
"tagName1": "tagValue1",
"tagName2": "tagValue2"
},
"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": {
"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",
"state": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
]
},
"policySettings": {
"customBlockResponseBody": "string",
"customBlockResponseStatusCode": "int",
"fileUploadEnforcement": "bool",
"fileUploadLimitInMb": "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"
}
}
}
プロパティ値
ApplicationGatewayWebApplicationFirewallPolicies
名前 | 説明 | 値 |
---|---|---|
type | リソースの種類 | 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies' |
apiVersion | リソース API のバージョン | '2022-11-01' |
name | リソース名 | string (必須) |
location | リソースの場所。 | string |
tags | リソース タグ。 | タグの名前と値のディクショナリ。 「テンプレート内のタグ」を参照してください |
properties | Web アプリケーション ファイアウォール ポリシーのプロパティ。 | WebApplicationFirewallPolicyPropertiesFormat |
WebApplicationFirewallPolicyPropertiesFormat
名前 | 説明 | 値 |
---|---|---|
customRules | ポリシー内のカスタム 規則。 | WebApplicationFirewallCustomRule[] |
managedRules | managedRules 構造体について説明します。 | ManagedRulesDefinition (必須) |
policySettings | ポリシーの PolicySettings。 | PolicySettings |
WebApplicationFirewallCustomRule
名前 | 説明 | 値 |
---|---|---|
action | アクションの種類。 | 'Allow' 'ブロック' 'Log' (必須) |
groupByUserSession | 句別のユーザー セッション識別子グループの一覧。 | GroupByUserSession[] |
matchConditions | 一致条件の一覧。 | MatchCondition[] (必須) |
name | ポリシー内で一意のリソースの名前。 この名前は、リソースへのアクセスに使用できます。 | string 制約: 最大長 = 128 |
priority | ルールの優先度。 値が小さいルールは、値が大きいルールの前に評価されます。 | int (必須) |
rateLimitDuration | レート制限ポリシーが適用される期間。 ruleType が RateLimitRule の場合にのみ適用されます。 | 'FiveMins' 'OneMin' |
rateLimitThreshold | ruleType が RateLimitRule の場合に適用するレート制限しきい値。 1 以上である必要があります | INT |
ruleType | ルールの種類。 | 'Invalid' 'MatchRule' 'RateLimitRule' (必須) |
state | カスタム ルールが有効または無効の状態であるかどうかを示します。 指定しない場合、既定値は [有効] になります。 | 'Disabled' 'Enabled' |
GroupByUserSession
名前 | 説明 | 値 |
---|---|---|
groupByVariables | グループ化句変数の一覧。 | GroupByVariable[] (必須) |
GroupByVariable
名前 | 説明 | 値 |
---|---|---|
variableName | User Session 句変数。 | 'ClientAddr' 'GeoLocation' 'None' (必須) |
MatchCondition
名前 | 説明 | 値 |
---|---|---|
matchValues | 一致する値。 | string[] (必須) |
matchVariables | 一致変数の一覧。 | MatchVariable[] (必須) |
negationConditon | これが条件を否定するかどうか。 | [bool] |
operator | 照合する演算子。 | 'Any' 'BeginsWith' 'Contains' 'EndsWith' 'Equal' 'GeoMatch' 'GreaterThan' 'GreaterThanOrEqual' 'IPMatch' 'LessThan' 'LessThanOrEqual' 'Regex' (必須) |
変換 | 変換の一覧。 | 次のいずれかを含む文字列配列: 'HtmlEntityDecode' '小文字' 'RemoveNulls' 'Trim' '大文字' 'UrlDecode' 'UrlEncode' |
MatchVariable
名前 | 説明 | 値 |
---|---|---|
セレクター | match 変数のセレクター。 | string |
variableName | 一致する変数。 | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (必須) |
ManagedRulesDefinition
名前 | 説明 | 値 |
---|---|---|
除外 | ポリシーに適用される除外。 | OwaspCrsExclusionEntry[] |
managedRuleSets | ポリシーに関連付けられている管理ルール セット。 | ManagedRuleSet[] (必須) |
OwaspCrsExclusionEntry
名前 | 説明 | 値 |
---|---|---|
exclusionManagedRuleSets | 除外に関連付けられている管理ルール セット。 | ExclusionManagedRuleSet[] |
matchVariable | 除外する変数。 | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (必須) |
セレクター | matchVariable がコレクションの場合、この除外が適用されるコレクション内の要素を指定するために演算子を使用します。 | string (必須) |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この除外が適用されるコレクション内の要素を指定します。 | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (必須) |
ExclusionManagedRuleSet
名前 | 説明 | 値 |
---|---|---|
ruleGroups | ルール セットに適用するルール グループを定義します。 | ExclusionManagedRuleGroup[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
ExclusionManagedRuleGroup
名前 | 説明 | 値 |
---|---|---|
ruleGroupName | 除外するマネージド ルール グループ。 | string (必須) |
rules | 除外されるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが除外されます。 | ExclusionManagedRule[] |
ExclusionManagedRule
名前 | 説明 | 値 |
---|---|---|
ruleId | マネージド ルールの識別子。 | string (必須) |
ManagedRuleSet
名前 | 説明 | 値 |
---|---|---|
ruleGroupOverrides | ルール セットに適用するルール グループのオーバーライドを定義します。 | ManagedRuleGroupOverride[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
ManagedRuleGroupOverride
名前 | 説明 | 値 |
---|---|---|
ruleGroupName | オーバーライドするマネージド ルール グループ。 | string (必須) |
rules | 無効になるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが無効になります。 | ManagedRuleOverride[] |
ManagedRuleOverride
名前 | 説明 | 値 |
---|---|---|
action | ルールが一致したときに適用されるオーバーライド アクションについて説明します。 | 'Allow' 'AnomalyScoring' 'ブロック' 'Log' |
ruleId | マネージド ルールの識別子。 | string (必須) |
state | マネージド ルールの状態。 指定しない場合、既定値は [無効] になります。 | 'Disabled' 'Enabled' |
PolicySettings
名前 | 説明 | 値 |
---|---|---|
customBlockResponseBody | アクションの種類がブロックの場合、顧客は応答本文をオーバーライドできます。 本文は base64 エンコードで指定する必要があります。 | string 制約: 最大長 = 32768 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 |
logScrubbing | 機密性の高いログ フィールドをスクラブするには | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | WAF の要求本文の最大サイズ (Kb 単位)。 | INT 制約: 最小値 = 8 |
mode | ポリシーのモード。 | 'Detection' '防止' |
requestBodyCheck | WAF による要求本文のチェックを許可するかどうか。 | [bool] |
requestBodyEnforcement | WAF で要求本文の制限を適用できるかどうかを示します。 | [bool] |
requestBodyInspectLimitInKB | WAF の要求本文検査の最大検査制限 (KB 単位)。 | INT |
state | ポリシーの状態。 | 'Disabled' 'Enabled' |
PolicySettingsLogScrubbing
名前 | 説明 | 値 |
---|---|---|
scrubbingRules | スクラブのためにログに適用されるルール。 | WebApplicationFirewallScrubbingRules[] |
state | ログ スクラブ構成の状態。既定値は [有効] です。 | 'Disabled' 'Enabled' |
WebApplicationFirewallScrubbingRules
名前 | 説明 | 値 |
---|---|---|
matchVariable | ログからスクラブされる変数。 | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (必須) |
セレクター | matchVariable がコレクションの場合、この規則が適用されるコレクション内の要素を指定するために演算子を使用します。 | string |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この規則が適用されるコレクション内の要素を指定します。 | 'Equals' 'EqualsAny' (必須) |
state | ログ スクラブ ルールの状態を定義します。 既定値は [有効] です。 | 'Disabled' 'Enabled' |
クイック スタート テンプレート
次のクイックスタート テンプレートでは、このリソースの種類をデプロイします。
Template | 説明 |
---|---|
Azure Application Gateway で Azure WAF v2 をCreateする |
このテンプレートは、バックエンド プールに 2 つのWindows Server 2016 サーバーを含む Azure Web Application Firewall v2 をAzure Application Gatewayに作成します |
NAT ゲートウェイとApplication Gatewayを備えた AKS クラスター |
このサンプルでは、送信接続用の NAT ゲートウェイと受信接続用のApplication Gatewayを使用して AKS クラスターをデプロイする方法を示します。 |
Front Door Standard/Premium とApplication Gatewayオリジン |
このテンプレートは、Front Door Standard/Premium とApplication Gateway インスタンスを作成し、NSG と WAF ポリシーを使用して、トラフィックが Front Door の配信元を通過したことを検証します。 |
Container InstancesとApplication Gateway付きフロントドア |
このテンプレートでは、コンテナー グループとApplication Gatewayを使用して Front Door Standard/Premium を作成します。 |
Application Gateway イングレス コントローラーを使用した AKS クラスター |
このサンプルでは、Application Gateway、Application Gatewayイングレス コントローラー、Azure Container Registry、Log Analytics、Key Vaultを使用して AKS クラスターをデプロイする方法を示します。 |
WAF とファイアウォール ポリシーを使用したApplication Gateway |
このテンプレートは、ファイアウォール ポリシーと共に構成された WAF を使用してApplication Gatewayを作成します |
Terraform (AzAPI プロバイダー) リソース定義
ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。
- リソース グループ
各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。
リソース形式
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の Terraform をテンプレートに追加します。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-11-01"
name = "string"
location = "string"
parent_id = "string"
tags = {
tagName1 = "tagValue1"
tagName2 = "tagValue2"
}
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 = {
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"
state = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
}
policySettings = {
customBlockResponseBody = "string"
customBlockResponseStatusCode = int
fileUploadEnforcement = bool
fileUploadLimitInMb = 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"
}
}
})
}
プロパティ値
ApplicationGatewayWebApplicationFirewallPolicies
名前 | 説明 | 値 |
---|---|---|
type | リソースの種類 | "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-11-01" |
name | リソース名 | string (必須) |
location | リソースの場所。 | string |
parent_id | リソース グループにデプロイするには、そのリソース グループの ID を使用します。 | string (必須) |
tags | リソース タグ。 | タグの名前と値のディクショナリ。 |
properties | Web アプリケーション ファイアウォール ポリシーのプロパティ。 | WebApplicationFirewallPolicyPropertiesFormat |
WebApplicationFirewallPolicyPropertiesFormat
名前 | 説明 | 値 |
---|---|---|
customRules | ポリシー内のカスタム 規則。 | WebApplicationFirewallCustomRule[] |
managedRules | managedRules 構造体について説明します。 | ManagedRulesDefinition (必須) |
policySettings | ポリシーの PolicySettings。 | PolicySettings |
WebApplicationFirewallCustomRule
名前 | 説明 | 値 |
---|---|---|
action | アクションの種類。 | "許可" "ブロック" "ログ" (必須) |
groupByUserSession | 句別のユーザー セッション識別子グループの一覧。 | GroupByUserSession[] |
matchConditions | 一致条件の一覧。 | MatchCondition[] (必須) |
name | ポリシー内で一意であるリソースの名前。 この名前は、リソースへのアクセスに使用できます。 | string 制約: 最大長 = 128 |
priority | ルールの優先度。 値が小さいルールは、値が大きいルールの前に評価されます。 | int (必須) |
rateLimitDuration | レート制限ポリシーが適用される期間。 ruleType が RateLimitRule の場合にのみ適用されます。 | "FiveMins" "OneMin" |
rateLimitThreshold | ruleType が RateLimitRule の場合に適用するレート制限しきい値。 1 以上である必要があります | INT |
ruleType | ルールの種類。 | "無効" "MatchRule" "RateLimitRule" (必須) |
state | カスタム ルールが有効または無効の状態であるかどうかを説明します。 指定しない場合、既定値は [有効] になります。 | "無効" "有効" |
GroupByUserSession
名前 | 説明 | 値 |
---|---|---|
groupByVariables | group by 句変数の一覧。 | GroupByVariable[] (必須) |
GroupByVariable
名前 | 説明 | 値 |
---|---|---|
variableName | ユーザー セッション句変数。 | "ClientAddr" "GeoLocation" "None" (必須) |
MatchCondition
名前 | 説明 | 値 |
---|---|---|
matchValues | 一致する値。 | string[] (必須) |
matchVariables | 一致変数の一覧。 | MatchVariable[] (必須) |
negationConditon | これが否定条件かどうか。 | [bool] |
operator | 照合する演算子。 | "Any" "BeginsWith" "Contains" "EndsWith" "等しい" "GeoMatch" "GreaterThan" "GreaterThanOrEqual" "IPMatch" "LessThan" "LessThanOrEqual" "Regex" (必須) |
変換 | 変換の一覧。 | 次のいずれかを含む文字列配列: "HtmlEntityDecode" "小文字" "RemoveNulls" "Trim" "大文字" "UrlDecode" "UrlEncode" |
MatchVariable
名前 | 説明 | 値 |
---|---|---|
セレクター | match 変数のセレクター。 | string |
variableName | 一致する変数。 | "PostArgs" "QueryString" "RemoteAddr" "RequestBody" "RequestCookies" "RequestHeaders" "RequestMethod" "RequestUri" (必須) |
ManagedRulesDefinition
名前 | 説明 | 値 |
---|---|---|
除外 | ポリシーに適用される除外。 | OwaspCrsExclusionEntry[] |
managedRuleSets | ポリシーに関連付けられている管理ルール セット。 | ManagedRuleSet[] (必須) |
OwaspCrsExclusionEntry
名前 | 説明 | 値 |
---|---|---|
exclusionManagedRuleSets | 除外に関連付けられている管理ルール セット。 | ExclusionManagedRuleSet[] |
matchVariable | 除外する変数。 | "RequestArgKeys" "RequestArgNames" "RequestArgValues" "RequestCookieKeys" "RequestCookieNames" "RequestCookieValues" "RequestHeaderKeys" "RequestHeaderNames" "RequestHeaderValues" (必須) |
セレクター | matchVariable がコレクションの場合、この除外が適用されるコレクション内のどの要素を指定するために演算子を使用します。 | string (必須) |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この除外が適用されるコレクション内の要素を指定します。 | "Contains" "EndsWith" "Equals" "EqualsAny" "StartsWith" (必須) |
ExclusionManagedRuleSet
名前 | 説明 | 値 |
---|---|---|
ruleGroups | ルール セットに適用するルール グループを定義します。 | ExclusionManagedRuleGroup[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
ExclusionManagedRuleGroup
名前 | 説明 | 値 |
---|---|---|
ruleGroupName | 除外する管理ルール グループ。 | string (必須) |
rules | 除外されるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが除外されます。 | ExclusionManagedRule[] |
ExclusionManagedRule
名前 | 説明 | 値 |
---|---|---|
ruleId | マネージド ルールの識別子。 | string (必須) |
ManagedRuleSet
名前 | 説明 | 値 |
---|---|---|
ruleGroupOverrides | ルール セットに適用するルール グループのオーバーライドを定義します。 | ManagedRuleGroupOverride[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
ManagedRuleGroupOverride
名前 | 説明 | 値 |
---|---|---|
ruleGroupName | オーバーライドするマネージド ルール グループ。 | string (必須) |
rules | 無効になるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが無効になります。 | ManagedRuleOverride[] |
ManagedRuleOverride
名前 | 説明 | 値 |
---|---|---|
action | ルールが一致したときに適用されるオーバーライド アクションについて説明します。 | "許可" "AnomalyScoring" "ブロック" "ログ" |
ruleId | マネージド ルールの識別子。 | string (必須) |
state | マネージド ルールの状態。 指定しない場合、既定値は [無効] になります。 | "無効" "有効" |
PolicySettings
名前 | 説明 | 値 |
---|---|---|
customBlockResponseBody | アクションの種類がブロックの場合、顧客は応答本文をオーバーライドできます。 本文は base64 エンコードで指定する必要があります。 | string 制約: 最大長 = 32768 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 |
logScrubbing | 機密性の高いログ フィールドをスクラブするには | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | WAF の要求本文の最大サイズ (Kb 単位)。 | INT 制約: 最小値 = 8 |
mode | ポリシーのモード。 | "検出" "防止" |
requestBodyCheck | WAF による要求本文のチェックを許可するかどうか。 | [bool] |
requestBodyEnforcement | WAF で要求本文の制限を適用できるかどうかを示します。 | [bool] |
requestBodyInspectLimitInKB | WAF の要求本文検査の最大検査制限 (KB 単位)。 | INT |
state | ポリシーの状態。 | "無効" "有効" |
PolicySettingsLogScrubbing
名前 | 説明 | 値 |
---|---|---|
scrubbingRules | スクラブのためにログに適用されるルール。 | WebApplicationFirewallScrubbingRules[] |
state | ログ スクラブ構成の状態。既定値は [有効] です。 | "無効" "有効" |
WebApplicationFirewallScrubbingRules
名前 | 説明 | 値 |
---|---|---|
matchVariable | ログからスクラブされる変数。 | "RequestArgNames" "RequestCookieNames" "RequestHeaderNames" "RequestIPAddress" "RequestJSONArgNames" "RequestPostArgNames" (必須) |
セレクター | matchVariable がコレクションの場合、この規則が適用されるコレクション内の要素を指定するために演算子を使用します。 | string |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この規則が適用されるコレクション内の要素を指定します。 | "Equals" "EqualsAny" (必須) |
state | ログ スクラブ ルールの状態を定義します。 既定値は [有効] です。 | "無効" "有効" |