Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-11-01
- 最新の を
する - 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@2023-11-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: {
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
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'
}
}
プロパティ値
ExclusionManagedRule
名前 | 形容 | 価値 |
---|---|---|
ruleId | マネージド ルールの識別子。 | string (必須) |
ExclusionManagedRuleGroup
名前 | 形容 | 価値 |
---|---|---|
ruleGroupName | 除外対象のマネージド ルール グループ。 | string (必須) |
準則 | 除外されるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが除外されます。 | ExclusionManagedRule[] |
ExclusionManagedRuleSet
名前 | 形容 | 価値 |
---|---|---|
ruleGroups | ルール セットに適用するルール グループを定義します。 | ExclusionManagedRuleGroup[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
GroupByUserSession
名前 | 形容 | 価値 |
---|---|---|
groupByVariables | group by 句変数の一覧。 | GroupByVariable[] (必須) |
GroupByVariable
名前 | 形容 | 価値 |
---|---|---|
variableName | ユーザー セッション句変数。 | 'ClientAddr' 'GeoLocation' 'None' (必須) |
ManagedRuleGroupOverride
名前 | 形容 | 価値 |
---|---|---|
ruleGroupName | オーバーライドするマネージド ルール グループ。 | string (必須) |
準則 | 無効になるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが無効になります。 | ManagedRuleOverride[] |
ManagedRuleOverride
名前 | 形容 | 価値 |
---|---|---|
アクション | ルールが一致したときに適用されるオーバーライド アクションについて説明します。 | 'Allow' 'AnomalyScoring' 'Block' 'JSChallenge' 'Log' |
ruleId | マネージド ルールの識別子。 | string (必須) |
状態 | マネージド ルールの状態。 指定しない場合、既定値は [無効] になります。 | 'Disabled' 'Enabled' |
ManagedRulesDefinition
名前 | 形容 | 価値 |
---|---|---|
除外 | ポリシーに適用される除外。 | OwaspCrsExclusionEntry[] |
managedRuleSets | ポリシーに関連付けられているマネージド ルール セット。 | ManagedRuleSet[] (必須) |
ManagedRuleSet
名前 | 形容 | 価値 |
---|---|---|
ruleGroupOverrides | ルール セットに適用するルール グループのオーバーライドを定義します。 | ManagedRuleGroupOverride[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
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 | 除外に関連付けられているマネージド ルール セット。 | ExclusionManagedRuleSet[] |
matchVariable | 除外する変数。 | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (必須) |
セレクタ | matchVariable がコレクションの場合、この除外が適用されるコレクション内の要素を指定するために使用される演算子。 | string (必須) |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この除外が適用されるコレクション内の要素を指定します。 | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (必須) |
PolicySettings
名前 | 形容 | 価値 |
---|---|---|
customBlockResponseBody | アクションの種類がブロックの場合、顧客は応答本文をオーバーライドできます。 本文は base64 エンコードで指定する必要があります。 | 糸 制約: 最大長 = パターン = ^(?:[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[] |
状態 | ログ スクラブ構成の状態。既定値は [有効] です。 | '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' (必須) |
状態 | カスタム ルールが有効または無効の状態になっているかどうかを説明します。 指定しない場合、既定値は [有効] になります。 | 'Disabled' 'Enabled' |
WebApplicationFirewallPolicyPropertiesFormat
名前 | 形容 | 価値 |
---|---|---|
customRules | ポリシー内のカスタム 規則。 | WebApplicationFirewallCustomRule[] |
managedRules | managedRules 構造体について説明します。 | ManagedRulesDefinition の |
policySettings | ポリシーの PolicySettings。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名前 | 形容 | 価値 |
---|---|---|
matchVariable | ログからスクラブされる変数。 | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (必須) |
セレクタ | matchVariable がコレクションの場合、この規則が適用されるコレクション内の要素を指定するために使用される演算子。 | 糸 |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この規則が適用されるコレクション内の要素を指定します。 | 'Equals' 'EqualsAny' (必須) |
状態 | ログ スクラブ ルールの状態を定義します。 既定値は [有効] です。 | 'Disabled' 'Enabled' |
クイック スタートのサンプル
次のクイック スタート サンプルでは、このリソースの種類をデプロイします。
Bicep ファイル | 形容 |
---|---|
NAT ゲートウェイと Application Gateway を使用して AKS クラスターを |
このサンプルでは、送信接続用の NAT ゲートウェイと受信接続用の Application Gateway を使用して AKS クラスターをデプロイする方法を示します。 |
Application Gateway イングレス コントローラー を使用して AKS クラスターを |
このサンプルでは、Application Gateway、Application Gateway イングレス コントローラー、Azure Container Registry、Log Analytics、Key Vault を使用して AKS クラスターをデプロイする方法を示します |
WAF とファイアウォール ポリシー を使用した Application Gateway の |
このテンプレートは、ファイアウォール ポリシーと共に WAF が構成された Application Gateway を作成します |
Azure Application Gateway で Azure WAF v2 を作成する | このテンプレートでは、バックエンド プールに 2 つの Windows Server 2016 サーバーを含む Azure Application Gateway 上に Azure Web Application Firewall v2 を作成します |
Front Door Standard/Premium と Application Gateway の配信元 | このテンプレートは、Front Door Standard/Premium インスタンスと Application Gateway インスタンスを作成し、NSG と WAF ポリシーを使用して、トラフィックが Front Door の配信元を通過したことを検証します。 |
コンテナー インスタンスと Application Gateway を使用した Front Door の |
このテンプレートは、コンテナー グループと Application Gateway を使用して Front Door Standard/Premium を作成します。 |
ARM テンプレート リソース定義
ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。
- リソース グループの - リソース グループのデプロイ コマンド 参照
各 API バージョンで変更されたプロパティの一覧については、変更ログの
リソースの形式
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の JSON をテンプレートに追加します。
{
"type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
"apiVersion": "2023-11-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": {
"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",
"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"
}
}
プロパティ値
ExclusionManagedRule
名前 | 形容 | 価値 |
---|---|---|
ruleId | マネージド ルールの識別子。 | string (必須) |
ExclusionManagedRuleGroup
名前 | 形容 | 価値 |
---|---|---|
ruleGroupName | 除外対象のマネージド ルール グループ。 | string (必須) |
準則 | 除外されるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが除外されます。 | ExclusionManagedRule[] |
ExclusionManagedRuleSet
名前 | 形容 | 価値 |
---|---|---|
ruleGroups | ルール セットに適用するルール グループを定義します。 | ExclusionManagedRuleGroup[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
GroupByUserSession
名前 | 形容 | 価値 |
---|---|---|
groupByVariables | group by 句変数の一覧。 | GroupByVariable[] (必須) |
GroupByVariable
名前 | 形容 | 価値 |
---|---|---|
variableName | ユーザー セッション句変数。 | 'ClientAddr' 'GeoLocation' 'None' (必須) |
ManagedRuleGroupOverride
名前 | 形容 | 価値 |
---|---|---|
ruleGroupName | オーバーライドするマネージド ルール グループ。 | string (必須) |
準則 | 無効になるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが無効になります。 | ManagedRuleOverride[] |
ManagedRuleOverride
名前 | 形容 | 価値 |
---|---|---|
アクション | ルールが一致したときに適用されるオーバーライド アクションについて説明します。 | 'Allow' 'AnomalyScoring' 'Block' 'JSChallenge' 'Log' |
ruleId | マネージド ルールの識別子。 | string (必須) |
状態 | マネージド ルールの状態。 指定しない場合、既定値は [無効] になります。 | 'Disabled' 'Enabled' |
ManagedRulesDefinition
名前 | 形容 | 価値 |
---|---|---|
除外 | ポリシーに適用される除外。 | OwaspCrsExclusionEntry[] |
managedRuleSets | ポリシーに関連付けられているマネージド ルール セット。 | ManagedRuleSet[] (必須) |
ManagedRuleSet
名前 | 形容 | 価値 |
---|---|---|
ruleGroupOverrides | ルール セットに適用するルール グループのオーバーライドを定義します。 | ManagedRuleGroupOverride[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
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 のバージョン | '2023-11-01' |
場所 | リソースの場所。 | 糸 |
名前 | リソース名 | 糸 制約: 最大長 = (必須) |
プロパティ | Web アプリケーション ファイアウォール ポリシーのプロパティ。 | WebApplicationFirewallPolicyPropertiesFormat |
タグ | リソース タグ | タグ名と値のディクショナリ。 テンプレート の |
種類 | リソースの種類 | 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies' |
OwaspCrsExclusionEntry
名前 | 形容 | 価値 |
---|---|---|
exclusionManagedRuleSets | 除外に関連付けられているマネージド ルール セット。 | ExclusionManagedRuleSet[] |
matchVariable | 除外する変数。 | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (必須) |
セレクタ | matchVariable がコレクションの場合、この除外が適用されるコレクション内の要素を指定するために使用される演算子。 | string (必須) |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この除外が適用されるコレクション内の要素を指定します。 | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (必須) |
PolicySettings
名前 | 形容 | 価値 |
---|---|---|
customBlockResponseBody | アクションの種類がブロックの場合、顧客は応答本文をオーバーライドできます。 本文は base64 エンコードで指定する必要があります。 | 糸 制約: 最大長 = パターン = ^(?:[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[] |
状態 | ログ スクラブ構成の状態。既定値は [有効] です。 | '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' (必須) |
状態 | カスタム ルールが有効または無効の状態になっているかどうかを説明します。 指定しない場合、既定値は [有効] になります。 | 'Disabled' 'Enabled' |
WebApplicationFirewallPolicyPropertiesFormat
名前 | 形容 | 価値 |
---|---|---|
customRules | ポリシー内のカスタム 規則。 | WebApplicationFirewallCustomRule[] |
managedRules | managedRules 構造体について説明します。 | ManagedRulesDefinition の |
policySettings | ポリシーの PolicySettings。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名前 | 形容 | 価値 |
---|---|---|
matchVariable | ログからスクラブされる変数。 | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (必須) |
セレクタ | matchVariable がコレクションの場合、この規則が適用されるコレクション内の要素を指定するために使用される演算子。 | 糸 |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この規則が適用されるコレクション内の要素を指定します。 | 'Equals' 'EqualsAny' (必須) |
状態 | ログ スクラブ ルールの状態を定義します。 既定値は [有効] です。 | 'Disabled' 'Enabled' |
クイック スタート テンプレート
次のクイック スタート テンプレートでは、このリソースの種類をデプロイします。
テンプレート | 形容 |
---|---|
NAT ゲートウェイと Application Gateway を使用して AKS クラスターを Azure |
このサンプルでは、送信接続用の NAT ゲートウェイと受信接続用の Application Gateway を使用して AKS クラスターをデプロイする方法を示します。 |
Application Gateway イングレス コントローラー を使用して AKS クラスターを Azure |
このサンプルでは、Application Gateway、Application Gateway イングレス コントローラー、Azure Container Registry、Log Analytics、Key Vault を使用して AKS クラスターをデプロイする方法を示します |
WAF とファイアウォール ポリシー を使用した Application Gateway の Azure |
このテンプレートは、ファイアウォール ポリシーと共に WAF が構成された Application Gateway を作成します |
Azure Application Gateway で Azure WAF v2 を作成する Azure にデプロイする |
このテンプレートでは、バックエンド プールに 2 つの Windows Server 2016 サーバーを含む Azure Application Gateway 上に Azure Web Application Firewall v2 を作成します |
Front Door Standard/Premium と Application Gateway の配信元 Azure にデプロイする |
このテンプレートは、Front Door Standard/Premium インスタンスと Application Gateway インスタンスを作成し、NSG と WAF ポリシーを使用して、トラフィックが Front Door の配信元を通過したことを検証します。 |
コンテナー インスタンスと Application Gateway を使用した Front Door の Azure |
このテンプレートは、コンテナー グループと Application Gateway を使用して Front Door Standard/Premium を作成します。 |
Terraform (AzAPI プロバイダー) リソース定義
ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。
- リソース グループの
各 API バージョンで変更されたプロパティの一覧については、変更ログの
リソースの形式
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の Terraform をテンプレートに追加します。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-11-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 = {
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
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"
}
}
})
}
プロパティ値
ExclusionManagedRule
名前 | 形容 | 価値 |
---|---|---|
ruleId | マネージド ルールの識別子。 | string (必須) |
ExclusionManagedRuleGroup
名前 | 形容 | 価値 |
---|---|---|
ruleGroupName | 除外対象のマネージド ルール グループ。 | string (必須) |
準則 | 除外されるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが除外されます。 | ExclusionManagedRule[] |
ExclusionManagedRuleSet
名前 | 形容 | 価値 |
---|---|---|
ruleGroups | ルール セットに適用するルール グループを定義します。 | ExclusionManagedRuleGroup[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
GroupByUserSession
名前 | 形容 | 価値 |
---|---|---|
groupByVariables | group by 句変数の一覧。 | GroupByVariable[] (必須) |
GroupByVariable
名前 | 形容 | 価値 |
---|---|---|
variableName | ユーザー セッション句変数。 | 'ClientAddr' 'GeoLocation' 'None' (必須) |
ManagedRuleGroupOverride
名前 | 形容 | 価値 |
---|---|---|
ruleGroupName | オーバーライドするマネージド ルール グループ。 | string (必須) |
準則 | 無効になるルールの一覧。 何も指定しない場合、グループ内のすべてのルールが無効になります。 | ManagedRuleOverride[] |
ManagedRuleOverride
名前 | 形容 | 価値 |
---|---|---|
アクション | ルールが一致したときに適用されるオーバーライド アクションについて説明します。 | 'Allow' 'AnomalyScoring' 'Block' 'JSChallenge' 'Log' |
ruleId | マネージド ルールの識別子。 | string (必須) |
状態 | マネージド ルールの状態。 指定しない場合、既定値は [無効] になります。 | 'Disabled' 'Enabled' |
ManagedRulesDefinition
名前 | 形容 | 価値 |
---|---|---|
除外 | ポリシーに適用される除外。 | OwaspCrsExclusionEntry[] |
managedRuleSets | ポリシーに関連付けられているマネージド ルール セット。 | ManagedRuleSet[] (必須) |
ManagedRuleSet
名前 | 形容 | 価値 |
---|---|---|
ruleGroupOverrides | ルール セットに適用するルール グループのオーバーライドを定義します。 | ManagedRuleGroupOverride[] |
ruleSetType | 使用するルール セットの種類を定義します。 | string (必須) |
ruleSetVersion | 使用するルール セットのバージョンを定義します。 | string (必須) |
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@2023-11-01" |
OwaspCrsExclusionEntry
名前 | 形容 | 価値 |
---|---|---|
exclusionManagedRuleSets | 除外に関連付けられているマネージド ルール セット。 | ExclusionManagedRuleSet[] |
matchVariable | 除外する変数。 | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (必須) |
セレクタ | matchVariable がコレクションの場合、この除外が適用されるコレクション内の要素を指定するために使用される演算子。 | string (必須) |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この除外が適用されるコレクション内の要素を指定します。 | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (必須) |
PolicySettings
名前 | 形容 | 価値 |
---|---|---|
customBlockResponseBody | アクションの種類がブロックの場合、顧客は応答本文をオーバーライドできます。 本文は base64 エンコードで指定する必要があります。 | 糸 制約: 最大長 = パターン = ^(?:[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[] |
状態 | ログ スクラブ構成の状態。既定値は [有効] です。 | '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' (必須) |
状態 | カスタム ルールが有効または無効の状態になっているかどうかを説明します。 指定しない場合、既定値は [有効] になります。 | 'Disabled' 'Enabled' |
WebApplicationFirewallPolicyPropertiesFormat
名前 | 形容 | 価値 |
---|---|---|
customRules | ポリシー内のカスタム 規則。 | WebApplicationFirewallCustomRule[] |
managedRules | managedRules 構造体について説明します。 | ManagedRulesDefinition の |
policySettings | ポリシーの PolicySettings。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名前 | 形容 | 価値 |
---|---|---|
matchVariable | ログからスクラブされる変数。 | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (必須) |
セレクタ | matchVariable がコレクションの場合、この規則が適用されるコレクション内の要素を指定するために使用される演算子。 | 糸 |
selectorMatchOperator | matchVariable がコレクションの場合は、セレクターを操作して、この規則が適用されるコレクション内の要素を指定します。 | 'Equals' 'EqualsAny' (必須) |
状態 | ログ スクラブ ルールの状態を定義します。 既定値は [有効] です。 | 'Disabled' 'Enabled' |