Partager via


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies

Définition de ressource Bicep

Le type de ressource ApplicationGatewayWebApplicationFirewallPolicies peut être déployé avec des opérations qui ciblent :

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer une ressource Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, ajoutez le bicep suivant à votre modèle.

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-03-01' = {
  scope: resourceSymbolicName or scope
  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'
  }
}

Valeurs de propriété

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nom Descriptif Valeur
emplacement Emplacement des ressources. corde
nom Nom de la ressource corde

Contraintes:
Longueur maximale = 128 (obligatoire)
Propriétés Propriétés de la stratégie de pare-feu d’applications web. WebApplicationFirewallPolicyPropertiesFormat
portée Utilisez-la lors de la création d’une ressource dans une étendue différente de l’étendue de déploiement. Définissez cette propriété sur le nom symbolique d’une ressource pour appliquer la ressource d’extension .
étiquettes Balises de ressource Dictionnaire de noms et de valeurs d’étiquettes. Consultez les balises dans les modèles

ExceptionEntry

Nom Descriptif Valeur
exceptionManagedRuleSets Ensembles de règles managés associés à l’exception. ExclusionManagedRuleSet[]
matchVariable Variable sur laquelle nous évaluons la condition d’exception 'RemoteAddr'
'RequestHeader'
'RequestURI' (obligatoire)
sélecteur Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela identifie la clé. corde
selectorMatchOperator Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela fonctionne sur le sélecteur 'Contient'
'Se termine par'
« Égaux »
'Commence par'
valueMatchOperator Fonctionne sur les valeurs autorisées pour matchVariable 'Contient'
'Se termine par'
« Égaux »
'IPMatch'
'StartsWith' (obligatoire)
Valeurs Valeurs autorisées pour matchVariable chaîne de caractères[]

ExclusionManagedRule

Nom Descriptif Valeur
ruleId Identificateur de la règle managée. chaîne (obligatoire)

ExclusionManagedRuleGroup

Nom Descriptif Valeur
ruleGroupName Groupe de règles managées pour exclusion. chaîne (obligatoire)
règlement Liste des règles qui seront exclues. Si aucune n’est spécifiée, toutes les règles du groupe sont exclues. ExclusionManagedRule[]

ExclusionManagedRuleSet

Nom Descriptif Valeur
ruleGroups Définit les groupes de règles à appliquer au jeu de règles. ExclusionManagedRuleGroup[]
ruleSetType Définit le type d’ensemble de règles à utiliser. chaîne (obligatoire)
ruleSetVersion Définit la version du jeu de règles à utiliser. chaîne (obligatoire)

GroupByUserSession

Nom Descriptif Valeur
groupByVariables Liste des variables de clause group by. GroupByVariable [] (obligatoire)

GroupByVariable

Nom Descriptif Valeur
nom_variable Variable de clause User Session. 'ClientAddr'
'ClientAddrXFFHeader'
'Géolocalisation'
'GeoLocationXFFHeader'
'None' (obligatoire)

ManagedRuleGroupOverride

Nom Descriptif Valeur
ruleGroupName Groupe de règles managées à remplacer. chaîne (obligatoire)
règlement Liste des règles qui seront désactivées. Si aucune valeur n’est spécifiée, toutes les règles du groupe sont désactivées. ManagedRuleOverride[]

ManagedRuleOverride

Nom Descriptif Valeur
action Décrit l’action de remplacement à appliquer lorsque la règle correspond. 'Autoriser'
'AnomalieScoring'
'Bloquer'
« JSChallenge »
'Bûche'
ruleId Identificateur de la règle managée. chaîne (obligatoire)
sensibilité Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. « Élevé »
'Faible'
'Moyen'
état État de la règle managée. La valeur par défaut est Désactivée si elle n’est pas spécifiée. 'Désactivé'
'Activé'

ManagedRulesDefinition

Nom Descriptif Valeur
Exceptions Exceptions appliquées à la stratégie. exceptionEntry[]
Exclusions Exclusions appliquées à la stratégie. OwaspCrsExclusionEntry[]
managedRuleSets Ensembles de règles managés associés à la stratégie. ManagedRuleSet[] (obligatoire)

ManagedRuleSet

