Condividi tramite


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-06-01

Definizione di risorsa Bicep

Il tipo di risorsa ApplicationGatewayWebApplicationFirewallPolicies può essere distribuito con operazioni destinate:

Per un elenco delle proprietà modificate in ogni versione dell'API, vedere Log delle modifiche.

Formato di risorsa

Per creare una risorsa Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, aggiungere il bicep seguente al modello.

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-06-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'
    }
  }
}

Valori delle proprietà

ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrizione valore
name Nome della risorsa stringa (obbligatorio)
posizione Percorso della risorsa. string
tags Tag delle risorse. Dizionario di nomi e valori di tag. Vedere Tag nei modelli
properties Proprietà dei criteri web application firewall. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

Nome Descrizione Valore
customRules Regole personalizzate all'interno dei criteri. WebApplicationFirewallCustomRule[]
managedRules Descrive la struttura managedRules. ManagedRulesDefinition (obbligatorio)
policySettings PolicySettings per i criteri. PolicySettings

WebApplicationFirewallCustomRule

Nome Descrizione Valore
azione Tipo di azioni. 'Consenti'
'Blocca'
'JSChallenge'
'Log' (obbligatorio)
groupByUserSession Elenco di clausole per identificatore di sessione utente. GroupByUserSession[]
matchConditions Elenco di condizioni di corrispondenza. MatchCondition[] (obbligatorio)
name Nome della risorsa univoca all'interno di un criterio. Questo nome può essere usato per accedere alla risorsa. string

Vincoli:
Lunghezza massima = 128
priority Priorità della regola. Le regole con un valore inferiore verranno valutate prima delle regole con un valore più alto. int (obbligatorio)
rateLimitDuration Durata in cui verranno applicati i criteri Limite di frequenza. Si applica solo quando ruleType è RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Soglia limite di frequenza da applicare nel caso in cui ruleType sia RateLimitRule. Deve essere maggiore o uguale a 1 INT
ruleType Tipo di regola. 'Invalid'
'MatchRule'
'RateLimitRule' (obbligatorio)
state Descrive se la regola personalizzata è abilitata o disabilitata. Impostazione predefinita Abilitata se non specificata. 'Disabilitato'
'Enabled'

GroupByUserSession

Nome Descrizione Valore
groupByVariables Elenco delle variabili di clausola per gruppo. GroupByVariable[] (obbligatorio)

GroupByVariable

Nome Descrizione Valore
variableName Variabile di clausola Sessione utente. 'ClientAddr'
'GeoLocation'
'Nessuno' (obbligatorio)

MatchCondition

Nome Descrizione Valore
matchValues Valore di corrispondenza. string[] (obbligatorio)
matchVariables Elenco delle variabili di corrispondenza. MatchVariable[] (obbligatorio)
negazioneConditon Se si tratta di una condizione negata o meno. bool
operator Operatore a cui corrispondere. 'Any'
'BeginsWith'
'Contains'
'EndWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obbligatorio)
trasformazioni Elenco di trasformazioni. Matrice di stringhe contenente uno qualsiasi di:
'HtmlEntityDecode'
'Minuscolo'
'RemoveNulls'
'Trim'
'Maiuscolo'
'UrlDecode'
'UrlEncode'

MatchVariable

Nome Descrizione Valore
selector Selettore della variabile di corrispondenza. string
variableName Variabile di corrispondenza. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obbligatorio)

ManagedRulesDefinition

Nome Descrizione Valore
esclusioni Esclusioni applicate ai criteri. OwaspCrsExclusionEntry[]
managedRuleSets Set di regole gestite associate ai criteri. ManagedRuleSet[] (obbligatorio)

OwaspCrsExclusionEntry

Nome Descrizione Valore
esclusioneManagedRuleSets Set di regole gestite associate all'esclusione. ExclusionManagedRuleSet[]
matchVariable Variabile da escludere. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obbligatorio)
selector Quando matchVariable è una raccolta, l'operatore utilizzato per specificare gli elementi nella raccolta a cui si applica questa esclusione. stringa (obbligatorio)
selectorMatchOperator Quando matchVariable è una raccolta, utilizzare il selettore per specificare gli elementi nella raccolta a cui si applica questa esclusione. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obbligatorio)

