Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies
- última
- 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
- 2022-01-01
- 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
Definição de recurso do Bicep
O tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies pode ser implantado com operações direcionadas:
- Grupos de recursos - Consulte comandos de implantação do grupo de recursos
Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.
Formato de recurso
Para criar um recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, adicione o seguinte Bicep ao modelo.
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'
}
}
Valores de propriedade
ExceptionEntry
ExclusionManagedRule
Nome | Descrição | Valor |
---|---|---|
ruleId | Identificador para a regra gerenciada. | cadeia de caracteres (obrigatório) |
ExclusionManagedRuleGroup
ExclusionManagedRuleSet
GroupByUserSession
Nome | Descrição | Valor |
---|---|---|
groupByVariables | Lista de variáveis de grupo por cláusula. | GroupByVariable [] (obrigatório) |
GroupByVariable
Nome | Descrição | Valor |
---|---|---|
variableName | Variável da cláusula Sessão do Usuário. | 'ClientAddr' 'GeoLocation' 'None' (obrigatório) |
ManagedRuleGroupOverride
ManagedRuleOverride
Nome | Descrição | Valor |
---|---|---|
ação | Descreve a ação de substituição a ser aplicada quando a regra corresponde. | 'Permitir' 'AnomalyScoring' 'Bloquear' 'JSChallenge' 'Log' |
ruleId | Identificador para a regra gerenciada. | cadeia de caracteres (obrigatório) |
sensibilidade | Descreve a sensibilidade de substituição a ser aplicada quando a regra corresponde. | 'Alto' 'Baixo' 'Médio' 'None' |
estado | O estado da regra gerenciada. O padrão será Desabilitado se não for especificado. | 'Desabilitado' 'Habilitado' |
ManagedRulesDefinition
Nome | Descrição | Valor |
---|---|---|
Exceções | As exceções que são aplicadas na política. | ExceptionEntry [] |
Exclusões | As Exclusões aplicadas na política. | OwaspCrsExclusionEntry[] |
managedRuleSets | Os conjuntos de regras gerenciadas associados à política. | ManagedRuleSet[] (obrigatório) |
ManagedRuleSet
Nome | Descrição | Valor |
---|---|---|
ruleGroupOverrides | Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. | ManagedRuleGroupOverride |
ruleSetType | Define o tipo de conjunto de regras a ser usado. | cadeia de caracteres (obrigatório) |
ruleSetVersion | Define a versão do conjunto de regras a ser usado. | cadeia de caracteres (obrigatório) |
MatchCondition
MatchVariable
Nome | Descrição | Valor |
---|---|---|
seletor | O seletor da variável de correspondência. | corda |
variableName | Variável de correspondência. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obrigatório) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
Nome | Descrição | Valor |
---|---|---|
localização | Local do recurso. | corda |
nome | O nome do recurso | corda Restrições: Comprimento máximo = (obrigatório) |
Propriedades | Propriedades da política de firewall do aplicativo Web. | WebApplicationFirewallPolicyPropertiesFormat |
Tags | Marcas de recurso | Dicionário de nomes e valores de marca. Consulte Marcas em modelos |
OwaspCrsExclusionEntry
PolicySettings
Nome | Descrição | Valor |
---|---|---|
customBlockResponseBody | Se o tipo de ação for bloqueado, o cliente poderá substituir o corpo da resposta. O corpo deve ser especificado na codificação base64. | corda Restrições: Comprimento máximo = Padrão = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Se o tipo de ação for bloqueado, o cliente poderá substituir o código de status de resposta. | int Restrições: Valor mínimo = 0 |
fileUploadEnforcement | Se permitir que o WAF imponha limites de upload de arquivo. | Bool |
fileUploadLimitInMb | Tamanho máximo de upload de arquivo em Mb para WAF. | int Restrições: Valor mínimo = 0 |
jsChallengeCookieExpirationInMins | Tempo de expiração do cookie do Desafio javaScript do Firewall do Aplicativo Web em minutos. | int Restrições: Valor mínimo = 5 Valor máximo = 1440 |
logScrubbing | Para esfregar campos de log confidenciais | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | Tamanho máximo do corpo da solicitação em Kb para WAF. | int Restrições: Valor mínimo = 8 |
modo | O modo da política. | 'Detecção' 'Prevenção' |
requestBodyCheck | Se o WAF deve permitir que o WAF verifique o corpo da solicitação. | Bool |
requestBodyEnforcement | Se permite que o WAF imponha limites do corpo da solicitação. | Bool |
requestBodyInspectLimitInKB | Limite máximo de inspeção em KB para inspeção do corpo da solicitação para WAF. | int |
estado | O estado da política. | 'Desabilitado' 'Habilitado' |
PolicySettingsLogScrubbing
Nome | Descrição | Valor |
---|---|---|
scrubbingRules | As regras que são aplicadas aos logs para limpeza. | WebApplicationFirewallScrubbingRules[] |
estado | Estado da configuração de limpeza de log. O valor padrão está habilitado. | 'Desabilitado' 'Habilitado' |
ResourceTags
Nome | Descrição | Valor |
---|
WebApplicationFirewallCustomRule
Nome | Descrição | Valor |
---|---|---|
ação | Tipo de Ações. | 'Permitir' 'Bloquear' 'JSChallenge' 'Log' (obrigatório) |
groupByUserSession | Lista de cláusulas de grupo de identificadores de sessão de usuário. | GroupByUserSession [] |
matchConditions | Lista de condições de correspondência. | MatchCondition[] (obrigatório) |
nome | O nome do recurso que é exclusivo dentro de uma política. Esse nome pode ser usado para acessar o recurso. | corda Restrições: Comprimento máximo = |
prioridade | Prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais alto. | int (obrigatório) |
rateLimitDuration | Duração sobre a qual a política limite de taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. | 'FiveMins' 'OneMin' |
rateLimitThreshold | Limite de taxa a ser aplicado caso ruleType seja RateLimitRule. Deve ser maior ou igual a 1 | int |
ruleType | O tipo de regra. | 'Inválido' 'MatchRule' 'RateLimitRule' (obrigatório) |
estado | Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Habilitado se não for especificado. | 'Desabilitado' 'Habilitado' |
WebApplicationFirewallPolicyPropertiesFormat
Nome | Descrição | Valor |
---|---|---|
customRules | As regras personalizadas dentro da política. | WebApplicationFirewallCustomRule[] |
managedRules | Descreve a estrutura managedRules. | ManagedRulesDefinition (obrigatório) |
policySettings | Os PolicySettings para a política. | PolicySettings |
WebApplicationFirewallScrubbingRules
Nome | Descrição | Valor |
---|---|---|
matchVariable | A variável a ser removida dos logs. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obrigatório) |
seletor | Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa regra se aplica. | corda |
selectorMatchOperator | Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. | 'Equals' 'EqualsAny' (obrigatório) |
estado | Define o estado da regra de limpeza de log. O valor padrão está habilitado. | 'Desabilitado' 'Habilitado' |
Exemplos de início rápido
Os exemplos de início rápido a seguir implantam esse tipo de recurso.
Arquivo Bicep | Descrição |
---|---|
cluster do AKS com um Gateway nat e um gateway de aplicativo | Este exemplo mostra como implantar um cluster do AKS com o Gateway de NAT para conexões de saída e um Gateway de Aplicativo para conexões de entrada. |
cluster do AKS com o Controlador de Entrada do Gateway de Aplicativo | Este exemplo mostra como implantar um cluster do AKS com o Gateway de Aplicativo, o Controlador de Entrada do Gateway de Aplicativo, o Registro de Contêiner do Azure, o Log Analytics e o Key Vault |
Gateway de Aplicativo com waf e política de firewall | Este modelo cria um Gateway de Aplicativo com WAF configurado junto com uma política de firewall |
Criar um WAF do Azure v2 no Gateway de Aplicativo do Azure | Este modelo cria um Firewall do Aplicativo Web do Azure v2 no Gateway de Aplicativo do Azure com dois servidores do Windows Server 2016 no pool de back-end |
Front Door Standard/Premium com origem do Gateway de Aplicativo | Esse modelo cria um Front Door Standard/Premium e uma instância do Gateway de Aplicativo e usa uma política de NSG e WAF para validar que o tráfego veio por meio da origem do Front Door. |
Front Door com instâncias de contêiner e gateway de aplicativo | Esse modelo cria um Front Door Standard/Premium com um grupo de contêineres e o Gateway de Aplicativo. |
Definição de recurso de modelo do ARM
O tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies pode ser implantado com operações direcionadas:
- Grupos de recursos - Consulte comandos de implantação do grupo de recursos
Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.
Formato de recurso
Para criar um recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, adicione o JSON a seguir ao modelo.
{
"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"
}
}
Valores de propriedade
ExceptionEntry
ExclusionManagedRule
Nome | Descrição | Valor |
---|---|---|
ruleId | Identificador para a regra gerenciada. | cadeia de caracteres (obrigatório) |
ExclusionManagedRuleGroup
ExclusionManagedRuleSet
GroupByUserSession
Nome | Descrição | Valor |
---|---|---|
groupByVariables | Lista de variáveis de grupo por cláusula. | GroupByVariable [] (obrigatório) |
GroupByVariable
Nome | Descrição | Valor |
---|---|---|
variableName | Variável da cláusula Sessão do Usuário. | 'ClientAddr' 'GeoLocation' 'None' (obrigatório) |
ManagedRuleGroupOverride
ManagedRuleOverride
Nome | Descrição | Valor |
---|---|---|
ação | Descreve a ação de substituição a ser aplicada quando a regra corresponde. | 'Permitir' 'AnomalyScoring' 'Bloquear' 'JSChallenge' 'Log' |
ruleId | Identificador para a regra gerenciada. | cadeia de caracteres (obrigatório) |
sensibilidade | Descreve a sensibilidade de substituição a ser aplicada quando a regra corresponde. | 'Alto' 'Baixo' 'Médio' 'None' |
estado | O estado da regra gerenciada. O padrão será Desabilitado se não for especificado. | 'Desabilitado' 'Habilitado' |
ManagedRulesDefinition
Nome | Descrição | Valor |
---|---|---|
Exceções | As exceções que são aplicadas na política. | ExceptionEntry [] |
Exclusões | As Exclusões aplicadas na política. | OwaspCrsExclusionEntry[] |
managedRuleSets | Os conjuntos de regras gerenciadas associados à política. | ManagedRuleSet[] (obrigatório) |
ManagedRuleSet
Nome | Descrição | Valor |
---|---|---|
ruleGroupOverrides | Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. | ManagedRuleGroupOverride |
ruleSetType | Define o tipo de conjunto de regras a ser usado. | cadeia de caracteres (obrigatório) |
ruleSetVersion | Define a versão do conjunto de regras a ser usado. | cadeia de caracteres (obrigatório) |
MatchCondition
MatchVariable
Nome | Descrição | Valor |
---|---|---|
seletor | O seletor da variável de correspondência. | corda |
variableName | Variável de correspondência. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obrigatório) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
Nome | Descrição | Valor |
---|---|---|
apiVersion | A versão da API | '2024-03-01' |
localização | Local do recurso. | corda |
nome | O nome do recurso | corda Restrições: Comprimento máximo = (obrigatório) |
Propriedades | Propriedades da política de firewall do aplicativo Web. | WebApplicationFirewallPolicyPropertiesFormat |
Tags | Marcas de recurso | Dicionário de nomes e valores de marca. Consulte Marcas em modelos |
tipo | O tipo de recurso | 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies' |
OwaspCrsExclusionEntry
PolicySettings
Nome | Descrição | Valor |
---|---|---|
customBlockResponseBody | Se o tipo de ação for bloqueado, o cliente poderá substituir o corpo da resposta. O corpo deve ser especificado na codificação base64. | corda Restrições: Comprimento máximo = Padrão = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Se o tipo de ação for bloqueado, o cliente poderá substituir o código de status de resposta. | int Restrições: Valor mínimo = 0 |
fileUploadEnforcement | Se permitir que o WAF imponha limites de upload de arquivo. | Bool |
fileUploadLimitInMb | Tamanho máximo de upload de arquivo em Mb para WAF. | int Restrições: Valor mínimo = 0 |
jsChallengeCookieExpirationInMins | Tempo de expiração do cookie do Desafio javaScript do Firewall do Aplicativo Web em minutos. | int Restrições: Valor mínimo = 5 Valor máximo = 1440 |
logScrubbing | Para esfregar campos de log confidenciais | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | Tamanho máximo do corpo da solicitação em Kb para WAF. | int Restrições: Valor mínimo = 8 |
modo | O modo da política. | 'Detecção' 'Prevenção' |
requestBodyCheck | Se o WAF deve permitir que o WAF verifique o corpo da solicitação. | Bool |
requestBodyEnforcement | Se permite que o WAF imponha limites do corpo da solicitação. | Bool |
requestBodyInspectLimitInKB | Limite máximo de inspeção em KB para inspeção do corpo da solicitação para WAF. | int |
estado | O estado da política. | 'Desabilitado' 'Habilitado' |
PolicySettingsLogScrubbing
Nome | Descrição | Valor |
---|---|---|
scrubbingRules | As regras que são aplicadas aos logs para limpeza. | WebApplicationFirewallScrubbingRules[] |
estado | Estado da configuração de limpeza de log. O valor padrão está habilitado. | 'Desabilitado' 'Habilitado' |
ResourceTags
Nome | Descrição | Valor |
---|
WebApplicationFirewallCustomRule
Nome | Descrição | Valor |
---|---|---|
ação | Tipo de Ações. | 'Permitir' 'Bloquear' 'JSChallenge' 'Log' (obrigatório) |
groupByUserSession | Lista de cláusulas de grupo de identificadores de sessão de usuário. | GroupByUserSession [] |
matchConditions | Lista de condições de correspondência. | MatchCondition[] (obrigatório) |
nome | O nome do recurso que é exclusivo dentro de uma política. Esse nome pode ser usado para acessar o recurso. | corda Restrições: Comprimento máximo = |
prioridade | Prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais alto. | int (obrigatório) |
rateLimitDuration | Duração sobre a qual a política limite de taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. | 'FiveMins' 'OneMin' |
rateLimitThreshold | Limite de taxa a ser aplicado caso ruleType seja RateLimitRule. Deve ser maior ou igual a 1 | int |
ruleType | O tipo de regra. | 'Inválido' 'MatchRule' 'RateLimitRule' (obrigatório) |
estado | Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Habilitado se não for especificado. | 'Desabilitado' 'Habilitado' |
WebApplicationFirewallPolicyPropertiesFormat
Nome | Descrição | Valor |
---|---|---|
customRules | As regras personalizadas dentro da política. | WebApplicationFirewallCustomRule[] |
managedRules | Descreve a estrutura managedRules. | ManagedRulesDefinition (obrigatório) |
policySettings | Os PolicySettings para a política. | PolicySettings |
WebApplicationFirewallScrubbingRules
Nome | Descrição | Valor |
---|---|---|
matchVariable | A variável a ser removida dos logs. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obrigatório) |
seletor | Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa regra se aplica. | corda |
selectorMatchOperator | Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. | 'Equals' 'EqualsAny' (obrigatório) |
estado | Define o estado da regra de limpeza de log. O valor padrão está habilitado. | 'Desabilitado' 'Habilitado' |
Modelos de início rápido
Os modelos de início rápido a seguir implantam esse tipo de recurso.
Modelo | Descrição |
---|---|
cluster do AKS com um Gateway nat e um gateway de aplicativo |
Este exemplo mostra como implantar um cluster do AKS com o Gateway de NAT para conexões de saída e um Gateway de Aplicativo para conexões de entrada. |
cluster do AKS com o Controlador de Entrada do Gateway de Aplicativo |
Este exemplo mostra como implantar um cluster do AKS com o Gateway de Aplicativo, o Controlador de Entrada do Gateway de Aplicativo, o Registro de Contêiner do Azure, o Log Analytics e o Key Vault |
Gateway de Aplicativo com waf e política de firewall |
Este modelo cria um Gateway de Aplicativo com WAF configurado junto com uma política de firewall |
Criar um WAF do Azure v2 no Gateway de Aplicativo do Azure |
Este modelo cria um Firewall do Aplicativo Web do Azure v2 no Gateway de Aplicativo do Azure com dois servidores do Windows Server 2016 no pool de back-end |
Front Door Standard/Premium com origem do Gateway de Aplicativo |
Esse modelo cria um Front Door Standard/Premium e uma instância do Gateway de Aplicativo e usa uma política de NSG e WAF para validar que o tráfego veio por meio da origem do Front Door. |
Front Door com instâncias de contêiner e gateway de aplicativo |
Esse modelo cria um Front Door Standard/Premium com um grupo de contêineres e o Gateway de Aplicativo. |
Definição de recurso do Terraform (provedor de AzAPI)
O tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies pode ser implantado com operações direcionadas:
- grupos de recursos
Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.
Formato de recurso
Para criar um recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, adicione o Terraform a seguir ao modelo.
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"
}
}
Valores de propriedade
ExceptionEntry
ExclusionManagedRule
Nome | Descrição | Valor |
---|---|---|
ruleId | Identificador para a regra gerenciada. | cadeia de caracteres (obrigatório) |
ExclusionManagedRuleGroup
ExclusionManagedRuleSet
GroupByUserSession
Nome | Descrição | Valor |
---|---|---|
groupByVariables | Lista de variáveis de grupo por cláusula. | GroupByVariable [] (obrigatório) |
GroupByVariable
Nome | Descrição | Valor |
---|---|---|
variableName | Variável da cláusula Sessão do Usuário. | 'ClientAddr' 'GeoLocation' 'None' (obrigatório) |
ManagedRuleGroupOverride
ManagedRuleOverride
Nome | Descrição | Valor |
---|---|---|
ação | Descreve a ação de substituição a ser aplicada quando a regra corresponde. | 'Permitir' 'AnomalyScoring' 'Bloquear' 'JSChallenge' 'Log' |
ruleId | Identificador para a regra gerenciada. | cadeia de caracteres (obrigatório) |
sensibilidade | Descreve a sensibilidade de substituição a ser aplicada quando a regra corresponde. | 'Alto' 'Baixo' 'Médio' 'None' |
estado | O estado da regra gerenciada. O padrão será Desabilitado se não for especificado. | 'Desabilitado' 'Habilitado' |
ManagedRulesDefinition
Nome | Descrição | Valor |
---|---|---|
Exceções | As exceções que são aplicadas na política. | ExceptionEntry [] |
Exclusões | As Exclusões aplicadas na política. | OwaspCrsExclusionEntry[] |
managedRuleSets | Os conjuntos de regras gerenciadas associados à política. | ManagedRuleSet[] (obrigatório) |
ManagedRuleSet
Nome | Descrição | Valor |
---|---|---|
ruleGroupOverrides | Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. | ManagedRuleGroupOverride |
ruleSetType | Define o tipo de conjunto de regras a ser usado. | cadeia de caracteres (obrigatório) |
ruleSetVersion | Define a versão do conjunto de regras a ser usado. | cadeia de caracteres (obrigatório) |
MatchCondition
MatchVariable
Nome | Descrição | Valor |
---|---|---|
seletor | O seletor da variável de correspondência. | corda |
variableName | Variável de correspondência. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obrigatório) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
Nome | Descrição | Valor |
---|---|---|
localização | Local do recurso. | corda |
nome | O nome do recurso | corda Restrições: Comprimento máximo = (obrigatório) |
Propriedades | Propriedades da política de firewall do aplicativo Web. | WebApplicationFirewallPolicyPropertiesFormat |
Tags | Marcas de recurso | Dicionário de nomes e valores de marca. |
tipo | O tipo de recurso | "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-03-01" |
OwaspCrsExclusionEntry
PolicySettings
Nome | Descrição | Valor |
---|---|---|
customBlockResponseBody | Se o tipo de ação for bloqueado, o cliente poderá substituir o corpo da resposta. O corpo deve ser especificado na codificação base64. | corda Restrições: Comprimento máximo = Padrão = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Se o tipo de ação for bloqueado, o cliente poderá substituir o código de status de resposta. | int Restrições: Valor mínimo = 0 |
fileUploadEnforcement | Se permitir que o WAF imponha limites de upload de arquivo. | Bool |
fileUploadLimitInMb | Tamanho máximo de upload de arquivo em Mb para WAF. | int Restrições: Valor mínimo = 0 |
jsChallengeCookieExpirationInMins | Tempo de expiração do cookie do Desafio javaScript do Firewall do Aplicativo Web em minutos. | int Restrições: Valor mínimo = 5 Valor máximo = 1440 |
logScrubbing | Para esfregar campos de log confidenciais | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | Tamanho máximo do corpo da solicitação em Kb para WAF. | int Restrições: Valor mínimo = 8 |
modo | O modo da política. | 'Detecção' 'Prevenção' |
requestBodyCheck | Se o WAF deve permitir que o WAF verifique o corpo da solicitação. | Bool |
requestBodyEnforcement | Se permite que o WAF imponha limites do corpo da solicitação. | Bool |
requestBodyInspectLimitInKB | Limite máximo de inspeção em KB para inspeção do corpo da solicitação para WAF. | int |
estado | O estado da política. | 'Desabilitado' 'Habilitado' |
PolicySettingsLogScrubbing
Nome | Descrição | Valor |
---|---|---|
scrubbingRules | As regras que são aplicadas aos logs para limpeza. | WebApplicationFirewallScrubbingRules[] |
estado | Estado da configuração de limpeza de log. O valor padrão está habilitado. | 'Desabilitado' 'Habilitado' |
ResourceTags
Nome | Descrição | Valor |
---|
WebApplicationFirewallCustomRule
Nome | Descrição | Valor |
---|---|---|
ação | Tipo de Ações. | 'Permitir' 'Bloquear' 'JSChallenge' 'Log' (obrigatório) |
groupByUserSession | Lista de cláusulas de grupo de identificadores de sessão de usuário. | GroupByUserSession [] |
matchConditions | Lista de condições de correspondência. | MatchCondition[] (obrigatório) |
nome | O nome do recurso que é exclusivo dentro de uma política. Esse nome pode ser usado para acessar o recurso. | corda Restrições: Comprimento máximo = |
prioridade | Prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais alto. | int (obrigatório) |
rateLimitDuration | Duração sobre a qual a política limite de taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. | 'FiveMins' 'OneMin' |
rateLimitThreshold | Limite de taxa a ser aplicado caso ruleType seja RateLimitRule. Deve ser maior ou igual a 1 | int |
ruleType | O tipo de regra. | 'Inválido' 'MatchRule' 'RateLimitRule' (obrigatório) |
estado | Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Habilitado se não for especificado. | 'Desabilitado' 'Habilitado' |
WebApplicationFirewallPolicyPropertiesFormat
Nome | Descrição | Valor |
---|---|---|
customRules | As regras personalizadas dentro da política. | WebApplicationFirewallCustomRule[] |
managedRules | Descreve a estrutura managedRules. | ManagedRulesDefinition (obrigatório) |
policySettings | Os PolicySettings para a política. | PolicySettings |
WebApplicationFirewallScrubbingRules
Nome | Descrição | Valor |
---|---|---|
matchVariable | A variável a ser removida dos logs. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obrigatório) |
seletor | Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa regra se aplica. | corda |
selectorMatchOperator | Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. | 'Equals' 'EqualsAny' (obrigatório) |
estado | Define o estado da regra de limpeza de log. O valor padrão está habilitado. | 'Desabilitado' 'Habilitado' |