Nom Descriptif Valeur
ruleGroupOverrides Définit les remplacements du groupe de règles à appliquer au jeu de règles. ManagedRuleGroupOverride[]
ruleSetType Définit le type d’ensemble de règles à utiliser. chaîne (obligatoire)
ruleSetVersion Définit la version du jeu de règles à utiliser. chaîne (obligatoire)

MatchCondition

Nom Descriptif Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
négationConditon Qu’il s’agisse d’une condition de non-négation ou non. Bool
opérateur Opérateur à mettre en correspondance. 'N’importe lequel''
'Commence par'
'Contient'
'Se termine par'
'Égal'
'GeoMatch'
« Plus grand que »
« Plus grand que ou égal »
'IPMatch'
'Moins'
'InférieurÀOuÉgal'
'Regex' (obligatoire)
Transforme Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
'HtmlEntityDecode'
'Minuscules'
'RemoveNulls'
'Taille'
'Majuscules'
'UrlDecode'
'UrlEncode'

MatchVariable

Nom Descriptif Valeur
sélecteur Sélecteur de variable de correspondance. corde
nom_variable Mettre en correspondance la variable. 'PostArgs'
'QueryString'
'RemoteAddr'
'CorpsDemande
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obligatoire)

OwaspCrsExclusionEntry

Nom Descriptif Valeur
exclusionManagedRuleSets Ensembles de règles managés associés à l’exclusion. ExclusionManagedRuleSet[]
matchVariable Variable à exclure. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obligatoire)
sélecteur Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection auquel cette exclusion s’applique. chaîne (obligatoire)
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette exclusion s’applique. 'Contient'
'Se termine par'
« Égaux »
« Égal à n’importe lequel »
'StartsWith' (obligatoire)

PolicySettings

Nom Descriptif Valeur
customBlockResponseBody Si le type d’action est bloqué, le client peut remplacer le corps de la réponse. Le corps doit être spécifié dans l’encodage base64. corde

Contraintes:
Longueur maximale = 32768
Modèle = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Si le type d’action est bloqué, le client peut remplacer le code d’état de la réponse. Int

Contraintes:
Valeur minimale = 0
fileUploadEnforcement Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de chargement de fichiers. Bool
fileUploadLimitInMb Taille maximale du chargement de fichiers en Mo pour waf. Int

Contraintes:
Valeur minimale = 0
jsChallengeCookieExpirationInMins Durée d’expiration du cookie de défi javaScript du pare-feu d’applications web en minutes. Int

Contraintes:
Valeur minimale = 5
Valeur maximale = 1440
logNettoyage Pour nettoyer les champs de journal sensibles PolicySettingsLogScrubbing
maxRequestBodySizeInKb Taille maximale du corps de la demande en Ko pour WAF. Int

Contraintes:
Valeur minimale = 8
mode Mode de la stratégie. 'Détection'
'Prévention'
requestBodyCheck Indique s’il faut autoriser waf à vérifier le corps de la demande. Bool
requestBodyEnforcement Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de corps de requête. Bool
requestBodyInspectLimitInKB Limite d’inspection maximale en Ko pour l’inspection du corps de requête pour waf. Int
état État de la stratégie. 'Désactivé'
'Activé'

PolicySettingsLogScrubbing

Nom Descriptif Valeur
nettoyageRègles Règles appliquées aux journaux d’activité pour le nettoyage. WebApplicationFirewallScrubbingRules[]
état État de la configuration de nettoyage des journaux. La valeur par défaut est Activée. 'Désactivé'
'Activé'

ResourceTags

Nom Descriptif Valeur

WebApplicationFirewallCustomRule

Nom Descriptif Valeur
action Type d’actions. 'Autoriser'
'Bloquer'
« JSChallenge »
'Log' (obligatoire)
groupByUserSession Liste des clauses de groupe d’identificateurs de session utilisateur. GroupByUserSession[]
matchConditions Liste des conditions de correspondance. MatchCondition[] (obligatoire)
nom Nom de la ressource unique dans une stratégie. Ce nom peut être utilisé pour accéder à la ressource. corde