ExclusionManagedRuleSet

Nome Descrizione Valore
ruleGroups Definisce i gruppi di regole da applicare al set di regole. ExclusionManagedRuleGroup[]
ruleSetType Definisce il tipo di set di regole da utilizzare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

ExclusionManagedRuleGroup

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite per l'esclusione. stringa (obbligatorio)
regole Elenco di regole che verranno escluse. Se non è specificato alcun valore, tutte le regole del gruppo verranno escluse. ExclusionManagedRule[]

ExclusionManagedRule

Nome Descrizione Valore
ruleId Identificatore della regola gestita. stringa (obbligatorio)

ManagedRuleSet

Nome Descrizione Valore
ruleGroupOverrides Definisce le sostituzioni del gruppo di regole da applicare al set di regole. ManagedRuleGroupOverride[]
ruleSetType Definisce il tipo di set di regole da utilizzare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

ManagedRuleGroupOverride

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite di cui eseguire l'override. stringa (obbligatorio)
regole Elenco di regole che verranno disabilitate. Se non è specificato alcun valore, tutte le regole nel gruppo verranno disabilitate. ManagedRuleOverride[]

ManagedRuleOverride

Nome Descrizione Valore
azione Descrive l'azione di override da applicare quando la regola corrisponde. 'Consenti'
'AnomalyScoring'
'Blocca'
'JSChallenge'
'Log'
ruleId Identificatore della regola gestita. stringa (obbligatorio)
state Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. 'Disabilitato'
'Enabled'

PolicySettings

Nome Descrizione Valore
customBlockResponseBody Se il tipo di azione è bloccato, il cliente può eseguire l'override del corpo della risposta. Il corpo deve essere specificato nella codifica base64. string

Vincoli:
Lunghezza massima = 32768
Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Se il tipo di azione è bloccato, il cliente può eseguire l'override del codice di stato della risposta. INT

Vincoli:
Valore minimo = 0
fileUploadEnforcement Indica se consentire a WAF di applicare i limiti di caricamento dei file. bool
fileUploadLimitInMb Dimensioni massime di caricamento dei file in Mb per WAF. INT

Vincoli:
Valore minimo = 0
logScrubbing Per eliminare i campi dei log sensibili PolicySettingsLogScrubbing
maxRequestBodySizeInKb Dimensioni massime del corpo della richiesta in Kb per WAF. INT

Vincoli:
Valore minimo = 8
mode Modalità del criterio. 'Rilevamento'
'Prevenzione'
requestBodyCheck Indica se consentire a WAF di controllare il corpo della richiesta. bool
requestBodyEnforcement Indica se consentire al WAF di applicare i limiti del corpo della richiesta. bool
requestBodyInspectLimitInKB Limite massimo di ispezione in KB per l'ispezione del corpo della richiesta per WAF. INT
state Stato del criterio. 'Disabilitato'
'Enabled'

PolicySettingsLogScrubbing

Nome Descrizione Valore
scrubbingRules Regole applicate ai log per lo scrubbing. WebApplicationFirewallScrubbingRules[]
state Stato della configurazione di pulizia del log. Il valore predefinito è Abilitato. 'Disabilitato'
'Enabled'

WebApplicationFirewallScrubbingRules

Nome Descrizione Valore
matchVariable Variabile da pulire dai log. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obbligatorio)
selector Quando matchVariable è una raccolta, operatore usato per specificare quali elementi nella raccolta si applica questa regola. string
selectorMatchOperator Quando matchVariable è una raccolta, utilizzare il selettore per specificare gli elementi della raccolta a cui si applica questa regola. 'Equals'
'EqualsAny' (obbligatorio)
state Definisce lo stato della regola di pulizia dei log. Il valore predefinito è Abilitato. 'Disabilitato'
'Enabled'

Modelli di avvio rapido

I modelli di avvio rapido seguenti distribuiscono questo tipo di risorsa.

