Condividi tramite


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-11-01

Definizione di risorsa Bicep

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

  • gruppi di risorse - Vedere i comandi di distribuzione del gruppo di risorse

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

Formato risorsa

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

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

Valori delle proprietà

ExclusionManagedRule

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

ExclusionManagedRuleGroup

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

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 (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

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)

ManagedRuleGroupOverride

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite di cui eseguire l'override. stringa (obbligatorio)
norme 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 per la regola gestita. stringa (obbligatorio)
stato Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. 'Disabilitato'
'Enabled'

ManagedRulesDefinition

Nome Descrizione Valore
Esclusioni Esclusioni applicate ai criteri. OwaspCrsExclusionEntry[]
managedRuleSets Set di regole gestite associati ai criteri. ManagedRuleSet[] (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 usare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

MatchCondition

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

MatchVariable

Nome Descrizione Valore
selettore Selettore della variabile di corrispondenza. corda
variableName Corrispondenza variabile. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obbligatorio)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrizione Valore
ubicazione Percorso della risorsa. corda
nome Nome della risorsa corda

Vincoli:
Lunghezza massima = (obbligatorio)
proprietà Proprietà dei criteri web application firewall. WebApplicationFirewallPolicyPropertiesFormat
Tag Tag delle risorse Dizionario di nomi e valori di tag. Vedere tag nei modelli

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)
selettore 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, operare sul selettore per specificare gli elementi nella raccolta a cui si applica questa esclusione. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obbligatorio)

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

Vincoli:
Lunghezza massima =
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
jsChallengeCookieExpirationInMins Tempo di scadenza del cookie di verifica javaScript di Web Application Firewall in minuti. Int

Vincoli:
Valore minimo = 5
Valore massimo = 1440
logScrubbing Per eseguire lo scrubing dei campi di log sensibili PolicySettingsLogScrubbing
maxRequestBodySizeInKb Dimensioni massime del corpo della richiesta in Kb per WAF. Int

Vincoli:
Valore minimo = 8
modo 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
stato Stato del criterio. 'Disabilitato'
'Enabled'

PolicySettingsLogScrubbing

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

ResourceTags

Nome Descrizione Valore

WebApplicationFirewallCustomRule

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

Vincoli:
Lunghezza massima =
priorità 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 in cui ruleType sia RateLimitRule. Deve essere maggiore o uguale a 1 Int
ruleType Tipo di regola. 'Invalid'
'MatchRule'
'RateLimitRule' (obbligatorio)
stato Descrive se la regola personalizzata è in stato abilitato o disabilitato. Il valore predefinito è Abilitato se non specificato. 'Disabilitato'
'Enabled'

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

WebApplicationFirewallScrubbingRules

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

Esempi di avvio rapido

Gli esempi di avvio rapido seguenti distribuiscono questo tipo di risorsa.

Bicep File Descrizione
cluster del servizio Azure Kubernetes con un gateway NAT e un gateway applicazione 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.
cluster del servizio Azure Kubernetes con il controller di ingresso del gateway applicazione Questo esempio illustra come distribuire un cluster del servizio Azure Kubernetes con il gateway applicazione, il controller di ingresso del gateway applicazione, registro Azure Container, Log Analytics e Key Vault
gateway applicazione con waf e criteri firewall Questo modello crea un gateway applicazione con WAF configurato insieme a un criterio firewall
Creare un WAF di Azure v2 nel gateway applicazione di Azure Questo modello crea un web application firewall di Azure v2 nel gateway applicazione di Azure con due server Windows Server 2016 nel pool back-end
Frontdoor Standard/Premium con origine del gateway applicazione Questo modello crea un'istanza di Frontdoor Standard/Premium e un'istanza del gateway applicazione e usa un criterio NSG e WAF per verificare che il traffico provenga dall'origine di Frontdoor.
Frontdoor con istanze di Contenitore e gateway applicazione Questo modello crea un frontdoor Standard/Premium con un gruppo di contenitori e un gateway applicazione.

Definizione di risorsa del modello di Resource Manager

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

  • gruppi di risorse - Vedere i comandi di distribuzione del gruppo di risorse

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

Formato risorsa

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

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

Valori delle proprietà

ExclusionManagedRule

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

ExclusionManagedRuleGroup

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

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 (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

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)

ManagedRuleGroupOverride

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite di cui eseguire l'override. stringa (obbligatorio)
norme 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 per la regola gestita. stringa (obbligatorio)
stato Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. 'Disabilitato'
'Enabled'

ManagedRulesDefinition

Nome Descrizione Valore
Esclusioni Esclusioni applicate ai criteri. OwaspCrsExclusionEntry[]
managedRuleSets Set di regole gestite associati ai criteri. ManagedRuleSet[] (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 usare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

MatchCondition

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

MatchVariable

Nome Descrizione Valore
selettore Selettore della variabile di corrispondenza. corda
variableName Corrispondenza variabile. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obbligatorio)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrizione Valore
apiVersion Versione dell'API '2023-11-01'
ubicazione Percorso della risorsa. corda
nome Nome della risorsa corda

Vincoli:
Lunghezza massima = (obbligatorio)
proprietà Proprietà dei criteri web application firewall. WebApplicationFirewallPolicyPropertiesFormat
Tag Tag delle risorse Dizionario di nomi e valori di tag. Vedere tag nei modelli
digitare Tipo di risorsa 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies'

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)
selettore 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, operare sul selettore per specificare gli elementi nella raccolta a cui si applica questa esclusione. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obbligatorio)

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