Contraintes:
Longueur maximale = 128
priorité Priorité de la règle. Les règles avec une valeur inférieure sont évaluées avant les règles avec une valeur plus élevée. int (obligatoire)
rateLimitDuration Durée pendant laquelle la stratégie limite de taux sera appliquée. S’applique uniquement lorsque ruleType est RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Seuil de limite de débit à appliquer dans le cas où ruleType est RateLimitRule. Doit être supérieur ou égal à 1 Int
type de règle Type de règle. « Invalide »
'MatchRule'
'RateLimitRule' (obligatoire)
état Décrit si la règle personnalisée est activée ou désactivée. La valeur par défaut est Activée si elle n’est pas spécifiée. 'Désactivé'
'Activé'

WebApplicationFirewallPolicyPropertiesFormat

Nom Descriptif Valeur
customRules Règles personnalisées à l’intérieur de la stratégie. WebApplicationFirewallCustomRule[]
managedRules Décrit la structure managedRules. ManagedRulesDefinition (obligatoire)
stratégieParamètres PolicySettings pour la stratégie. PolicySettings

WebApplicationPare-feuScrubbingRules

Nom Descriptif Valeur
matchVariable Variable à frotter à partir des journaux. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obligatoire)
sélecteur Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection à laquelle cette règle s’applique. corde
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auquel cette règle s’applique. « Égaux »
'EqualsAny' (obligatoire)
état Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Activée. 'Désactivé'
'Activé'

Exemples d’utilisation

Modules vérifiés Azure

Les modules vérifiés Azure suivants peuvent être utilisés pour déployer ce type de ressource.

Module Descriptif
stratégie de pare-feu d’applications web Application Gateway (WAF) Module de ressource AVM pour la stratégie de pare-feu d’applications web Application Gateway (WAF)

Exemples de démarrage rapide Azure

Les modèles de démarrage rapide Azure suivants contiennent des exemples Bicep pour le déploiement de ce type de ressource.

Fichier Bicep Descriptif
cluster AKS avec une passerelle NAT et un Application Gateway Cet exemple montre comment déployer un cluster AKS avec NAT Gateway pour les connexions sortantes et une passerelle Application Gateway pour les connexions entrantes.
cluster AKS avec le contrôleur d’entrée Application Gateway Cet exemple montre comment déployer un cluster AKS avec Application Gateway, Application Gateway Ingress Controller, Azure Container Registry, Log Analytics et Key Vault
Application Gateway pour le routage basé sur le chemin d’URL Ce modèle crée une passerelle Application Gateway et la configure pour le routage basé sur le chemin d’URL.
Application Gateway avec le pare-feu d’applications web et la stratégie de pare-feu Ce modèle crée une passerelle Application Gateway avec WAF configurée avec une stratégie de pare-feu
Créer un waf Azure v2 sur Azure Application Gateway Ce modèle crée un pare-feu d’applications web Azure v2 sur Azure Application Gateway avec deux serveurs Windows Server 2016 dans le pool principal
Front Door Standard/Premium avec l’origine d’Application Gateway Ce modèle crée une instance Front Door Standard/Premium et Application Gateway et utilise un groupe de sécurité réseau et une stratégie WAF pour vérifier que le trafic est passé par l’origine Front Door.
Front Door avec container Instances et application Gateway Ce modèle crée un Front Door Standard/Premium avec un groupe de conteneurs et Application Gateway.

Définition de ressource de modèle ARM

Le type de ressource ApplicationGatewayWebApplicationFirewallPolicies peut être déployé avec des opérations qui ciblent :

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer une ressource Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, ajoutez le code JSON suivant à votre modèle.

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2025-03-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"
  }
}

Valeurs de propriété

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nom Descriptif Valeur
apiVersion Version de l’API '2025-03-01'
emplacement Emplacement des ressources. corde
nom Nom de la ressource corde

Contraintes:
Longueur maximale = 128 (obligatoire)
Propriétés Propriétés de la stratégie de pare-feu d’applications web. WebApplicationFirewallPolicyPropertiesFormat
étiquettes Balises de ressource Dictionnaire de noms et de valeurs d’étiquettes. Consultez les balises dans les modèles
type Type de ressource « Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies »

ExceptionEntry

