Partager via


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2024-03-01

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@2024-03-01' = {
  location: 'string'
  name: 'string'
  properties: {
    customRules: [
      {
        action: 'string'
        groupByUserSession: [
          {
            groupByVariables: [
              {
                variableName: 'string'
              }
            ]
          }
        ]
        matchConditions: [
          {
            matchValues: [
              'string'
            ]
            matchVariables: [
              {
                selector: 'string'
                variableName: 'string'
              }
            ]
            negationConditon: bool
            operator: 'string'
            transforms: [
              'string'
            ]
          }
        ]
        name: 'string'
        priority: int
        rateLimitDuration: 'string'
        rateLimitThreshold: int
        ruleType: 'string'
        state: 'string'
      }
    ]
    managedRules: {
      exceptions: [
        {
          exceptionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
          valueMatchOperator: 'string'
          values: [
            'string'
          ]
        }
      ]
      exclusions: [
        {
          exclusionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
        }
      ]
      managedRuleSets: [
        {
          ruleGroupOverrides: [
            {
              ruleGroupName: 'string'
              rules: [
                {
                  action: 'string'
                  ruleId: 'string'
                  sensitivity: 'string'
                  state: 'string'
                }
              ]
            }
          ]
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      fileUploadEnforcement: bool
      fileUploadLimitInMb: int
      jsChallengeCookieExpirationInMins: int
      logScrubbing: {
        scrubbingRules: [
          {
            matchVariable: 'string'
            selector: 'string'
            selectorMatchOperator: 'string'
            state: 'string'
          }
        ]
        state: 'string'
      }
      maxRequestBodySizeInKb: int
      mode: 'string'
      requestBodyCheck: bool
      requestBodyEnforcement: bool
      requestBodyInspectLimitInKB: int
      state: 'string'
    }
  }
  tags: {
    {customized property}: 'string'
  }
}

Valeurs de propriété

ExceptionEntry

Nom Description 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 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator Fonctionne sur les valeurs autorisées pour matchVariable 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (obligatoire)
Valeurs Valeurs autorisées pour matchVariable string[]

ExclusionManagedRule

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

ExclusionManagedRuleGroup

Nom Description 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 Description 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 Description Valeur
groupByVariables Liste des variables de clause group by. GroupByVariable [] (obligatoire)

GroupByVariable

Nom Description Valeur
variableName Variable de clause User Session. 'ClientAddr'
'GeoLocation'
'None' (obligatoire)

ManagedRuleGroupOverride

Nom Description 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 Description Valeur
action Décrit l’action de remplacement à appliquer lorsque la règle correspond. 'Autoriser'
'AnomalieScoring'
'Bloquer'
'JSChallenge'
'Log'
ruleId Identificateur de la règle managée. chaîne (obligatoire)
sensibilité Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. 'High'
'Low'
'Medium'
'None'
é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 Description 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 Description 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 Description Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
negationConditon Qu’il s’agisse d’une condition de non-négation ou non. Bool
opérateur Opérateur à mettre en correspondance. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Égal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obligatoire)
Transforme Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
'HtmlEntityDecode'
'Minuscules'
'RemoveNulls'
'Trim'
'Majuscules'
'UrlDecode'
'UrlEncode'

MatchVariable

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

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

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

Contraintes:
Longueur maximale = (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

OwaspCrsExclusionEntry

Nom Description 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. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obligatoire)

PolicySettings

Nom Description 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 =
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
logScrubbing 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 Description Valeur
scrubbingRules 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 Description Valeur

WebApplicationFirewallCustomRule

Nom Description 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 =
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
ruleType Type de règle. 'Invalid'
'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 Description Valeur
customRules Règles personnalisées à l’intérieur de la stratégie. WebApplicationFirewallCustomRule[]
managedRules Décrit la structure managedRules. ManagedRulesDefinition (obligatoire)
policySettings PolicySettings pour la stratégie. PolicySettings

WebApplicationFirewallScrubbingRules

Nom Description 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. 'Equals'
'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 de démarrage rapide

Les exemples de démarrage rapide suivants déploient ce type de ressource.

Fichier Bicep Description
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 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": "2024-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é

ExceptionEntry

Nom Description 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 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator Fonctionne sur les valeurs autorisées pour matchVariable 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (obligatoire)
Valeurs Valeurs autorisées pour matchVariable string[]

ExclusionManagedRule

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

ExclusionManagedRuleGroup

Nom Description 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 Description 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 Description Valeur
groupByVariables Liste des variables de clause group by. GroupByVariable [] (obligatoire)

GroupByVariable

Nom Description Valeur
variableName Variable de clause User Session. 'ClientAddr'
'GeoLocation'
'None' (obligatoire)

ManagedRuleGroupOverride

