Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies
- più recenti
- 2024-03-01
- 2024-01-01
- 2023-11-01
- 2023-09-01
- 2023-06-01
- 2023-05-01
- 2023-04-01
- 2023-02-01
- 2022-11-01
- 2022-09-01
- 2022-07-01
- 2022-05-01
- 01-01-2022
- 2021-08-01
- 2021-05-01
- 2021-03-01
- 2021-02-01
- 2020-11-01
- 2020-08-01
- 2020-07-01
- 2020-06-01
- 2020-05-01
- 2020-04-01
- 2020-03-01
- 2019-12-01
- 2019-11-01
- 2019-09-01
- 2019-08-01
- 2019-07-01
- 2019-06-01
- 2019-04-01
- 2019-02-01
- 2018-12-01
Definizione di risorsa Bicep
Il tipo di risorsa ApplicationGatewayWebApplicationFirewallPolicies può essere distribuito con operazioni destinate a:
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@2024-03-01' = {
location: 'string'
name: 'string'
properties: {
customRules: [
{
action: 'string'
groupByUserSession: [
{
groupByVariables: [
{
variableName: 'string'
}
]
}
]
matchConditions: [
{
matchValues: [
'string'
]
matchVariables: [
{
selector: 'string'
variableName: 'string'
}
]
negationConditon: bool
operator: 'string'
transforms: [
'string'
]
}
]
name: 'string'
priority: int
rateLimitDuration: 'string'
rateLimitThreshold: int
ruleType: 'string'
state: 'string'
}
]
managedRules: {
exceptions: [
{
exceptionManagedRuleSets: [
{
ruleGroups: [
{
ruleGroupName: 'string'
rules: [
{
ruleId: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
valueMatchOperator: 'string'
values: [
'string'
]
}
]
exclusions: [
{
exclusionManagedRuleSets: [
{
ruleGroups: [
{
ruleGroupName: 'string'
rules: [
{
ruleId: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
}
]
managedRuleSets: [
{
ruleGroupOverrides: [
{
ruleGroupName: 'string'
rules: [
{
action: 'string'
ruleId: 'string'
sensitivity: 'string'
state: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
}
policySettings: {
customBlockResponseBody: 'string'
customBlockResponseStatusCode: int
fileUploadEnforcement: bool
fileUploadLimitInMb: int
jsChallengeCookieExpirationInMins: int
logScrubbing: {
scrubbingRules: [
{
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
state: 'string'
}
]
state: 'string'
}
maxRequestBodySizeInKb: int
mode: 'string'
requestBodyCheck: bool
requestBodyEnforcement: bool
requestBodyInspectLimitInKB: int
state: 'string'
}
}
tags: {
{customized property}: 'string'
}
}
Valori delle proprietà
ExceptionEntry
Nome | Descrizione | Valore |
---|---|---|
exceptionManagedRuleSets | Set di regole gestite associati all'eccezione. | ExclusionManagedRuleSet[] |
matchVariable | Variabile in cui viene valutata la condizione di eccezione | 'RemoteAddr' 'RequestHeader' 'RequestURI' (obbligatorio) |
selettore | Quando la corrispondenzaVariable punta a una coppia chiave-valore ,ad esempio RequestHeader, identifica la chiave. | corda |
selectorMatchOperator | Quando la corrispondenzaVariable punta a una coppia chiave-valore (ad esempio, RequestHeader), questa funzione viene eseguita sul selettore | 'Contains' 'EndsWith' 'Equals' 'StartsWith' |
valueMatchOperator | Opera sui valori consentiti per matchVariable | 'Contains' 'EndsWith' 'Equals' 'IPMatch' 'StartsWith' (obbligatorio) |
valori | Valori consentiti per matchVariable | string[] |
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) |
sensibilità | Descrive la riservatezza di override da applicare quando la regola corrisponde. | 'Alto' 'Basso' 'Medium' 'Nessuno' |
stato | Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. | 'Disabilitato' 'Enabled' |
ManagedRulesDefinition
Nome | Descrizione | Valore |
---|---|---|
Eccezioni | Eccezioni applicate ai criteri. | exceptionEntry[] |
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:
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": "2024-03-01",
"name": "string",
"location": "string",
"properties": {
"customRules": [
{
"action": "string",
"groupByUserSession": [
{
"groupByVariables": [
{
"variableName": "string"
}
]
}
],
"matchConditions": [
{
"matchValues": [ "string" ],
"matchVariables": [
{
"selector": "string",
"variableName": "string"
}
],
"negationConditon": "bool",
"operator": "string",
"transforms": [ "string" ]
}
],
"name": "string",
"priority": "int",
"rateLimitDuration": "string",
"rateLimitThreshold": "int",
"ruleType": "string",
"state": "string"
}
],
"managedRules": {
"exceptions": [
{
"exceptionManagedRuleSets": [
{
"ruleGroups": [
{
"ruleGroupName": "string",
"rules": [
{
"ruleId": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
],
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string",
"valueMatchOperator": "string",
"values": [ "string" ]
}
],
"exclusions": [
{
"exclusionManagedRuleSets": [
{
"ruleGroups": [
{
"ruleGroupName": "string",
"rules": [
{
"ruleId": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
],
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string"
}
],
"managedRuleSets": [
{
"ruleGroupOverrides": [
{
"ruleGroupName": "string",
"rules": [
{
"action": "string",
"ruleId": "string",
"sensitivity": "string",
"state": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
]
},
"policySettings": {
"customBlockResponseBody": "string",
"customBlockResponseStatusCode": "int",
"fileUploadEnforcement": "bool",
"fileUploadLimitInMb": "int",
"jsChallengeCookieExpirationInMins": "int",
"logScrubbing": {
"scrubbingRules": [
{
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string",
"state": "string"
}
],
"state": "string"
},
"maxRequestBodySizeInKb": "int",
"mode": "string",
"requestBodyCheck": "bool",
"requestBodyEnforcement": "bool",
"requestBodyInspectLimitInKB": "int",
"state": "string"
}
},
"tags": {
"{customized property}": "string"
}
}
Valori delle proprietà
ExceptionEntry
Nome | Descrizione | Valore |
---|---|---|
exceptionManagedRuleSets | Set di regole gestite associati all'eccezione. | ExclusionManagedRuleSet[] |
matchVariable | Variabile in cui viene valutata la condizione di eccezione | 'RemoteAddr' 'RequestHeader' 'RequestURI' (obbligatorio) |
selettore | Quando la corrispondenzaVariable punta a una coppia chiave-valore ,ad esempio RequestHeader, identifica la chiave. | corda |
selectorMatchOperator | Quando la corrispondenzaVariable punta a una coppia chiave-valore (ad esempio, RequestHeader), questa funzione viene eseguita sul selettore | 'Contains' 'EndsWith' 'Equals' 'StartsWith' |
valueMatchOperator | Opera sui valori consentiti per matchVariable | 'Contains' 'EndsWith' 'Equals' 'IPMatch' 'StartsWith' (obbligatorio) |
valori | Valori consentiti per matchVariable | string[] |
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) |
sensibilità | Descrive la riservatezza di override da applicare quando la regola corrisponde. | 'Alto' 'Basso' 'Medium' 'Nessuno' |
stato | Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. | 'Disabilitato' 'Enabled' |
ManagedRulesDefinition
Nome | Descrizione | Valore |
---|---|---|
Eccezioni | Eccezioni applicate ai criteri. | exceptionEntry[] |
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 | '2024-03-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 |
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 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@2024-03-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 = {
exceptions = [
{
exceptionManagedRuleSets = [
{
ruleGroups = [
{
ruleGroupName = "string"
rules = [
{
ruleId = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
valueMatchOperator = "string"
values = [
"string"
]
}
]
exclusions = [
{
exclusionManagedRuleSets = [
{
ruleGroups = [
{
ruleGroupName = "string"
rules = [
{
ruleId = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
}
]
managedRuleSets = [
{
ruleGroupOverrides = [
{
ruleGroupName = "string"
rules = [
{
action = "string"
ruleId = "string"
sensitivity = "string"
state = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
}
policySettings = {
customBlockResponseBody = "string"
customBlockResponseStatusCode = int
fileUploadEnforcement = bool
fileUploadLimitInMb = int
jsChallengeCookieExpirationInMins = int
logScrubbing = {
scrubbingRules = [
{
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
state = "string"
}
]
state = "string"
}
maxRequestBodySizeInKb = int
mode = "string"
requestBodyCheck = bool
requestBodyEnforcement = bool
requestBodyInspectLimitInKB = int
state = "string"
}
}
})
tags = {
{customized property} = "string"
}
}
Valori delle proprietà
ExceptionEntry
Nome | Descrizione | Valore |
---|---|---|
exceptionManagedRuleSets | Set di regole gestite associati all'eccezione. | ExclusionManagedRuleSet[] |
matchVariable | Variabile in cui viene valutata la condizione di eccezione | 'RemoteAddr' 'RequestHeader' 'RequestURI' (obbligatorio) |
selettore | Quando la corrispondenzaVariable punta a una coppia chiave-valore ,ad esempio RequestHeader, identifica la chiave. | corda |
selectorMatchOperator | Quando la corrispondenzaVariable punta a una coppia chiave-valore (ad esempio, RequestHeader), questa funzione viene eseguita sul selettore | 'Contains' 'EndsWith' 'Equals' 'StartsWith' |
valueMatchOperator | Opera sui valori consentiti per matchVariable | 'Contains' 'EndsWith' 'Equals' 'IPMatch' 'StartsWith' (obbligatorio) |
valori | Valori consentiti per matchVariable | string[] |
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) |
sensibilità | Descrive la riservatezza di override da applicare quando la regola corrisponde. | 'Alto' 'Basso' 'Medium' 'Nessuno' |
stato | Stato della regola gestita. Il valore predefinito è Disabilitato se non specificato. | 'Disabilitato' 'Enabled' |
ManagedRulesDefinition
Nome | Descrizione | Valore |
---|---|---|
Eccezioni | Eccezioni applicate ai criteri. | exceptionEntry[] |
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@2024-03-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' |