Modello Descrizione
Create un waf di Azure v2 in gateway applicazione di Azure

Distribuisci in Azure
Questo modello crea un Web application firewall di Azure v2 in gateway applicazione di Azure con due server di Windows Server 2016 nel pool back-end
Cluster del servizio Azure Kubernetes con un gateway NAT e un gateway applicazione

Distribuisci in Azure
Questo esempio illustra come distribuire un cluster del servizio Azure Kubernetes con il gateway NAT per le connessioni in uscita e un gateway applicazione per le connessioni in ingresso.
Frontdoor Standard/Premium con origine gateway applicazione

Distribuisci in Azure
Questo modello crea un criterio Frontdoor Standard/Premium e un'istanza di gateway applicazione e usa un criterio NSG e WAF per verificare che il traffico sia arrivato dall'origine di Frontdoor.
Frontdoor con Istanze di Container e gateway applicazione

Distribuisci in Azure
Questo modello crea un frontdoor Standard/Premium con un gruppo di contenitori e gateway applicazione.
Cluster del servizio Azure Kubernetes con il controller di ingresso gateway applicazione

Distribuisci in Azure
Questo esempio illustra come distribuire un cluster del servizio Azure Kubernetes con gateway applicazione, gateway applicazione Controller in ingresso, Registro Azure Container, Log Analytics e Key Vault
gateway applicazione con i criteri WAF e firewall

Distribuisci in Azure
Questo modello crea un gateway applicazione con WAF configurato insieme a un criterio del firewall

Definizione della risorsa modello di Resource Manager

Il tipo di risorsa ApplicationGatewayWebApplicationFirewallPolicies può essere distribuito con operazioni destinate:

Per un elenco delle proprietà modificate in ogni versione dell'API, vedere log delle modifiche.

Formato di risorsa

Per creare una risorsa Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, aggiungere il codice JSON seguente al modello.

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

Valori delle proprietà

ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrizione Valore
tipo Tipo di risorsa 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies'
apiVersion Versione dell'API risorsa '2023-06-01'
name Nome della risorsa stringa (obbligatoria)
posizione Percorso della risorsa. string
tags Tag di risorse. Dizionario dei nomi e dei valori dei tag. Vedere Tag nei modelli
properties Proprietà dei criteri web application firewall. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

Nome Descrizione Valore
customRules Regole personalizzate all'interno dei criteri. WebApplicationFirewallCustomRule[]
managedRules Descrive la struttura managedRules. ManagedRulesDefinition (obbligatorio)
policySettings CriteriSettings per i criteri. PolicySettings

WebApplicationFirewallCustomRule

Nome Descrizione Valore
azione Tipo di azioni. 'Allow'
'Blocca'
'JSChallenge'
'Log' (obbligatorio)
groupByUserSession Elenco dei gruppi di identificatori di sessione utente in base alle clausole. GroupByUserSession[]
matchConditions Elenco di condizioni di corrispondenza. MatchCondition[] (obbligatorio)
name Nome della risorsa univoca all'interno di un criterio. Questo nome può essere usato per accedere alla risorsa. string

Vincoli:
Lunghezza massima = 128
priority Priorità della regola. Le regole con un valore inferiore verranno valutate prima delle regole con un valore superiore. int (obbligatorio)
rateLimitDuration Durata in cui verranno applicati i criteri limite di frequenza. Si applica solo quando ruleType è RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Soglia limite di frequenza da applicare nel caso ruleType è RateLimitRule. Deve essere maggiore o uguale a 1 INT
ruleType Tipo di regola. 'Invalid'
'MatchRule'
'RateLimitRule' (obbligatorio)
state Descrive se la regola personalizzata è abilitata o disabilitata. Impostazione predefinita Abilitata se non specificata. 'Disabilitato'
'Enabled'

GroupByUserSession

Nome Descrizione Valore
groupByVariables Elenco delle variabili di clausola per gruppo. GroupByVariable[] (obbligatorio)

GroupByVariable

Nome Descrizione Valore
variableName Variabile di clausola Sessione utente. 'ClientAddr'
'GeoLocation'
'Nessuno' (obbligatorio)