Nom Descriptif Valeur
exceptionManagedRuleSets Ensembles de règles managés associés à l’exception. ExclusionManagedRuleSet[]
matchVariable Variable sur laquelle nous évaluons la condition d’exception 'RemoteAddr'
'RequestHeader'
'RequestURI' (obligatoire)
sélecteur Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela identifie la clé. corde
selectorMatchOperator Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela fonctionne sur le sélecteur 'Contient'
'Se termine par'
« Égaux »
'Commence par'
valueMatchOperator Fonctionne sur les valeurs autorisées pour matchVariable 'Contient'
'Se termine par'
« Égaux »
'IPMatch'
'StartsWith' (obligatoire)
Valeurs Valeurs autorisées pour matchVariable chaîne de caractères[]

ExclusionManagedRule

Nom Descriptif Valeur
ruleId Identificateur de la règle managée. chaîne (obligatoire)

ExclusionManagedRuleGroup

Nom Descriptif Valeur
ruleGroupName Groupe de règles managées pour exclusion. chaîne (obligatoire)
règlement Liste des règles qui seront exclues. Si aucune n’est spécifiée, toutes les règles du groupe sont exclues. ExclusionManagedRule[]

ExclusionManagedRuleSet

Nom Descriptif Valeur
ruleGroups Définit les groupes de règles à appliquer au jeu de règles. ExclusionManagedRuleGroup[]
ruleSetType Définit le type d’ensemble de règles à utiliser. chaîne (obligatoire)
ruleSetVersion Définit la version du jeu de règles à utiliser. chaîne (obligatoire)

GroupByUserSession

Nom Descriptif Valeur
groupByVariables Liste des variables de clause group by. GroupByVariable [] (obligatoire)

GroupByVariable

Nom Descriptif Valeur
nom_variable Variable de clause User Session. 'ClientAddr'
'ClientAddrXFFHeader'
'Géolocalisation'
'GeoLocationXFFHeader'
'None' (obligatoire)

ManagedRuleGroupOverride

Nom Descriptif Valeur
ruleGroupName Groupe de règles managées à remplacer. chaîne (obligatoire)
règlement Liste des règles qui seront désactivées. Si aucune valeur n’est spécifiée, toutes les règles du groupe sont désactivées. ManagedRuleOverride[]

ManagedRuleOverride

Nom Descriptif Valeur
action Décrit l’action de remplacement à appliquer lorsque la règle correspond. 'Autoriser'
'AnomalieScoring'
'Bloquer'
« JSChallenge »
'Bûche'
ruleId Identificateur de la règle managée. chaîne (obligatoire)
sensibilité Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. « Élevé »
'Faible'
'Moyen'
état État de la règle managée. La valeur par défaut est Désactivée si elle n’est pas spécifiée. 'Désactivé'
'Activé'

ManagedRulesDefinition

Nom Descriptif Valeur
Exceptions Exceptions appliquées à la stratégie. exceptionEntry[]
Exclusions Exclusions appliquées à la stratégie. OwaspCrsExclusionEntry[]
managedRuleSets Ensembles de règles managés associés à la stratégie. ManagedRuleSet[] (obligatoire)

ManagedRuleSet

Nom Descriptif Valeur
ruleGroupOverrides Définit les remplacements du groupe de règles à appliquer au jeu de règles. ManagedRuleGroupOverride[]
ruleSetType Définit le type d’ensemble de règles à utiliser. chaîne (obligatoire)
ruleSetVersion Définit la version du jeu de règles à utiliser. chaîne (obligatoire)

MatchCondition

Nom Descriptif Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
négationConditon Qu’il s’agisse d’une condition de non-négation ou non. Bool
opérateur Opérateur à mettre en correspondance. 'N’importe lequel''
'Commence par'
'Contient'
'Se termine par'
'Égal'
'GeoMatch'
« Plus grand que »
« Plus grand que ou égal »
'IPMatch'
'Moins'
'InférieurÀOuÉgal'
'Regex' (obligatoire)
Transforme Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
'HtmlEntityDecode'
'Minuscules'
'RemoveNulls'
'Taille'
'Majuscules'
'UrlDecode'
'UrlEncode'

MatchVariable

Nom Descriptif Valeur
sélecteur Sélecteur de variable de correspondance. corde
nom_variable Mettre en correspondance la variable. 'PostArgs'
'QueryString'
'RemoteAddr'
'CorpsDemande
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obligatoire)

