Share via


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-04-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 des ressources

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

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'
    }
  }
}

Valeurs de propriétés

ApplicationGatewayWebApplicationFirewallPolicies

Nom Description Valeur
name Nom de la ressource chaîne (obligatoire)
location Emplacement de la ressource. string
tags Balises de ressource. Dictionnaire de noms et de valeurs d’étiquettes. Voir Balises dans les modèles
properties Propriétés de la stratégie de pare-feu d’applications web. WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallCustomRule

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

Contraintes :
Longueur maximale = 128
priority Priorité de la règle. Les règles ayant une valeur inférieure sont évaluées avant les règles ayant une valeur supérieure. int (obligatoire)
rateLimitDuration Durée pendant laquelle la stratégie de limite de débit 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. 'Non valide'
'MatchRule'
'RateLimitRule' (obligatoire)
state Décrit si la règle personnalisée est à l’état activé ou désactivé. La valeur par défaut est Activée si elle n’est pas spécifiée. 'Désactivé'
'Enabled'

GroupByUserSession

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

GroupByVariable

Nom Description Valeur
variableName Variable de clause session utilisateur. 'ClientAddr'
'GeoLocation'
'None' (obligatoire)

MatchCondition

Nom Description Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
negationConditon Indique s’il s’agit d’une condition négation ou non. bool
operator Opérateur à mettre en correspondance. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obligatoire)
transformations Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
'HtmlEntityDecode'
'Minuscule'
'RemoveNulls'
'Découper'
'Majuscules'
'UrlDecode'
'UrlEncode'

MatchVariable

Nom Description Valeur
selector Sélecteur de la variable de correspondance. string
variableName Variable de correspondance. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obligatoire)

ManagedRulesDefinition

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

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)
selector Lorsque matchVariable est une collection, opérateur utilisé pour spécifier les éléments de la collection auxquels cette exclusion s’applique. string (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'
'Égal à'
'EqualsAny'
'StartsWith' (obligatoire)

ExclusionManagedRuleSet

Nom Description Valeur
ruleGroups Définit les groupes de règles à appliquer à l’ensemble de règles. ExclusionManagedRuleGroup[]
ruleSetType Définit le type d’ensemble de règles à utiliser. string (obligatoire)
ruleSetVersion Définit la version de l’ensemble de règles à utiliser. string (obligatoire)

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

Nom Description Valeur
ruleGroupOverrides Définit les remplacements de groupe de règles à appliquer à l’ensemble de règles. ManagedRuleGroupOverride[]
ruleSetType Définit le type d’ensemble de règles à utiliser. string (obligatoire)
ruleSetVersion Définit la version de l’ensemble de règles à utiliser. string (obligatoire)

ManagedRuleGroupOverride

Nom Description Valeur
ruleGroupName Groupe de règles managées à remplacer. string (obligatoire)
rules Liste des règles qui seront désactivées. Si aucune 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'
'AnomalyScoring'
'Bloquer'
'Log'
ruleId Identificateur de la règle managée. string (obligatoire)
state État de la règle gérée. La valeur par défaut est Désactivé si elle n’est pas spécifiée. 'Désactivé'
'Enabled'

PolicySettings

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

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 block, le client peut remplacer la réponse status code. int

Contraintes :
Valeur minimale = 0
fileUploadEnforcement Indique si waf autorise les limites de chargement de fichiers. bool
fileUploadLimitInMb Taille maximale de chargement de fichier en Mo pour WAF. int

Contraintes :
Valeur minimale = 0
logScrubbing Pour nettoyer les champs de journal sensibles PolicySettingsLogScrubbing
maxRequestBodySizeInKb Taille maximale du corps de la requête 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 à case activée corps de la requête. bool
requestBodyEnforcement Indique si le WAF autorise l’application des limites du corps de la requête. bool
requestBodyInspectLimitInKB Limite maximale d’inspection en Ko pour l’inspection du corps de la demande pour WAF. int
state État de la stratégie. 'Désactivé'
'Enabled'

PolicySettingsLogScrubbing

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

WebApplicationFirewallScrubbingRules

Nom Description Valeur
matchVariable Variable à scriffer à partir des journaux. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obligatoire)
selector Lorsque matchVariable est une collection, opérateur utilisé pour spécifier les éléments de la collection auxquels cette règle s’applique. string
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette règle s’applique. 'Égal à'
'EqualsAny' (obligatoire)
state Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Enabled. 'Désactivé'
'Enabled'