MatchCondition

Nome Descrizione Valore
matchValues Valore di corrispondenza. string[] (obbligatorio)
matchVariables Elenco delle variabili di corrispondenza. MatchVariable[] (obbligatorio)
negazioneConditon Se si tratta di una condizione negata o meno. bool
operator Operatore a cui corrispondere. 'Any'
'BeginsWith'
'Contains'
'EndWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obbligatorio)
trasformazioni Elenco di trasformazioni. Matrice di stringhe contenente uno qualsiasi di:
'HtmlEntityDecode'
'Minuscolo'
'RemoveNulls'
'Trim'
'Maiuscolo'
'UrlDecode'
'UrlEncode'

MatchVariable

Nome Descrizione Valore
selector Selettore della variabile di corrispondenza. string
variableName Variabile di corrispondenza. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obbligatorio)

ManagedRulesDefinition

Nome Descrizione Valore
esclusioni Esclusioni applicate ai criteri. OwaspCrsExclusionEntry[]
managedRuleSets Set di regole gestite associate ai criteri. ManagedRuleSet[] (obbligatorio)

OwaspCrsExclusionEntry

Nome Descrizione Valore
esclusioneManagedRuleSets Set di regole gestite associate all'esclusione. ExclusionManagedRuleSet[]
matchVariable Variabile da escludere. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obbligatorio)
selector Quando matchVariable è una raccolta, l'operatore usato per specificare quali elementi della raccolta si applicano a questa esclusione. stringa (obbligatoria)
selectorMatchOperator Quando matchVariable è una raccolta, utilizzare il selettore per specificare gli elementi nella raccolta a cui si applica questa esclusione. 'Contains'
'EndWith'
'Equals'
'EqualsAny'
'StartsWith' (obbligatorio)

ExclusionManagedRuleSet

Nome Descrizione Valore
ruleGroups Definisce i gruppi di regole da applicare al set di regole. ExclusionManagedRuleGroup[]
ruleSetType Definisce il tipo di set di regole da usare. stringa (obbligatoria)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatoria)

ExclusionManagedRuleGroup

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite per l'esclusione. stringa (obbligatorio)
regole Elenco di regole che verranno escluse. Se non è specificato alcun valore, tutte le regole del gruppo verranno escluse. ExclusionManagedRule[]

ExclusionManagedRule

Nome Descrizione Valore
ruleId Identificatore della regola gestita. stringa (obbligatorio)

ManagedRuleSet

Nome Descrizione Valore
ruleGroupOverrides Definisce le sostituzioni del gruppo di regole da applicare al set di regole. ManagedRuleGroupOverride[]
ruleSetType Definisce il tipo di set di regole da utilizzare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

ManagedRuleGroupOverride

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite di cui eseguire l'override. stringa (obbligatorio)
regole Elenco di regole che verranno disabilitate. Se non è specificato alcun valore, tutte le regole nel gruppo verranno disabilitate. ManagedRuleOverride[]

ManagedRuleOverride

Nome Descrizione Valore
azione Descrive l'azione di override da applicare quando la regola corrisponde. 'Consenti'
'AnomalyScoring'
'Blocca'
'JSChallenge'
'Log'
ruleId Identificatore della regola gestita. stringa (obbligatorio)
state Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. 'Disabilitato'
'Enabled'

PolicySettings

Nome Descrizione Valore
customBlockResponseBody Se il tipo di azione è bloccato, il cliente può eseguire l'override del corpo della risposta. Il corpo deve essere specificato nella codifica base64. string

Vincoli:
Lunghezza massima = 32768
Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Se il tipo di azione è bloccato, il cliente può eseguire l'override del codice di stato della risposta. INT

Vincoli:
Valore minimo = 0
fileUploadEnforcement Indica se consentire a WAF di applicare i limiti di caricamento dei file. bool
fileUploadLimitInMb Dimensioni massime di caricamento file in Mb per WAF. INT

Vincoli:
Valore minimo = 0
logScrubbing Per pulire i campi dei log sensibili PolicySettingsLogScrubbing
maxRequestBodySizeInKb Dimensioni massime del corpo della richiesta in Kb per WAF. INT