OwaspCrsExclusionEntry

Nom Descriptif Valeur
exclusionManagedRuleSets Ensembles de règles managés associés à l’exclusion. ExclusionManagedRuleSet[]
matchVariable Variable à exclure. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obligatoire)
sélecteur Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection auquel cette exclusion s’applique. chaîne (obligatoire)
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette exclusion s’applique. 'Contient'
'Se termine par'
« Égaux »
« Égal à n’importe lequel »
'StartsWith' (obligatoire)

PolicySettings

Nom Descriptif Valeur
customBlockResponseBody Si le type d’action est bloqué, le client peut remplacer le corps de la réponse. Le corps doit être spécifié dans l’encodage base64. corde

Contraintes:
Longueur maximale = 32768
Modèle = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Si le type d’action est bloqué, le client peut remplacer le code d’état de la réponse. Int

Contraintes:
Valeur minimale = 0
fileUploadEnforcement Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de chargement de fichiers. Bool
fileUploadLimitInMb Taille maximale du chargement de fichiers en Mo pour waf. Int

Contraintes:
Valeur minimale = 0
jsChallengeCookieExpirationInMins Durée d’expiration du cookie de défi javaScript du pare-feu d’applications web en minutes. Int

Contraintes:
Valeur minimale = 5
Valeur maximale = 1440
logNettoyage Pour nettoyer les champs de journal sensibles PolicySettingsLogScrubbing
maxRequestBodySizeInKb Taille maximale du corps de la demande en Ko pour WAF. Int

Contraintes:
Valeur minimale = 8
mode Mode de la stratégie. 'Détection'
'Prévention'
requestBodyCheck Indique s’il faut autoriser waf à vérifier le corps de la demande. Bool
requestBodyEnforcement Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de corps de requête. Bool
requestBodyInspectLimitInKB Limite d’inspection maximale en Ko pour l’inspection du corps de requête pour waf. Int
état État de la stratégie. 'Désactivé'
'Activé'

PolicySettingsLogScrubbing

Nom Descriptif Valeur
nettoyageRègles Règles appliquées aux journaux d’activité pour le nettoyage. WebApplicationFirewallScrubbingRules[]
état État de la configuration de nettoyage des journaux. La valeur par défaut est Activée. 'Désactivé'
'Activé'

ResourceTags

Nom Descriptif Valeur

WebApplicationFirewallCustomRule

Nom Descriptif Valeur
action Type d’actions. 'Autoriser'
'Bloquer'
« JSChallenge »
'Log' (obligatoire)
groupByUserSession Liste des clauses de groupe d’identificateurs de session utilisateur. GroupByUserSession[]
matchConditions Liste des conditions de correspondance. MatchCondition[] (obligatoire)
nom Nom de la ressource unique dans une stratégie. Ce nom peut être utilisé pour accéder à la ressource. corde

Contraintes:
Longueur maximale = 128
priorité Priorité de la règle. Les règles avec une valeur inférieure sont évaluées avant les règles avec une valeur plus élevée. int (obligatoire)
rateLimitDuration Durée pendant laquelle la stratégie limite de taux sera appliquée. S’applique uniquement lorsque ruleType est RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Seuil de limite de débit à appliquer dans le cas où ruleType est RateLimitRule. Doit être supérieur ou égal à 1 Int
type de règle Type de règle. « Invalide »
'MatchRule'
'RateLimitRule' (obligatoire)
état Décrit si la règle personnalisée est activée ou désactivée. La valeur par défaut est Activée si elle n’est pas spécifiée. 'Désactivé'
'Activé'

WebApplicationFirewallPolicyPropertiesFormat

Nom Descriptif Valeur
customRules Règles personnalisées à l’intérieur de la stratégie. WebApplicationFirewallCustomRule[]
managedRules Décrit la structure managedRules. ManagedRulesDefinition (obligatoire)
stratégieParamètres PolicySettings pour la stratégie. PolicySettings

WebApplicationPare-feuScrubbingRules