Modèles de démarrage rapide

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

Modèle Description
Create un WAF Azure v2 sur Azure Application Gateway

Déployer sur Azure
Ce modèle crée un azure Web Application Firewall v2 sur Azure Application Gateway avec deux serveurs Windows Server 2016 dans le pool principal
Cluster AKS avec une passerelle NAT et un Application Gateway

Déployer sur Azure
Cet exemple montre comment déployer un cluster AKS avec une passerelle NAT pour les connexions sortantes et un Application Gateway pour les connexions entrantes.
Front Door Standard/Premium avec origine Application Gateway

Déployer sur Azure
Ce modèle crée une instance Front Door Standard/Premium et une Application Gateway instance, et utilise une stratégie de groupe de sécurité réseau et de WAF pour vérifier que le trafic a transité par l’origine de Front Door.
Porte d’entrée 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.
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 contrôleur d’entrée, Azure Container Registry, Log Analytics et Key Vault
Application Gateway avec waf et stratégie de pare-feu

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

Définition de ressources 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 d’API, consultez journal des modifications.

Format des ressources

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

{
  "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"
    }
  }
}

Valeurs de propriétés

ApplicationGatewayWebApplicationFirewallPolicies

Nom Description Valeur
type Type de ressource « Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies »
apiVersion Version de l’API de ressource '2023-04-01'
name Nom de la ressource chaîne (obligatoire)
location Emplacement de la ressource. string
tags Balises de ressource. Dictionnaire de noms et de valeurs d’étiquettes. Voir Balises dans les modèles
properties Propriétés de la stratégie de pare-feu d’applications web. WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallCustomRule

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

Contraintes :
Longueur maximale = 128
priority Priorité de la règle. Les règles ayant une valeur inférieure sont évaluées avant les règles ayant une valeur supérieure. int (obligatoire)
rateLimitDuration Durée pendant laquelle la stratégie de limite de débit 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. 'Non valide'
'MatchRule'
'RateLimitRule' (obligatoire)
state Décrit si la règle personnalisée est à l’état activé ou désactivé. La valeur par défaut est Activée si elle n’est pas spécifiée. 'Désactivé'
'Enabled'

GroupByUserSession

Nom Description Valeur
groupByVariables Liste des variables de clause de groupe par. GroupByVariable[] (obligatoire)

GroupByVariable

Nom Description Valeur
variableName Variable de clause Session utilisateur. 'ClientAddr'
'Géolocalisation'
'None' (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-contrôle ou non. bool
operator Opérateur à mettre en correspondance. 'Any'
'BeginsWith'
'Contient'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obligatoire)
transformations 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
selector Sélecteur de la variable de correspondance. string
variableName Variable de correspondance. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obligatoire)

ManagedRulesDefinition

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

OwaspCrsExclusionEntry

Nom Description Valeur
exclusionManagedRuleSets Ensembles de règles managées associés à l’exclusion. ExclusionManagedRuleSet[]
matchVariable Variable à exclure. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obligatoire)
selector Lorsque matchVariable est une collection, opérateur utilisé pour spécifier les éléments de la collection auxquels 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'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obligatoire)

ExclusionManagedRuleSet

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

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

Nom Description Valeur
ruleGroupOverrides Définit les remplacements de groupe de règles à appliquer à l’ensemble de règles. ManagedRuleGroupOverride[]
ruleSetType Définit le type d’ensemble de règles à utiliser. string (obligatoire)
ruleSetVersion Définit la version de l’ensemble de règles à utiliser. string (obligatoire)