Vincoli:
Valore minimo = 8
mode Modalità dei criteri. 'Detection'
'Prevenzione'
requestBodyCheck Indica se consentire a WAF di controllare il corpo della richiesta. bool
requestBodyEnforcement Indica se consentire a WAF di applicare i limiti del corpo della richiesta. bool
requestBodyInspectLimitInKB Limite massimo di ispezione in KB per l'ispezione del corpo della richiesta per WAF. INT
state Stato dei criteri. 'Disabilitato'
'Enabled'

PolicySettingsLogScrubbing

Nome Descrizione Valore
scrubbingRules Regole applicate ai log per lo scrubbing. WebApplicationFirewallScrubbingRules[]
state Stato della configurazione dello scrubbing del log. Il valore predefinito è Enabled. 'Disabilitato'
'Enabled'

WebApplicationFirewallScrubbingRules

Nome Descrizione Valore
matchVariable Variabile da pulire dai log. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obbligatorio)
selector Quando matchVariable è una raccolta, l'operatore utilizzato per specificare gli elementi della raccolta a cui si applica questa regola. string
selectorMatchOperator Quando matchVariable è una raccolta, utilizzare il selettore per specificare gli elementi della raccolta a cui si applica questa regola. 'Equals'
'EqualsAny' (obbligatorio)
state Definisce lo stato della regola di pulitura del log. Il valore predefinito è Enabled. 'Disabilitato'
'Enabled'

Modelli di avvio rapido

I modelli di avvio rapido seguenti distribuiscono questo tipo di risorsa.

Modello Descrizione
Create azure WAF v2 in gateway applicazione di Azure

Distribuisci in Azure
Questo modello crea un'istanza di Azure Web application firewall v2 in gateway applicazione di Azure con due server Windows Server 2016 nel pool back-end
Cluster del servizio Azure Kubernetes con un gateway NAT e un gateway applicazione

Distribuisci in Azure
Questo esempio illustra come distribuire un cluster del servizio Azure Kubernetes con il gateway NAT per le connessioni in uscita e un gateway applicazione per le connessioni in ingresso.
Frontdoor Standard/Premium con origine gateway applicazione

Distribuisci in Azure
Questo modello crea un'istanza di Frontdoor Standard/Premium e un'istanza di gateway applicazione e usa un criterio NSG e WAF per verificare che il traffico provengano dall'origine di Frontdoor.
Frontdoor con Istanze di Container e gateway applicazione

Distribuisci in Azure
Questo modello crea un frontdoor Standard/Premium con un gruppo di contenitori e gateway applicazione.
Cluster del servizio Azure Kubernetes con il controller di ingresso gateway applicazione

Distribuisci in Azure
Questo esempio illustra come distribuire un cluster del servizio Azure Kubernetes con gateway applicazione, controller di ingresso gateway applicazione, Registro Azure Container, Log Analytics e Key Vault
gateway applicazione con WAF e criteri firewall

Distribuisci in Azure
Questo modello crea un gateway applicazione con WAF configurato insieme a un criterio firewall

Definizione della risorsa Terraform (provider AzAPI)

Il tipo di risorsa ApplicationGatewayWebApplicationFirewallPolicies può essere distribuito con operazioni destinate:

  • Gruppi di risorse

Per un elenco delle proprietà modificate in ogni versione dell'API, vedere Log delle modifiche.

Formato di risorsa

Per creare una risorsa Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, aggiungere il codice Terraform seguente al modello.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-06-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"
      }
    }
  })
}

Valori delle proprietà

ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrizione Valore
tipo Tipo di risorsa "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-06-01"
name Nome della risorsa stringa (obbligatorio)
posizione Percorso della risorsa. string
parent_id Per eseguire la distribuzione in un gruppo di risorse, usare l'ID del gruppo di risorse. stringa (obbligatorio)
tags Tag delle risorse. Dizionario di nomi e valori di tag.
properties Proprietà dei criteri web application firewall. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

