Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies

Bicep リソース定義

ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。

各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。

リソース形式

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の Bicep をテンプレートに追加します。

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-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 説明
name リソース名 string (必須)
location リソースの場所。 string
tags リソース タグ。 タグの名前と値のディクショナリ。 「テンプレート内のタグ」を参照してください
properties Web アプリケーション ファイアウォール ポリシーのプロパティ。 WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

Name 説明
customRules ポリシー内のカスタム 規則。 WebApplicationFirewallCustomRule[]
managedRules managedRules 構造体について説明します。 ManagedRulesDefinition (必須)
policySettings ポリシーの PolicySettings。 PolicySettings

WebApplicationFirewallCustomRule

Name 説明
action アクションの種類。 'Allow'
'ブロック'
'Log' (必須)
groupByUserSession 句別のユーザー セッション識別子グループの一覧。 GroupByUserSession[]
matchConditions 一致条件の一覧。 MatchCondition[] (必須)
name ポリシー内で一意のリソースの名前。 この名前は、リソースへのアクセスに使用できます。 string
priority ルールの優先度。 値が小さいルールは、値が大きいルールの前に評価されます。 int (必須)
rateLimitDuration レート制限ポリシーが適用される期間。 ruleType が RateLimitRule の場合にのみ適用されます。 'FiveMins'
'OneMin'
rateLimitThreshold ruleType が RateLimitRule の場合に適用するレート制限しきい値。 1 以上である必要があります INT
ruleType ルールの種類。 'Invalid'
'MatchRule'
'RateLimitRule' (必須)
state カスタム ルールが有効または無効の状態であるかどうかを示します。 指定しない場合、既定値は [有効] になります。 'Disabled'
'Enabled'

GroupByUserSession

Name 説明
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
customBlockResponseStatusCode アクションの種類がブロックの場合、顧客は応答状態コードをオーバーライドできます。 INT
fileUploadEnforcement WAF でファイルのアップロード制限を適用できるかどうかを指定します。 [bool]
fileUploadLimitInMb WAF の最大ファイル アップロード サイズ (MB)。 INT
logScrubbing 機密ログ フィールドをスクラブするには PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF の最大要求本文サイズ (Kb 単位)。 INT
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'

クイック スタート テンプレート

次のクイックスタート テンプレートでは、このリソースの種類をデプロイします。

テンプレート 説明
Azure Application Gatewayで Azure WAF v2 を作成する

Azure へのデプロイ
このテンプレートは、バックエンド プールに 2 つのWindows Server 2016 サーバーを含む Azure Web Application Firewall v2 をAzure Application Gatewayに作成します
NAT ゲートウェイとApplication Gatewayを備えた AKS クラスター

Azure へのデプロイ
このサンプルでは、送信接続用の NAT ゲートウェイと受信接続用のApplication Gatewayを使用して AKS クラスターをデプロイする方法を示します。
Front Door Standard/Premium とApplication Gatewayオリジン

Azure へのデプロイ
このテンプレートは、Front Door Standard/Premium とApplication Gateway インスタンスを作成し、NSG と WAF ポリシーを使用して、トラフィックが Front Door の配信元を通過したことを検証します。
Container InstancesとApplication Gateway付きフロントドア

Azure へのデプロイ
このテンプレートでは、コンテナー グループとApplication Gatewayを使用して Front Door Standard/Premium を作成します。
Application Gateway イングレス コントローラーを使用した AKS クラスター

Azure へのデプロイ
このサンプルでは、Application Gateway、Application Gatewayイングレス コントローラー、Azure Container Registry、Log Analytics、Key Vaultを使用して AKS クラスターをデプロイする方法を示します。
WAF とファイアウォール ポリシーを使用したApplication Gateway

Azure へのデプロイ
このテンプレートは、ファイアウォール ポリシーと共に構成された WAF を使用してApplication Gatewayを作成します

ARM テンプレート リソース定義

ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。

各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。