Nom Descriptif Valeur
matchVariable Variable à frotter à partir des journaux. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obligatoire)
sélecteur Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection à laquelle cette règle s’applique. corde
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auquel cette règle s’applique. « Égaux »
'EqualsAny' (obligatoire)
état Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Activée. 'Désactivé'
'Activé'

Exemples d’utilisation

Modèles de démarrage rapide Azure

Les modèles de démarrage rapide Azure suivants déployer ce type de ressource.

Modèle Descriptif
cluster AKS avec une passerelle NAT et un Application Gateway

Déployer sur Azure
Cet exemple montre comment déployer un cluster AKS avec NAT Gateway pour les connexions sortantes et une passerelle Application Gateway pour les connexions entrantes.
cluster AKS avec le contrôleur d’entrée Application Gateway

Déployer sur Azure
Cet exemple montre comment déployer un cluster AKS avec Application Gateway, Application Gateway Ingress Controller, Azure Container Registry, Log Analytics et Key Vault
Application Gateway pour le routage basé sur le chemin d’URL

Déployer sur Azure
Ce modèle crée une passerelle Application Gateway et la configure pour le routage basé sur le chemin d’URL.
Application Gateway avec le pare-feu d’applications web et la stratégie de pare-feu

Déployer sur Azure
Ce modèle crée une passerelle Application Gateway avec WAF configurée avec une stratégie de pare-feu
Créer un waf Azure v2 sur Azure Application Gateway

Déployer sur Azure
Ce modèle crée un pare-feu d’applications web Azure v2 sur Azure Application Gateway avec deux serveurs Windows Server 2016 dans le pool principal
Front Door Standard/Premium avec l’origine d’Application Gateway

Déployer sur Azure
Ce modèle crée une instance Front Door Standard/Premium et Application Gateway et utilise un groupe de sécurité réseau et une stratégie WAF pour vérifier que le trafic est passé par l’origine Front Door.
Front Door avec container Instances et application Gateway

Déployer sur Azure
Ce modèle crée un Front Door Standard/Premium avec un groupe de conteneurs et Application Gateway.

Définition de ressource Terraform (fournisseur AzAPI)

Le type de ressource ApplicationGatewayWebApplicationFirewallPolicies peut être déployé avec des opérations qui ciblent :

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer une ressource Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, ajoutez la terraform suivante à votre modèle.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-03-01"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    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"
      }
    }
  }
}

Valeurs de propriété

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nom Descriptif Valeur
emplacement Emplacement des ressources. corde
nom Nom de la ressource corde

Contraintes:
Longueur maximale = 128 (obligatoire)
parent_id ID de la ressource à laquelle appliquer cette ressource d’extension. chaîne (obligatoire)
Propriétés Propriétés de la stratégie de pare-feu d’applications web. WebApplicationFirewallPolicyPropertiesFormat
étiquettes Balises de ressource Dictionnaire de noms et de valeurs d’étiquettes.
type Type de ressource « Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-03-01 »

ExceptionEntry

Nom Descriptif Valeur
exceptionManagedRuleSets Ensembles de règles managés associés à l’exception. ExclusionManagedRuleSet[]
matchVariable Variable sur laquelle nous évaluons la condition d’exception 'RemoteAddr'
'RequestHeader'
'RequestURI' (obligatoire)
sélecteur Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela identifie la clé. corde
selectorMatchOperator Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela fonctionne sur le sélecteur 'Contient'
'Se termine par'
« Égaux »
'Commence par'
valueMatchOperator Fonctionne sur les valeurs autorisées pour matchVariable 'Contient'
'Se termine par'
« Égaux »
'IPMatch'
'StartsWith' (obligatoire)
Valeurs Valeurs autorisées pour matchVariable chaîne de caractères[]

ExclusionManagedRule

Nom Descriptif Valeur
ruleId Identificateur de la règle managée. chaîne (obligatoire)

ExclusionManagedRuleGroup

Nom Descriptif Valeur
ruleGroupName Groupe de règles managées pour exclusion. chaîne (obligatoire)
règlement Liste des règles qui seront exclues. Si aucune n’est spécifiée, toutes les règles du groupe sont exclues. ExclusionManagedRule[]

ExclusionManagedRuleSet