Nome Descrizione Valore
customRules Regole personalizzate all'interno dei criteri. WebApplicationFirewallCustomRule[]
managedRules Descrive la struttura managedRules. ManagedRulesDefinition (obbligatorio)
policySettings PolicySettings per i criteri. PolicySettings

WebApplicationFirewallCustomRule

Nome Descrizione Valore
azione Tipo di azioni. "Consenti"
"Blocca"
"JSChallenge"
"Log" (obbligatorio)
groupByUserSession Elenco di clausole per identificatore di sessione utente. GroupByUserSession[]
matchConditions Elenco di condizioni di corrispondenza. MatchCondition[] (obbligatorio)
name Nome della risorsa univoca all'interno di un criterio. Questo nome può essere usato per accedere alla risorsa. string

Vincoli:
Lunghezza massima = 128
priority Priorità della regola. Le regole con un valore inferiore verranno valutate prima delle regole con un valore più alto. int (obbligatorio)
rateLimitDuration Durata in cui verranno applicati i criteri Limite di frequenza. Si applica solo quando ruleType è RateLimitRule. "FiveMins"
"OneMin"
rateLimitThreshold Soglia limite di frequenza da applicare nel caso in cui ruleType sia RateLimitRule. Deve essere maggiore o uguale a 1 INT
ruleType Tipo di regola. "Non valido"
"MatchRule"
"RateLimitRule" (obbligatorio)
state Descrive se la regola personalizzata è abilitata o disabilitata. Il valore predefinito è Abilitato se non specificato. "Disabilitato"
"Abilitato"

GroupByUserSession

Nome Descrizione Valore
groupByVariables Elenco di variabili della clausola group by. GroupByVariable[] (obbligatorio)

GroupByVariable

Nome Descrizione Valore
variableName Variabile della clausola User Session. "ClientAddr"
"GeoLocation"
"Nessuno" (obbligatorio)

MatchCondition

Nome Descrizione Valore
matchValues Valore di corrispondenza. string[] (obbligatorio)
matchVariables Elenco di variabili di corrispondenza. MatchVariable[] (obbligatorio)
negazioneConditon Indica se si tratta di una condizione negata o meno. bool
operator Operatore di cui trovare la corrispondenza. "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Uguale"
"GeoMatch"
"GreaterThan"
"GreaterThanOrEqual"
"IPMatch"
"LessThan"
"LessThanOrEqual"
"Regex" (obbligatorio)
trasformazioni Elenco di trasformazioni. Matrice di stringhe contenente uno dei seguenti elementi:
"HtmlEntityDecode"
"Minuscolo"
"RemoveNulls"
"Trim"
"Maiuscolo"
"UrlDecode"
"UrlEncode"

MatchVariable

Nome Descrizione Valore
selector Selettore della variabile di corrispondenza. string
variableName Variabile di corrispondenza. "PostArgs"
"QueryString"
"RemoteAddr"
"RequestBody"
"RequestCookies"
"RequestHeaders"
"RequestMethod"
"RequestUri" (obbligatorio)

ManagedRulesDefinition

Nome Descrizione Valore
esclusioni Esclusioni applicate ai criteri. OwaspCrsExclusionEntry[]
managedRuleSets Set di regole gestite associati ai criteri. ManagedRuleSet[] (obbligatorio)

OwaspCrsExclusionEntry

Nome Descrizione Valore
exclusionManagedRuleSets Set di regole gestite associati all'esclusione. ExclusionManagedRuleSet[]
matchVariable Variabile da escludere. "RequestArgKeys"
"RequestArgNames"
"RequestArgValues"
"RequestCookieKeys"
"RequestCookieNames"
"RequestCookieValues"
"RequestHeaderKeys"
"RequestHeaderNames"
"RequestHeaderValues" (obbligatorio)
selector Quando matchVariable è una raccolta, l'operatore utilizzato per specificare gli elementi nella raccolta a cui si applica questa esclusione. stringa (obbligatorio)
selectorMatchOperator Quando matchVariable è una raccolta, utilizzare il selettore per specificare gli elementi nella raccolta a cui si applica questa esclusione. "Contains"
"EndsWith"
"Equals"
"EqualsAny"
"StartsWith" (obbligatorio)