リソース形式

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の JSON をテンプレートに追加します。

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2023-04-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 のバージョン '2023-04-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
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
customBlockResponseStatusCode アクションの種類がブロックの場合、顧客は応答状態コードをオーバーライドできます。 INT
fileUploadEnforcement WAF でファイルのアップロード制限を適用できるかどうかを指定します。 [bool]
fileUploadLimitInMb WAF の最大ファイル アップロード サイズ (MB)。 INT
logScrubbing 機密ログ フィールドをスクラブするには PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF の最大要求本文サイズ (Kb 単位)。 INT
mode ポリシーのモード。 'Detection'
'Prevention'
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'

クイック スタート テンプレート

次のクイックスタート テンプレートでは、このリソースの種類をデプロイします。

テンプレート 説明
Azure Application Gatewayで Azure WAF v2 を作成する

Azure へのデプロイ
このテンプレートでは、バックエンド プールに 2 つのWindows Server 2016 サーバーを含む Azure Web Application Firewall v2 をAzure Application Gatewayに作成します
NAT ゲートウェイとApplication Gatewayを備えた AKS クラスター

Azure へのデプロイ
このサンプルでは、送信接続用の NAT ゲートウェイと受信接続用のApplication Gatewayを使用して AKS クラスターをデプロイする方法を示します。
Front Door Standard/Premium とApplication Gatewayオリジン

Azure へのデプロイ
このテンプレートは、Front Door Standard/Premium とApplication Gateway インスタンスを作成し、NSG と WAF ポリシーを使用して、トラフィックが Front Door の配信元を通過したことを検証します。
Container InstancesとApplication Gateway付きのフロント ドア

Azure へのデプロイ
このテンプレートでは、コンテナー グループとApplication Gatewayを使用して Front Door Standard/Premium を作成します。
Application Gateway イングレス コントローラーを使用する AKS クラスター

Azure へのデプロイ
このサンプルでは、Application Gateway、Application Gateway イングレス コントローラー、Azure Container Registry、Log Analytics、Key Vaultを使用して AKS クラスターをデプロイする方法を示します
WAF とファイアウォール ポリシーを使用したApplication Gateway

Azure へのデプロイ
このテンプレートは、ファイアウォール ポリシーと共に WAF が構成されたApplication Gatewayを作成します

Terraform (AzAPI プロバイダー) リソース定義

ApplicationGatewayWebApplicationFirewallPolicies リソースの種類は、次をターゲットとする操作と共にデプロイできます。

  • リソース グループ

各 API バージョンの変更されたプロパティの一覧については、「 変更ログ」を参照してください。

リソース形式

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies リソースを作成するには、次の Terraform をテンプレートに追加します。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-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@2023-04-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
priority ルールの優先度。 値が小さいルールは、値が大きいルールの前に評価されます。 int (必須)
rateLimitDuration レート制限ポリシーが適用される期間。 ruleType が RateLimitRule の場合にのみ適用されます。 "FiveMins"
"OneMin"
rateLimitThreshold ruleType が RateLimitRule の場合に適用するレート制限しきい値。 1 以上である必要があります INT
ruleType ルールの種類。 "無効"
"MatchRule"
"RateLimitRule" (必須)
state カスタム ルールが有効または無効の状態であるかどうかを示します。 指定しない場合、既定値は [有効] になります。 "無効"
"有効"

GroupByUserSession

名前 説明
groupByVariables グループ化句変数の一覧。 GroupByVariable[] (必須)

GroupByVariable

名前 説明
variableName User Session 句変数。 "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
customBlockResponseStatusCode アクションの種類がブロックの場合、顧客は応答状態コードをオーバーライドできます。 INT
fileUploadEnforcement WAF でファイルのアップロード制限を適用できるかどうかを指定します。 [bool]
fileUploadLimitInMb WAF の最大ファイル アップロード サイズ (MB)。 INT
logScrubbing 機密性の高いログ フィールドをスクラブするには PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF の要求本文の最大サイズ (Kb 単位)。 INT
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 ログ スクラブ ルールの状態を定義します。 既定値は [有効] です。 "無効"
"有効"