Nom Descriptif Valeur
ruleGroups Définit les groupes de règles à appliquer au jeu de règles. ExclusionManagedRuleGroup[]
ruleSetType Définit le type d’ensemble de règles à utiliser. chaîne (obligatoire)
ruleSetVersion Définit la version du jeu de règles à utiliser. chaîne (obligatoire)

GroupByUserSession

Nom Descriptif Valeur
groupByVariables Liste des variables de clause group by. GroupByVariable [] (obligatoire)

GroupByVariable

Nom Descriptif Valeur
nom_variable Variable de clause User Session. 'ClientAddr'
'ClientAddrXFFHeader'
'Géolocalisation'
'GeoLocationXFFHeader'
'None' (obligatoire)

ManagedRuleGroupOverride

Nom Descriptif Valeur
ruleGroupName Groupe de règles managées à remplacer. chaîne (obligatoire)
règlement Liste des règles qui seront désactivées. Si aucune valeur n’est spécifiée, toutes les règles du groupe sont désactivées. ManagedRuleOverride[]

ManagedRuleOverride

Nom Descriptif Valeur
action Décrit l’action de remplacement à appliquer lorsque la règle correspond. 'Autoriser'
'AnomalieScoring'
'Bloquer'
« JSChallenge »
'Bûche'
ruleId Identificateur de la règle managée. chaîne (obligatoire)
sensibilité Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. « Élevé »
'Faible'
'Moyen'
état État de la règle managée. La valeur par défaut est Désactivée si elle n’est pas spécifiée. 'Désactivé'
'Activé'

ManagedRulesDefinition

Nom Descriptif Valeur
Exceptions Exceptions appliquées à la stratégie. exceptionEntry[]
Exclusions Exclusions appliquées à la stratégie. OwaspCrsExclusionEntry[]
managedRuleSets Ensembles de règles managés associés à la stratégie. ManagedRuleSet[] (obligatoire)

ManagedRuleSet

Nom Descriptif Valeur
ruleGroupOverrides Définit les remplacements du groupe de règles à appliquer au jeu de règles. ManagedRuleGroupOverride[]
ruleSetType Définit le type d’ensemble de règles à utiliser. chaîne (obligatoire)
ruleSetVersion Définit la version du jeu de règles à utiliser. chaîne (obligatoire)

MatchCondition

Nom Descriptif Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
négationConditon Qu’il s’agisse d’une condition de non-négation ou non. Bool
opérateur Opérateur à mettre en correspondance. 'N’importe lequel''
'Commence par'
'Contient'
'Se termine par'
'Égal'
'GeoMatch'
« Plus grand que »
« Plus grand que ou égal »
'IPMatch'
'Moins'
'InférieurÀOuÉgal'
'Regex' (obligatoire)
Transforme Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
'HtmlEntityDecode'
'Minuscules'
'RemoveNulls'
'Taille'
'Majuscules'
'UrlDecode'
'UrlEncode'

MatchVariable

Nom Descriptif Valeur
sélecteur Sélecteur de variable de correspondance. corde
nom_variable Mettre en correspondance la variable. 'PostArgs'
'QueryString'
'RemoteAddr'
'CorpsDemande
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obligatoire)

OwaspCrsExclusionEntry

Nom Descriptif Valeur
exclusionManagedRuleSets Ensembles de règles managés associés à l’exclusion. ExclusionManagedRuleSet[]
matchVariable Variable à exclure. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obligatoire)
sélecteur Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection auquel cette exclusion s’applique. chaîne (obligatoire)
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette exclusion s’applique. 'Contient'
'Se termine par'
« Égaux »
« Égal à n’importe lequel »
'StartsWith' (obligatoire)

PolicySettings

Nom Descriptif Valeur
customBlockResponseBody Si le type d’action est bloqué, le client peut remplacer le corps de la réponse. Le corps doit être spécifié dans l’encodage base64. corde

Contraintes:
Longueur maximale = 32768
Modèle = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Si le type d’action est bloqué, le client peut remplacer le code d’état de la réponse. Int

Contraintes:
Valeur minimale = 0
fileUploadEnforcement Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de chargement de fichiers. Bool
fileUploadLimitInMb Taille maximale du chargement de fichiers en Mo pour waf. Int