Nom Description 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 Description Valeur
action Décrit l’action de remplacement à appliquer lorsque la règle correspond. 'Autoriser'
'AnomalieScoring'
'Bloquer'
'JSChallenge'
'Log'
ruleId Identificateur de la règle managée. chaîne (obligatoire)
sensibilité Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. 'High'
'Low'
'Medium'
'None'
é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 Description 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 Description 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 Description Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
negationConditon Qu’il s’agisse d’une condition de non-négation ou non. Bool
opérateur Opérateur à mettre en correspondance. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Égal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obligatoire)
Transforme Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
'HtmlEntityDecode'
'Minuscules'
'RemoveNulls'
'Trim'
'Majuscules'
'UrlDecode'
'UrlEncode'

MatchVariable

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

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

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

Contraintes:
Longueur maximale = (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'

OwaspCrsExclusionEntry

Nom Description 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. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obligatoire)

PolicySettings

Nom Description 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 =
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
logScrubbing 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 Description Valeur
scrubbingRules 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 Description Valeur

WebApplicationFirewallCustomRule

Nom Description 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 =
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
ruleType Type de règle. 'Invalid'
'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 Description Valeur
customRules Règles personnalisées à l’intérieur de la stratégie. WebApplicationFirewallCustomRule[]
managedRules Décrit la structure managedRules. ManagedRulesDefinition (obligatoire)
policySettings PolicySettings pour la stratégie. PolicySettings

WebApplicationFirewallScrubbingRules

Nom Description 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. 'Equals'
'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é'

Modèles de démarrage rapide

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

Modèle Description
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 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 :

  • groupes de ressources

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@2024-03-01"
  name = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      customRules = [
        {
          action = "string"
          groupByUserSession = [
            {
              groupByVariables = [
                {
                  variableName = "string"
                }
              ]
            }
          ]
          matchConditions = [
            {
              matchValues = [
                "string"
              ]
              matchVariables = [
                {
                  selector = "string"
                  variableName = "string"
                }
              ]
              negationConditon = bool
              operator = "string"
              transforms = [
                "string"
              ]
            }
          ]
          name = "string"
          priority = int
          rateLimitDuration = "string"
          rateLimitThreshold = int
          ruleType = "string"
          state = "string"
        }
      ]
      managedRules = {
        exceptions = [
          {
            exceptionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
            valueMatchOperator = "string"
            values = [
              "string"
            ]
          }
        ]
        exclusions = [
          {
            exclusionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
          }
        ]
        managedRuleSets = [
          {
            ruleGroupOverrides = [
              {
                ruleGroupName = "string"
                rules = [
                  {
                    action = "string"
                    ruleId = "string"
                    sensitivity = "string"
                    state = "string"
                  }
                ]
              }
            ]
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        fileUploadEnforcement = bool
        fileUploadLimitInMb = int
        jsChallengeCookieExpirationInMins = int
        logScrubbing = {
          scrubbingRules = [
            {
              matchVariable = "string"
              selector = "string"
              selectorMatchOperator = "string"
              state = "string"
            }
          ]
          state = "string"
        }
        maxRequestBodySizeInKb = int
        mode = "string"
        requestBodyCheck = bool
        requestBodyEnforcement = bool
        requestBodyInspectLimitInKB = int
        state = "string"
      }
    }
  })
}

Valeurs de propriété

ExceptionEntry

Nom Description 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 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator Fonctionne sur les valeurs autorisées pour matchVariable 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (obligatoire)
Valeurs Valeurs autorisées pour matchVariable string[]

ExclusionManagedRule

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

ExclusionManagedRuleGroup

Nom Description 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 Description 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 Description Valeur
groupByVariables Liste des variables de clause group by. GroupByVariable [] (obligatoire)

GroupByVariable

Nom Description Valeur
variableName Variable de clause User Session. 'ClientAddr'
'GeoLocation'
'None' (obligatoire)

ManagedRuleGroupOverride

Nom Description 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 Description Valeur
action Décrit l’action de remplacement à appliquer lorsque la règle correspond. 'Autoriser'
'AnomalieScoring'
'Bloquer'
'JSChallenge'
'Log'
ruleId Identificateur de la règle managée. chaîne (obligatoire)
sensibilité Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. 'High'
'Low'
'Medium'
'None'
é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 Description 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 Description 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 Description Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
negationConditon Qu’il s’agisse d’une condition de non-négation ou non. Bool
opérateur Opérateur à mettre en correspondance. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Égal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obligatoire)
Transforme Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
'HtmlEntityDecode'
'Minuscules'
'RemoveNulls'
'Trim'
'Majuscules'
'UrlDecode'
'UrlEncode'

MatchVariable

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

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

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

Contraintes:
Longueur maximale = (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@2024-03-01 »

OwaspCrsExclusionEntry

Nom Description 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. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obligatoire)

PolicySettings

Nom Description 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 =
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
logScrubbing 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 Description Valeur
scrubbingRules 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 Description Valeur

WebApplicationFirewallCustomRule

Nom Description 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 =
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
ruleType Type de règle. 'Invalid'
'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 Description Valeur
customRules Règles personnalisées à l’intérieur de la stratégie. WebApplicationFirewallCustomRule[]
managedRules Décrit la structure managedRules. ManagedRulesDefinition (obligatoire)
policySettings PolicySettings pour la stratégie. PolicySettings

WebApplicationFirewallScrubbingRules

Nom Description 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. 'Equals'
'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é'