ManagedRuleGroupOverride

Nom Description Valeur
ruleGroupName Groupe de règles managées à remplacer. string (obligatoire)
rules Liste des règles qui seront désactivées. Si aucune 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'
'AnomalyScoring'
'Bloquer'
'Log'
ruleId Identificateur de la règle managée. string (obligatoire)
state État de la règle gérée. La valeur par défaut est Désactivé si elle n’est pas spécifiée. 'Désactivé'
'Enabled'

PolicySettings

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

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 block, le client peut remplacer la réponse status code. int

Contraintes :
Valeur minimale = 0
fileUploadEnforcement Indique si waf autorise les limites de chargement de fichiers. bool
fileUploadLimitInMb Taille maximale de chargement de fichier en Mo pour WAF. int

Contraintes :
Valeur minimale = 0
logScrubbing Pour nettoyer les champs de journal sensibles PolicySettingsLogScrubbing
maxRequestBodySizeInKb Taille maximale du corps de la requête 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 à case activée corps de la requête. bool
requestBodyEnforcement Indique si le WAF autorise l’application des limites du corps de la requête. bool
requestBodyInspectLimitInKB Limite d’inspection maximale en Ko pour l’inspection du corps de la demande pour WAF. int
state État de la stratégie. 'Désactivé'
'Enabled'

PolicySettingsLogScrubbing

Nom Description Valeur
scrubbingRules Règles appliquées aux journaux pour le nettoyage. WebApplicationFirewallScrubbingRules[]
state État de la configuration de nettoyage des journaux. La valeur par défaut est Activé. 'Désactivé'
'Enabled'

WebApplicationFirewallScrubbingRules

Nom Description Valeur
matchVariable Variable à scriffer à partir des journaux. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obligatoire)
selector Lorsque matchVariable est une collection, opérateur utilisé pour spécifier les éléments de la collection auxquels cette règle s’applique. string
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette règle s’applique. 'Equals'
'EqualsAny' (obligatoire)
state Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Activé. 'Désactivé'
'Enabled'

Modèles de démarrage rapide

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

Modèle Description
Create un WAF Azure v2 sur Azure Application Gateway

Déployer sur Azure
Ce modèle crée un azure Web Application Firewall v2 sur Azure Application Gateway avec deux serveurs Windows Server 2016 dans le pool principal
Cluster AKS avec une passerelle NAT et un Application Gateway

Déployer sur Azure
Cet exemple montre comment déployer un cluster AKS avec une passerelle NAT pour les connexions sortantes et un Application Gateway pour les connexions entrantes.
Front Door Standard/Premium avec origine Application Gateway

Déployer sur Azure
Ce modèle crée un Front Door Standard/Premium et un Application Gateway instance, et utilise une stratégie NSG et WAF pour vérifier que le trafic est passé par l’origine Front Door.
Porte d’entrée 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.
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 contrôleur d’entrée, Azure Container Registry, Log Analytics et Key Vault
Application Gateway avec waf et stratégie de pare-feu

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

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 des ressources

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

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"
      }
    }
  })
}

Valeurs de propriétés

ApplicationGatewayWebApplicationFirewallPolicies

Nom Description Valeur
type Type de ressource « Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01 »
name Nom de la ressource chaîne (obligatoire)
location Emplacement de la ressource. string
parent_id Pour effectuer un déploiement sur un groupe de ressources, utilisez l’ID de ce groupe de ressources. chaîne (obligatoire)
tags Balises de ressource. Dictionnaire de noms et de valeurs d’étiquettes.
properties Propriétés de la stratégie de pare-feu d’applications web. WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallCustomRule

Nom Description Valeur
action Type d’actions. « Autoriser »
« Bloquer »
« Journal » (obligatoire)
groupByUserSession Liste des clauses group by de l’identificateur de session utilisateur. GroupByUserSession[]
matchConditions Liste des conditions de correspondance. MatchCondition[] (obligatoire)
name Nom de la ressource unique dans une stratégie. Ce nom peut être utilisé pour accéder à la ressource. string

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