Contraintes:
Valeur minimale = 0
jsChallengeCookieExpirationInMins Durée d’expiration du cookie de défi javaScript du pare-feu d’applications web en minutes. Int

Contraintes:
Valeur minimale = 5
Valeur maximale = 1440
logNettoyage Pour nettoyer les champs de journal sensibles PolicySettingsLogScrubbing
maxRequestBodySizeInKb Taille maximale du corps de la demande en Ko pour WAF. Int

Contraintes:
Valeur minimale = 8
mode Mode de la stratégie. 'Détection'
'Prévention'
requestBodyCheck Indique s’il faut autoriser waf à vérifier le corps de la demande. Bool
requestBodyEnforcement Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de corps de requête. Bool
requestBodyInspectLimitInKB Limite d’inspection maximale en Ko pour l’inspection du corps de requête pour waf. Int
état État de la stratégie. 'Désactivé'
'Activé'

PolicySettingsLogScrubbing

Nom Descriptif Valeur
nettoyageRègles Règles appliquées aux journaux d’activité pour le nettoyage. WebApplicationFirewallScrubbingRules[]
état État de la configuration de nettoyage des journaux. La valeur par défaut est Activée. 'Désactivé'
'Activé'

ResourceTags

Nom Descriptif Valeur

WebApplicationFirewallCustomRule

Nom Descriptif Valeur
action Type d’actions. 'Autoriser'
'Bloquer'
« JSChallenge »
'Log' (obligatoire)
groupByUserSession Liste des clauses de groupe d’identificateurs de session utilisateur. GroupByUserSession[]
matchConditions Liste des conditions de correspondance. MatchCondition[] (obligatoire)
nom Nom de la ressource unique dans une stratégie. Ce nom peut être utilisé pour accéder à la ressource. corde

Contraintes:
Longueur maximale = 128
priorité Priorité de la règle. Les règles avec une valeur inférieure sont évaluées avant les règles avec une valeur plus élevée. int (obligatoire)
rateLimitDuration Durée pendant laquelle la stratégie limite de taux sera appliquée. S’applique uniquement lorsque ruleType est RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Seuil de limite de débit à appliquer dans le cas où ruleType est RateLimitRule. Doit être supérieur ou égal à 1 Int
type de règle Type de règle. « Invalide »
'MatchRule'
'RateLimitRule' (obligatoire)
état Décrit si la règle personnalisée est activée ou désactivée. La valeur par défaut est Activée si elle n’est pas spécifiée. 'Désactivé'
'Activé'

WebApplicationFirewallPolicyPropertiesFormat

Nom Descriptif Valeur
customRules Règles personnalisées à l’intérieur de la stratégie. WebApplicationFirewallCustomRule[]
managedRules Décrit la structure managedRules. ManagedRulesDefinition (obligatoire)
stratégieParamètres PolicySettings pour la stratégie. PolicySettings

WebApplicationPare-feuScrubbingRules

Nom Descriptif Valeur
matchVariable Variable à frotter à partir des journaux. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obligatoire)
sélecteur Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection à laquelle cette règle s’applique. corde
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auquel cette règle s’applique. « Égaux »
'EqualsAny' (obligatoire)
état Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Activée. 'Désactivé'
'Activé'

Exemples d’utilisation

Échantillons Terraform

Exemple de base de déploiement d’une instance de stratégie de pare-feu d’applications web Azure.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "ApplicationGatewayWebApplicationFirewallPolicy" {
  type      = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-07-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      customRules = [
      ]
      managedRules = {
        exclusions = [
        ]
        managedRuleSets = [
          {
            ruleGroupOverrides = [
            ]
            ruleSetType    = "OWASP"
            ruleSetVersion = "3.1"
          },
        ]
      }
      policySettings = {
        fileUploadLimitInMb    = 100
        maxRequestBodySizeInKb = 128
        mode                   = "Detection"
        requestBodyCheck       = true
        state                  = "Enabled"
      }
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

Modules vérifiés Azure

Les modules vérifiés Azure suivants peuvent être utilisés pour déployer ce type de ressource.

Module Descriptif
stratégie de pare-feu d’applications web Application Gateway (WAF) Module de ressource AVM pour la stratégie de pare-feu d’applications web Application Gateway (WAF)