ExclusionManagedRuleSet

Nome Descrizione Valore
ruleGroups Definisce i gruppi di regole da applicare al set di regole. ExclusionManagedRuleGroup[]
ruleSetType Definisce il tipo di set di regole da utilizzare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

ExclusionManagedRuleGroup

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite per l'esclusione. stringa (obbligatorio)
regole Elenco di regole che verranno escluse. Se non è specificato alcun valore, tutte le regole del gruppo verranno escluse. ExclusionManagedRule[]

ExclusionManagedRule

Nome Descrizione Valore
ruleId Identificatore della regola gestita. stringa (obbligatorio)

ManagedRuleSet

Nome Descrizione Valore
ruleGroupOverrides Definisce le sostituzioni del gruppo di regole da applicare al set di regole. ManagedRuleGroupOverride[]
ruleSetType Definisce il tipo di set di regole da utilizzare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

ManagedRuleGroupOverride

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite di cui eseguire l'override. stringa (obbligatorio)
regole Elenco di regole che verranno disabilitate. Se non è specificato alcun valore, tutte le regole nel gruppo verranno disabilitate. ManagedRuleOverride[]

ManagedRuleOverride

Nome Descrizione Valore
azione Descrive l'azione di override da applicare quando la regola corrisponde. "Consenti"
"AnomalyScoring"
"Blocca"
"JSChallenge"
"Log"
ruleId Identificatore della regola gestita. stringa (obbligatorio)
state Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. "Disabilitato"
"Abilitato"

PolicySettings

Nome Descrizione Valore
customBlockResponseBody Se il tipo di azione è bloccato, il cliente può eseguire l'override del corpo della risposta. Il corpo deve essere specificato nella codifica base64. string

Vincoli:
Lunghezza massima = 32768
Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Se il tipo di azione è bloccato, il cliente può eseguire l'override del codice di stato della risposta. INT

Vincoli:
Valore minimo = 0
fileUploadEnforcement Indica se consentire a WAF di applicare i limiti di caricamento dei file. bool
fileUploadLimitInMb Dimensioni massime di caricamento file in Mb per WAF. INT

Vincoli:
Valore minimo = 0
logScrubbing Per pulire i campi dei log sensibili PolicySettingsLogScrubbing
maxRequestBodySizeInKb Dimensioni massime del corpo della richiesta in Kb per WAF. INT

Vincoli:
Valore minimo = 8
mode Modalità dei criteri. "Rilevamento"
"Prevenzione"
requestBodyCheck Indica se consentire a WAF di controllare il corpo della richiesta. bool
requestBodyEnforcement Indica se consentire a WAF di applicare i limiti del corpo della richiesta. bool
requestBodyInspectLimitInKB Limite massimo di ispezione in KB per l'ispezione del corpo della richiesta per WAF. INT
state Stato dei criteri. "Disabilitato"
"Abilitato"

PolicySettingsLogScrubbing

Nome Descrizione Valore
scrubbingRules Regole applicate ai log per lo scrubbing. WebApplicationFirewallScrubbingRules[]
state Stato della configurazione dello scrubbing del log. Il valore predefinito è Enabled. "Disabilitato"
"Abilitato"

WebApplicationFirewallScrubbingRules

Nome Descrizione Valore
matchVariable Variabile da pulire dai log. "RequestArgNames"
"RequestCookieNames"
"RequestHeaderNames"
"RequestIPAddress"
"RequestJSONArgNames"
"RequestPostArgNames" (obbligatorio)
selector Quando matchVariable è una raccolta, l'operatore utilizzato per specificare gli elementi della raccolta a cui si applica questa regola. string
selectorMatchOperator Quando matchVariable è una raccolta, utilizzare il selettore per specificare gli elementi della raccolta a cui si applica questa regola. "Equals"
"EqualsAny" (obbligatorio)
state Definisce lo stato della regola di pulitura del log. Il valore predefinito è Enabled. "Disabilitato"
"Abilitato"