GroupByUserSession

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

GroupByVariable

Nom Description Valeur
variableName Variable de clause session utilisateur. « ClientAddr »
« Géolocalisation »
« None » (obligatoire)

MatchCondition

Nom Description Valeur
matchValues Valeur de correspondance. string[] (obligatoire)
matchVariables Liste des variables de correspondance. MatchVariable[] (obligatoire)
negationConditon Indique s’il s’agit d’une condition négation ou non. bool
operator Opérateur à mettre en correspondance. « N’importe quel »
« BeginsWith »
« Contains »
« EndsWith »
« Égal »
« GeoMatch »
« GreaterThan »
« GreaterThanOrEqual »
« IPMatch »
« LessThan »
« LessThanOrEqual »
« Regex » (obligatoire)
transformations Liste des transformations. Tableau de chaînes contenant l’un des éléments suivants :
« HtmlEntityDecode »
« Minuscules »
« RemoveNulls »
« Découper »
« Majuscules »
« UrlDecode »
« UrlEncode »

MatchVariable

Nom Description Valeur
selector Sélecteur de la variable de correspondance. string
variableName Variable de correspondance. « PostArgs »
« QueryString »
« RemoteAddr »
« RequestBody »
« RequestCookies »
« RequestHeaders »
« RequestMethod »
« RequestUri » (obligatoire)

ManagedRulesDefinition

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

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)
selector Lorsque matchVariable est une collection, opérateur utilisé pour spécifier les éléments de la collection auxquels cette exclusion s’applique. string (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 »
« Égal à »
« EqualsAny »
« StartsWith » (obligatoire)

ExclusionManagedRuleSet

Nom Description Valeur
ruleGroups Définit les groupes de règles à appliquer à l’ensemble de règles. ExclusionManagedRuleGroup[]
ruleSetType Définit le type d’ensemble de règles à utiliser. string (obligatoire)
ruleSetVersion Définit la version de l’ensemble de règles à utiliser. string (obligatoire)

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

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

ManagedRuleGroupOverride

Nom Description Valeur
ruleGroupName Groupe de règles managées à remplacer. chaîne (obligatoire)
rules Liste des règles qui seront désactivées. Si aucune 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 »
« Journal »
ruleId Identificateur de la règle managée. chaîne (obligatoire)
state É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é »

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. string

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 la réponse status code. int

Contraintes :
Valeur minimale = 0
fileUploadEnforcement Autoriser WAF à appliquer des limites de chargement de fichiers. bool
fileUploadLimitInMb Taille maximale de chargement de fichier en Mo pour WAF. int

Contraintes :
Valeur minimale = 0
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 à case activée corps de la requête. bool
requestBodyEnforcement Indique s’il autorise WAF à appliquer les limites du corps de la demande. bool
requestBodyInspectLimitInKB Limite d’inspection maximale en Ko pour l’inspection du corps de la demande pour WAF. int
state État de la stratégie. « Désactivé »
« Activé »

PolicySettingsLogScrubbing

Nom Description Valeur
scrubbingRules Règles appliquées aux journaux pour le nettoyage. WebApplicationFirewallScrubbingRules[]
state État de la configuration de nettoyage des journaux. La valeur par défaut est Activé. « Désactivé »
« Activé »

WebApplicationFirewallScrubbingRules

Nom Description Valeur
matchVariable Variable à scriffer à partir des journaux. « RequestArgNames »
« RequestCookieNames »
« RequestHeaderNames »
« RequestIPAddress »
« RequestJSONArgNames »
« RequestPostArgNames » (obligatoire)
selector Lorsque matchVariable est une collection, opérateur utilisé pour spécifier les éléments de la collection auxquels cette règle s’applique. string
selectorMatchOperator Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette règle s’applique. « Égal à »
« EqualsAny » (obligatoire)
state Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Enabled. « Désactivé »
« Activé »