Vincoli:
Lunghezza massima =
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
jsChallengeCookieExpirationInMins Tempo di scadenza del cookie di verifica javaScript di Web Application Firewall in minuti. Int

Vincoli:
Valore minimo = 5
Valore massimo = 1440
logScrubbing Per eseguire lo scrubing dei campi di log sensibili PolicySettingsLogScrubbing
maxRequestBodySizeInKb Dimensioni massime del corpo della richiesta in Kb per WAF. Int

Vincoli:
Valore minimo = 8
modo 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
stato Stato del criterio. 'Disabilitato'
'Enabled'

PolicySettingsLogScrubbing

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

ResourceTags

Nome Descrizione Valore

WebApplicationFirewallCustomRule

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

Vincoli:
Lunghezza massima =
priorità 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 in cui ruleType sia RateLimitRule. Deve essere maggiore o uguale a 1 Int
ruleType Tipo di regola. 'Invalid'
'MatchRule'
'RateLimitRule' (obbligatorio)
stato Descrive se la regola personalizzata è in stato abilitato o disabilitato. Il valore predefinito è Abilitato se non specificato. 'Disabilitato'
'Enabled'

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

WebApplicationFirewallScrubbingRules

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

Modelli di avvio rapido

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

Sagoma Descrizione
cluster del servizio Azure Kubernetes con un gateway NAT e un gateway applicazione

Distribuire 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.
cluster del servizio Azure Kubernetes con il controller di ingresso del gateway applicazione

Distribuire in Azure
Questo esempio illustra come distribuire un cluster del servizio Azure Kubernetes con il gateway applicazione, il controller di ingresso del gateway applicazione, registro Azure Container, Log Analytics e Key Vault
gateway applicazione con waf e criteri firewall

Distribuire in Azure
Questo modello crea un gateway applicazione con WAF configurato insieme a un criterio firewall
Creare un WAF di Azure v2 nel gateway applicazione di Azure

Distribuire in Azure
Questo modello crea un web application firewall di Azure v2 nel gateway applicazione di Azure con due server Windows Server 2016 nel pool back-end
Frontdoor Standard/Premium con origine del gateway applicazione

Distribuire in Azure
Questo modello crea un'istanza di Frontdoor Standard/Premium e un'istanza del gateway applicazione e usa un criterio NSG e WAF per verificare che il traffico provenga dall'origine di Frontdoor.
Frontdoor con istanze di Contenitore e gateway applicazione

Distribuire in Azure
Questo modello crea un frontdoor Standard/Premium con un gruppo di contenitori e un gateway applicazione.

Definizione di risorsa Terraform (provider AzAPI)

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

  • gruppi di risorse

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

Formato risorsa

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-11-01"
  name = "string"
  location = "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 = {
        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
        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"
  }
}

Valori delle proprietà

ExclusionManagedRule

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

ExclusionManagedRuleGroup

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

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 (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

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)

ManagedRuleGroupOverride

Nome Descrizione Valore
ruleGroupName Gruppo di regole gestite di cui eseguire l'override. stringa (obbligatorio)
norme 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 per la regola gestita. stringa (obbligatorio)
stato Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. 'Disabilitato'
'Enabled'

ManagedRulesDefinition

Nome Descrizione Valore
Esclusioni Esclusioni applicate ai criteri. OwaspCrsExclusionEntry[]
managedRuleSets Set di regole gestite associati ai criteri. ManagedRuleSet[] (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 usare. stringa (obbligatorio)
ruleSetVersion Definisce la versione del set di regole da usare. stringa (obbligatorio)

MatchCondition

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

MatchVariable

Nome Descrizione Valore
selettore Selettore della variabile di corrispondenza. corda
variableName Corrispondenza variabile. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obbligatorio)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrizione Valore
ubicazione Percorso della risorsa. corda
nome Nome della risorsa corda

Vincoli:
Lunghezza massima = (obbligatorio)
proprietà Proprietà dei criteri web application firewall. WebApplicationFirewallPolicyPropertiesFormat
Tag Tag delle risorse Dizionario di nomi e valori di tag.
digitare Tipo di risorsa "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-11-01"

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)
selettore 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, operare sul selettore per specificare gli elementi nella raccolta a cui si applica questa esclusione. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obbligatorio)

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

Vincoli:
Lunghezza massima =
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
jsChallengeCookieExpirationInMins Tempo di scadenza del cookie di verifica javaScript di Web Application Firewall in minuti. Int

Vincoli:
Valore minimo = 5
Valore massimo = 1440
logScrubbing Per eseguire lo scrubing dei campi di log sensibili PolicySettingsLogScrubbing
maxRequestBodySizeInKb Dimensioni massime del corpo della richiesta in Kb per WAF. Int

Vincoli:
Valore minimo = 8
modo 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
stato Stato del criterio. 'Disabilitato'
'Enabled'

PolicySettingsLogScrubbing

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

ResourceTags

Nome Descrizione Valore

WebApplicationFirewallCustomRule

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

Vincoli:
Lunghezza massima =
priorità 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 in cui ruleType sia RateLimitRule. Deve essere maggiore o uguale a 1 Int
ruleType Tipo di regola. 'Invalid'
'MatchRule'
'RateLimitRule' (obbligatorio)
stato Descrive se la regola personalizzata è in stato abilitato o disabilitato. Il valore predefinito è Abilitato se non specificato. 'Disabilitato'
'Enabled'

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

WebApplicationFirewallScrubbingRules

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