Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2024-03-01
- dernière
- 2024-05-01
- 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
Définition de ressource Bicep
Le type de ressource ApplicationGatewayWebApplicationFirewallPolicies peut être déployé avec des opérations qui ciblent :
- groupes de ressources - Consultez commandes de déploiement de groupes de ressources
Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.
Format de ressource
Pour créer une ressource Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, ajoutez le bicep suivant à votre modèle.
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'
}
}
Valeurs de propriété
ExceptionEntry
Nom | Description | Valeur |
---|---|---|
exceptionManagedRuleSets | Ensembles de règles managés associés à l’exception. | ExclusionManagedRuleSet[] |
matchVariable | Variable sur laquelle nous évaluons la condition d’exception | 'RemoteAddr' 'RequestHeader' 'RequestURI' (obligatoire) |
sélecteur | Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela identifie la clé. | corde |
selectorMatchOperator | Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela fonctionne sur le sélecteur | 'Contains' 'EndsWith' 'Equals' 'StartsWith' |
valueMatchOperator | Fonctionne sur les valeurs autorisées pour matchVariable | 'Contains' 'EndsWith' 'Equals' 'IPMatch' 'StartsWith' (obligatoire) |
Valeurs | Valeurs autorisées pour matchVariable | string[] |
ExclusionManagedRule
Nom | Description | Valeur |
---|---|---|
ruleId | Identificateur de la règle managée. | chaîne (obligatoire) |
ExclusionManagedRuleGroup
Nom | Description | Valeur |
---|---|---|
ruleGroupName | Groupe de règles managées pour exclusion. | chaîne (obligatoire) |
règlement | Liste des règles qui seront exclues. Si aucune n’est spécifiée, toutes les règles du groupe sont exclues. | ExclusionManagedRule[] |
ExclusionManagedRuleSet
Nom | Description | Valeur |
---|---|---|
ruleGroups | Définit les groupes de règles à appliquer au jeu de règles. | ExclusionManagedRuleGroup[] |
ruleSetType | Définit le type d’ensemble de règles à utiliser. | chaîne (obligatoire) |
ruleSetVersion | Définit la version du jeu de règles à utiliser. | chaîne (obligatoire) |
GroupByUserSession
Nom | Description | Valeur |
---|---|---|
groupByVariables | Liste des variables de clause group by. | GroupByVariable [] (obligatoire) |
GroupByVariable
Nom | Description | Valeur |
---|---|---|
variableName | Variable de clause User Session. | 'ClientAddr' 'GeoLocation' 'None' (obligatoire) |
ManagedRuleGroupOverride
Nom | Description | Valeur |
---|---|---|
ruleGroupName | Groupe de règles managées à remplacer. | chaîne (obligatoire) |
règlement | Liste des règles qui seront désactivées. Si aucune valeur n’est spécifiée, toutes les règles du groupe sont désactivées. | ManagedRuleOverride[] |
ManagedRuleOverride
Nom | Description | Valeur |
---|---|---|
action | Décrit l’action de remplacement à appliquer lorsque la règle correspond. | 'Autoriser' 'AnomalieScoring' 'Bloquer' 'JSChallenge' 'Log' |
ruleId | Identificateur de la règle managée. | chaîne (obligatoire) |
sensibilité | Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. | 'High' 'Low' 'Medium' 'None' |
état | État de la règle managée. La valeur par défaut est Désactivée si elle n’est pas spécifiée. | 'Désactivé' 'Activé' |
ManagedRulesDefinition
Nom | Description | Valeur |
---|---|---|
Exceptions | Exceptions appliquées à la stratégie. | exceptionEntry[] |
Exclusions | Exclusions appliquées à la stratégie. | OwaspCrsExclusionEntry[] |
managedRuleSets | Ensembles de règles managés associés à la stratégie. | ManagedRuleSet[] (obligatoire) |
ManagedRuleSet
Nom | Description | Valeur |
---|---|---|
ruleGroupOverrides | Définit les remplacements du groupe de règles à appliquer au jeu de règles. | ManagedRuleGroupOverride[] |
ruleSetType | Définit le type d’ensemble de règles à utiliser. | chaîne (obligatoire) |
ruleSetVersion | Définit la version du jeu de règles à utiliser. | chaîne (obligatoire) |
MatchCondition
Nom | Description | Valeur |
---|---|---|
matchValues | Valeur de correspondance. | string[] (obligatoire) |
matchVariables | Liste des variables de correspondance. | MatchVariable[] (obligatoire) |
negationConditon | Qu’il s’agisse d’une condition de non-négation ou non. | Bool |
opérateur | Opérateur à mettre en correspondance. | 'Any' 'BeginsWith' 'Contains' 'EndsWith' 'Égal' 'GeoMatch' 'GreaterThan' 'GreaterThanOrEqual' 'IPMatch' 'LessThan' 'LessThanOrEqual' 'Regex' (obligatoire) |
Transforme | Liste des transformations. | Tableau de chaînes contenant l’un des éléments suivants : 'HtmlEntityDecode' 'Minuscules' 'RemoveNulls' 'Trim' 'Majuscules' 'UrlDecode' 'UrlEncode' |
MatchVariable
Nom | Description | Valeur |
---|---|---|
sélecteur | Sélecteur de variable de correspondance. | corde |
variableName | Mettre en correspondance la variable. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obligatoire) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
Nom | Description | Valeur |
---|---|---|
emplacement | Emplacement des ressources. | corde |
nom | Nom de la ressource | corde Contraintes: Longueur maximale = (obligatoire) |
Propriétés | Propriétés de la stratégie de pare-feu d’applications web. | WebApplicationFirewallPolicyPropertiesFormat |
étiquettes | Balises de ressource | Dictionnaire de noms et de valeurs d’étiquettes. Consultez les balises dans les modèles |
OwaspCrsExclusionEntry
Nom | Description | Valeur |
---|---|---|
exclusionManagedRuleSets | Ensembles de règles managés associés à l’exclusion. | ExclusionManagedRuleSet[] |
matchVariable | Variable à exclure. | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (obligatoire) |
sélecteur | Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection auquel cette exclusion s’applique. | chaîne (obligatoire) |
selectorMatchOperator | Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette exclusion s’applique. | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (obligatoire) |
PolicySettings
Nom | Description | Valeur |
---|---|---|
customBlockResponseBody | Si le type d’action est bloqué, le client peut remplacer le corps de la réponse. Le corps doit être spécifié dans l’encodage base64. | corde Contraintes: Longueur maximale = Modèle = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Si le type d’action est bloqué, le client peut remplacer le code d’état de la réponse. | Int Contraintes: Valeur minimale = 0 |
fileUploadEnforcement | Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de chargement de fichiers. | Bool |
fileUploadLimitInMb | Taille maximale du chargement de fichiers en Mo pour waf. | Int Contraintes: Valeur minimale = 0 |
jsChallengeCookieExpirationInMins | Durée d’expiration du cookie de défi javaScript du pare-feu d’applications web en minutes. | Int Contraintes: Valeur minimale = 5 Valeur maximale = 1440 |
logScrubbing | Pour nettoyer les champs de journal sensibles | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | Taille maximale du corps de la demande en Ko pour WAF. | Int Contraintes: Valeur minimale = 8 |
mode | Mode de la stratégie. | 'Détection' 'Prévention' |
requestBodyCheck | Indique s’il faut autoriser waf à vérifier le corps de la demande. | Bool |
requestBodyEnforcement | Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de corps de requête. | Bool |
requestBodyInspectLimitInKB | Limite d’inspection maximale en Ko pour l’inspection du corps de requête pour waf. | Int |
état | État de la stratégie. | 'Désactivé' 'Activé' |
PolicySettingsLogScrubbing
Nom | Description | Valeur |
---|---|---|
scrubbingRules | Règles appliquées aux journaux d’activité pour le nettoyage. | WebApplicationFirewallScrubbingRules[] |
état | État de la configuration de nettoyage des journaux. La valeur par défaut est Activée. | 'Désactivé' 'Activé' |
ResourceTags
Nom | Description | Valeur |
---|
WebApplicationFirewallCustomRule
Nom | Description | Valeur |
---|---|---|
action | Type d’actions. | 'Autoriser' 'Bloquer' 'JSChallenge' 'Log' (obligatoire) |
groupByUserSession | Liste des clauses de groupe d’identificateurs de session utilisateur. | GroupByUserSession[] |
matchConditions | Liste des conditions de correspondance. | MatchCondition[] (obligatoire) |
nom | Nom de la ressource unique dans une stratégie. Ce nom peut être utilisé pour accéder à la ressource. | corde Contraintes: Longueur maximale = |
priorité | Priorité de la règle. Les règles avec une valeur inférieure sont évaluées avant les règles avec une valeur plus élevée. | int (obligatoire) |
rateLimitDuration | Durée pendant laquelle la stratégie limite de taux sera appliquée. S’applique uniquement lorsque ruleType est RateLimitRule. | 'FiveMins' 'OneMin' |
rateLimitThreshold | Seuil de limite de débit à appliquer dans le cas où ruleType est RateLimitRule. Doit être supérieur ou égal à 1 | Int |
ruleType | Type de règle. | 'Invalid' 'MatchRule' 'RateLimitRule' (obligatoire) |
état | Décrit si la règle personnalisée est activée ou désactivée. La valeur par défaut est Activée si elle n’est pas spécifiée. | 'Désactivé' 'Activé' |
WebApplicationFirewallPolicyPropertiesFormat
Nom | Description | Valeur |
---|---|---|
customRules | Règles personnalisées à l’intérieur de la stratégie. | WebApplicationFirewallCustomRule[] |
managedRules | Décrit la structure managedRules. | ManagedRulesDefinition (obligatoire) |
policySettings | PolicySettings pour la stratégie. | PolicySettings |
WebApplicationFirewallScrubbingRules
Nom | Description | Valeur |
---|---|---|
matchVariable | Variable à frotter à partir des journaux. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obligatoire) |
sélecteur | Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection à laquelle cette règle s’applique. | corde |
selectorMatchOperator | Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auquel cette règle s’applique. | 'Equals' 'EqualsAny' (obligatoire) |
état | Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Activée. | 'Désactivé' 'Activé' |
Exemples de démarrage rapide
Les exemples de démarrage rapide suivants déploient ce type de ressource.
Fichier Bicep | Description |
---|---|
cluster AKS avec une passerelle NAT et un Application Gateway | Cet exemple montre comment déployer un cluster AKS avec NAT Gateway pour les connexions sortantes et une passerelle Application Gateway pour les connexions entrantes. |
cluster AKS avec le contrôleur d’entrée Application Gateway | Cet exemple montre comment déployer un cluster AKS avec Application Gateway, Application Gateway Ingress Controller, Azure Container Registry, Log Analytics et Key Vault |
Application Gateway avec le pare-feu d’applications web et la stratégie de pare-feu | Ce modèle crée une passerelle Application Gateway avec WAF configurée avec une stratégie de pare-feu |
Créer un waf Azure v2 sur Azure Application Gateway | Ce modèle crée un pare-feu d’applications web Azure v2 sur Azure Application Gateway avec deux serveurs Windows Server 2016 dans le pool principal |
Front Door Standard/Premium avec l’origine d’Application Gateway | Ce modèle crée une instance Front Door Standard/Premium et Application Gateway et utilise un groupe de sécurité réseau et une stratégie WAF pour vérifier que le trafic est passé par l’origine Front Door. |
Front Door avec container Instances et application Gateway | Ce modèle crée un Front Door Standard/Premium avec un groupe de conteneurs et Application Gateway. |
Définition de ressource de modèle ARM
Le type de ressource ApplicationGatewayWebApplicationFirewallPolicies peut être déployé avec des opérations qui ciblent :
- groupes de ressources - Consultez commandes de déploiement de groupes de ressources
Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.
Format de ressource
Pour créer une ressource Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, ajoutez le code JSON suivant à votre modèle.
{
"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"
}
}
Valeurs de propriété
ExceptionEntry
Nom | Description | Valeur |
---|---|---|
exceptionManagedRuleSets | Ensembles de règles managés associés à l’exception. | ExclusionManagedRuleSet[] |
matchVariable | Variable sur laquelle nous évaluons la condition d’exception | 'RemoteAddr' 'RequestHeader' 'RequestURI' (obligatoire) |
sélecteur | Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela identifie la clé. | corde |
selectorMatchOperator | Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela fonctionne sur le sélecteur | 'Contains' 'EndsWith' 'Equals' 'StartsWith' |
valueMatchOperator | Fonctionne sur les valeurs autorisées pour matchVariable | 'Contains' 'EndsWith' 'Equals' 'IPMatch' 'StartsWith' (obligatoire) |
Valeurs | Valeurs autorisées pour matchVariable | string[] |
ExclusionManagedRule
Nom | Description | Valeur |
---|---|---|
ruleId | Identificateur de la règle managée. | chaîne (obligatoire) |
ExclusionManagedRuleGroup
Nom | Description | Valeur |
---|---|---|
ruleGroupName | Groupe de règles managées pour exclusion. | chaîne (obligatoire) |
règlement | Liste des règles qui seront exclues. Si aucune n’est spécifiée, toutes les règles du groupe sont exclues. | ExclusionManagedRule[] |
ExclusionManagedRuleSet
Nom | Description | Valeur |
---|---|---|
ruleGroups | Définit les groupes de règles à appliquer au jeu de règles. | ExclusionManagedRuleGroup[] |
ruleSetType | Définit le type d’ensemble de règles à utiliser. | chaîne (obligatoire) |
ruleSetVersion | Définit la version du jeu de règles à utiliser. | chaîne (obligatoire) |
GroupByUserSession
Nom | Description | Valeur |
---|---|---|
groupByVariables | Liste des variables de clause group by. | GroupByVariable [] (obligatoire) |
GroupByVariable
Nom | Description | Valeur |
---|---|---|
variableName | Variable de clause User Session. | 'ClientAddr' 'GeoLocation' 'None' (obligatoire) |
ManagedRuleGroupOverride
Nom | Description | Valeur |
---|---|---|
ruleGroupName | Groupe de règles managées à remplacer. | chaîne (obligatoire) |
règlement | Liste des règles qui seront désactivées. Si aucune valeur n’est spécifiée, toutes les règles du groupe sont désactivées. | ManagedRuleOverride[] |
ManagedRuleOverride
Nom | Description | Valeur |
---|---|---|
action | Décrit l’action de remplacement à appliquer lorsque la règle correspond. | 'Autoriser' 'AnomalieScoring' 'Bloquer' 'JSChallenge' 'Log' |
ruleId | Identificateur de la règle managée. | chaîne (obligatoire) |
sensibilité | Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. | 'High' 'Low' 'Medium' 'None' |
état | État de la règle managée. La valeur par défaut est Désactivée si elle n’est pas spécifiée. | 'Désactivé' 'Activé' |
ManagedRulesDefinition
Nom | Description | Valeur |
---|---|---|
Exceptions | Exceptions appliquées à la stratégie. | exceptionEntry[] |
Exclusions | Exclusions appliquées à la stratégie. | OwaspCrsExclusionEntry[] |
managedRuleSets | Ensembles de règles managés associés à la stratégie. | ManagedRuleSet[] (obligatoire) |
ManagedRuleSet
Nom | Description | Valeur |
---|---|---|
ruleGroupOverrides | Définit les remplacements du groupe de règles à appliquer au jeu de règles. | ManagedRuleGroupOverride[] |
ruleSetType | Définit le type d’ensemble de règles à utiliser. | chaîne (obligatoire) |
ruleSetVersion | Définit la version du jeu de règles à utiliser. | chaîne (obligatoire) |
MatchCondition
Nom | Description | Valeur |
---|---|---|
matchValues | Valeur de correspondance. | string[] (obligatoire) |
matchVariables | Liste des variables de correspondance. | MatchVariable[] (obligatoire) |
negationConditon | Qu’il s’agisse d’une condition de non-négation ou non. | Bool |
opérateur | Opérateur à mettre en correspondance. | 'Any' 'BeginsWith' 'Contains' 'EndsWith' 'Égal' 'GeoMatch' 'GreaterThan' 'GreaterThanOrEqual' 'IPMatch' 'LessThan' 'LessThanOrEqual' 'Regex' (obligatoire) |
Transforme | Liste des transformations. | Tableau de chaînes contenant l’un des éléments suivants : 'HtmlEntityDecode' 'Minuscules' 'RemoveNulls' 'Trim' 'Majuscules' 'UrlDecode' 'UrlEncode' |
MatchVariable
Nom | Description | Valeur |
---|---|---|
sélecteur | Sélecteur de variable de correspondance. | corde |
variableName | Mettre en correspondance la variable. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obligatoire) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
Nom | Description | Valeur |
---|---|---|
apiVersion | Version de l’API | '2024-03-01' |
emplacement | Emplacement des ressources. | corde |
nom | Nom de la ressource | corde Contraintes: Longueur maximale = (obligatoire) |
Propriétés | Propriétés de la stratégie de pare-feu d’applications web. | WebApplicationFirewallPolicyPropertiesFormat |
étiquettes | Balises de ressource | Dictionnaire de noms et de valeurs d’étiquettes. Consultez les balises dans les modèles |
type | Type de ressource | 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies' |
OwaspCrsExclusionEntry
Nom | Description | Valeur |
---|---|---|
exclusionManagedRuleSets | Ensembles de règles managés associés à l’exclusion. | ExclusionManagedRuleSet[] |
matchVariable | Variable à exclure. | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (obligatoire) |
sélecteur | Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection auquel cette exclusion s’applique. | chaîne (obligatoire) |
selectorMatchOperator | Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette exclusion s’applique. | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (obligatoire) |
PolicySettings
Nom | Description | Valeur |
---|---|---|
customBlockResponseBody | Si le type d’action est bloqué, le client peut remplacer le corps de la réponse. Le corps doit être spécifié dans l’encodage base64. | corde Contraintes: Longueur maximale = Modèle = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Si le type d’action est bloqué, le client peut remplacer le code d’état de la réponse. | Int Contraintes: Valeur minimale = 0 |
fileUploadEnforcement | Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de chargement de fichiers. | Bool |
fileUploadLimitInMb | Taille maximale du chargement de fichiers en Mo pour waf. | Int Contraintes: Valeur minimale = 0 |
jsChallengeCookieExpirationInMins | Durée d’expiration du cookie de défi javaScript du pare-feu d’applications web en minutes. | Int Contraintes: Valeur minimale = 5 Valeur maximale = 1440 |
logScrubbing | Pour nettoyer les champs de journal sensibles | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | Taille maximale du corps de la demande en Ko pour WAF. | Int Contraintes: Valeur minimale = 8 |
mode | Mode de la stratégie. | 'Détection' 'Prévention' |
requestBodyCheck | Indique s’il faut autoriser waf à vérifier le corps de la demande. | Bool |
requestBodyEnforcement | Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de corps de requête. | Bool |
requestBodyInspectLimitInKB | Limite d’inspection maximale en Ko pour l’inspection du corps de requête pour waf. | Int |
état | État de la stratégie. | 'Désactivé' 'Activé' |
PolicySettingsLogScrubbing
Nom | Description | Valeur |
---|---|---|
scrubbingRules | Règles appliquées aux journaux d’activité pour le nettoyage. | WebApplicationFirewallScrubbingRules[] |
état | État de la configuration de nettoyage des journaux. La valeur par défaut est Activée. | 'Désactivé' 'Activé' |
ResourceTags
Nom | Description | Valeur |
---|
WebApplicationFirewallCustomRule
Nom | Description | Valeur |
---|---|---|
action | Type d’actions. | 'Autoriser' 'Bloquer' 'JSChallenge' 'Log' (obligatoire) |
groupByUserSession | Liste des clauses de groupe d’identificateurs de session utilisateur. | GroupByUserSession[] |
matchConditions | Liste des conditions de correspondance. | MatchCondition[] (obligatoire) |
nom | Nom de la ressource unique dans une stratégie. Ce nom peut être utilisé pour accéder à la ressource. | corde Contraintes: Longueur maximale = |
priorité | Priorité de la règle. Les règles avec une valeur inférieure sont évaluées avant les règles avec une valeur plus élevée. | int (obligatoire) |
rateLimitDuration | Durée pendant laquelle la stratégie limite de taux sera appliquée. S’applique uniquement lorsque ruleType est RateLimitRule. | 'FiveMins' 'OneMin' |
rateLimitThreshold | Seuil de limite de débit à appliquer dans le cas où ruleType est RateLimitRule. Doit être supérieur ou égal à 1 | Int |
ruleType | Type de règle. | 'Invalid' 'MatchRule' 'RateLimitRule' (obligatoire) |
état | Décrit si la règle personnalisée est activée ou désactivée. La valeur par défaut est Activée si elle n’est pas spécifiée. | 'Désactivé' 'Activé' |
WebApplicationFirewallPolicyPropertiesFormat
Nom | Description | Valeur |
---|---|---|
customRules | Règles personnalisées à l’intérieur de la stratégie. | WebApplicationFirewallCustomRule[] |
managedRules | Décrit la structure managedRules. | ManagedRulesDefinition (obligatoire) |
policySettings | PolicySettings pour la stratégie. | PolicySettings |
WebApplicationFirewallScrubbingRules
Nom | Description | Valeur |
---|---|---|
matchVariable | Variable à frotter à partir des journaux. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obligatoire) |
sélecteur | Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection à laquelle cette règle s’applique. | corde |
selectorMatchOperator | Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auquel cette règle s’applique. | 'Equals' 'EqualsAny' (obligatoire) |
état | Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Activée. | 'Désactivé' 'Activé' |
Modèles de démarrage rapide
Les modèles de démarrage rapide suivants déploient ce type de ressource.
Modèle | Description |
---|---|
cluster AKS avec une passerelle NAT et un Application Gateway |
Cet exemple montre comment déployer un cluster AKS avec NAT Gateway pour les connexions sortantes et une passerelle Application Gateway pour les connexions entrantes. |
cluster AKS avec le contrôleur d’entrée Application Gateway |
Cet exemple montre comment déployer un cluster AKS avec Application Gateway, Application Gateway Ingress Controller, Azure Container Registry, Log Analytics et Key Vault |
Application Gateway avec le pare-feu d’applications web et la stratégie de pare-feu |
Ce modèle crée une passerelle Application Gateway avec WAF configurée avec une stratégie de pare-feu |
Créer un waf Azure v2 sur Azure Application Gateway |
Ce modèle crée un pare-feu d’applications web Azure v2 sur Azure Application Gateway avec deux serveurs Windows Server 2016 dans le pool principal |
Front Door Standard/Premium avec l’origine d’Application Gateway |
Ce modèle crée une instance Front Door Standard/Premium et Application Gateway et utilise un groupe de sécurité réseau et une stratégie WAF pour vérifier que le trafic est passé par l’origine Front Door. |
Front Door avec container Instances et application Gateway |
Ce modèle crée un Front Door Standard/Premium avec un groupe de conteneurs et Application Gateway. |
Définition de ressource Terraform (fournisseur AzAPI)
Le type de ressource ApplicationGatewayWebApplicationFirewallPolicies peut être déployé avec des opérations qui ciblent :
- groupes de ressources
Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.
Format de ressource
Pour créer une ressource Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, ajoutez la terraform suivante à votre modèle.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-03-01"
name = "string"
location = "string"
tags = {
{customized property} = "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"
}
}
})
}
Valeurs de propriété
ExceptionEntry
Nom | Description | Valeur |
---|---|---|
exceptionManagedRuleSets | Ensembles de règles managés associés à l’exception. | ExclusionManagedRuleSet[] |
matchVariable | Variable sur laquelle nous évaluons la condition d’exception | 'RemoteAddr' 'RequestHeader' 'RequestURI' (obligatoire) |
sélecteur | Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela identifie la clé. | corde |
selectorMatchOperator | Lorsque le matchVariable pointe vers une paire clé-valeur (par exemple, RequestHeader), cela fonctionne sur le sélecteur | 'Contains' 'EndsWith' 'Equals' 'StartsWith' |
valueMatchOperator | Fonctionne sur les valeurs autorisées pour matchVariable | 'Contains' 'EndsWith' 'Equals' 'IPMatch' 'StartsWith' (obligatoire) |
Valeurs | Valeurs autorisées pour matchVariable | string[] |
ExclusionManagedRule
Nom | Description | Valeur |
---|---|---|
ruleId | Identificateur de la règle managée. | chaîne (obligatoire) |
ExclusionManagedRuleGroup
Nom | Description | Valeur |
---|---|---|
ruleGroupName | Groupe de règles managées pour exclusion. | chaîne (obligatoire) |
règlement | Liste des règles qui seront exclues. Si aucune n’est spécifiée, toutes les règles du groupe sont exclues. | ExclusionManagedRule[] |
ExclusionManagedRuleSet
Nom | Description | Valeur |
---|---|---|
ruleGroups | Définit les groupes de règles à appliquer au jeu de règles. | ExclusionManagedRuleGroup[] |
ruleSetType | Définit le type d’ensemble de règles à utiliser. | chaîne (obligatoire) |
ruleSetVersion | Définit la version du jeu de règles à utiliser. | chaîne (obligatoire) |
GroupByUserSession
Nom | Description | Valeur |
---|---|---|
groupByVariables | Liste des variables de clause group by. | GroupByVariable [] (obligatoire) |
GroupByVariable
Nom | Description | Valeur |
---|---|---|
variableName | Variable de clause User Session. | 'ClientAddr' 'GeoLocation' 'None' (obligatoire) |
ManagedRuleGroupOverride
Nom | Description | Valeur |
---|---|---|
ruleGroupName | Groupe de règles managées à remplacer. | chaîne (obligatoire) |
règlement | Liste des règles qui seront désactivées. Si aucune valeur n’est spécifiée, toutes les règles du groupe sont désactivées. | ManagedRuleOverride[] |
ManagedRuleOverride
Nom | Description | Valeur |
---|---|---|
action | Décrit l’action de remplacement à appliquer lorsque la règle correspond. | 'Autoriser' 'AnomalieScoring' 'Bloquer' 'JSChallenge' 'Log' |
ruleId | Identificateur de la règle managée. | chaîne (obligatoire) |
sensibilité | Décrit la sensibilité de remplacement à appliquer lorsque la règle correspond. | 'High' 'Low' 'Medium' 'None' |
état | État de la règle managée. La valeur par défaut est Désactivée si elle n’est pas spécifiée. | 'Désactivé' 'Activé' |
ManagedRulesDefinition
Nom | Description | Valeur |
---|---|---|
Exceptions | Exceptions appliquées à la stratégie. | exceptionEntry[] |
Exclusions | Exclusions appliquées à la stratégie. | OwaspCrsExclusionEntry[] |
managedRuleSets | Ensembles de règles managés associés à la stratégie. | ManagedRuleSet[] (obligatoire) |
ManagedRuleSet
Nom | Description | Valeur |
---|---|---|
ruleGroupOverrides | Définit les remplacements du groupe de règles à appliquer au jeu de règles. | ManagedRuleGroupOverride[] |
ruleSetType | Définit le type d’ensemble de règles à utiliser. | chaîne (obligatoire) |
ruleSetVersion | Définit la version du jeu de règles à utiliser. | chaîne (obligatoire) |
MatchCondition
Nom | Description | Valeur |
---|---|---|
matchValues | Valeur de correspondance. | string[] (obligatoire) |
matchVariables | Liste des variables de correspondance. | MatchVariable[] (obligatoire) |
negationConditon | Qu’il s’agisse d’une condition de non-négation ou non. | Bool |
opérateur | Opérateur à mettre en correspondance. | 'Any' 'BeginsWith' 'Contains' 'EndsWith' 'Égal' 'GeoMatch' 'GreaterThan' 'GreaterThanOrEqual' 'IPMatch' 'LessThan' 'LessThanOrEqual' 'Regex' (obligatoire) |
Transforme | Liste des transformations. | Tableau de chaînes contenant l’un des éléments suivants : 'HtmlEntityDecode' 'Minuscules' 'RemoveNulls' 'Trim' 'Majuscules' 'UrlDecode' 'UrlEncode' |
MatchVariable
Nom | Description | Valeur |
---|---|---|
sélecteur | Sélecteur de variable de correspondance. | corde |
variableName | Mettre en correspondance la variable. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obligatoire) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
Nom | Description | Valeur |
---|---|---|
emplacement | Emplacement des ressources. | corde |
nom | Nom de la ressource | corde Contraintes: Longueur maximale = (obligatoire) |
Propriétés | Propriétés de la stratégie de pare-feu d’applications web. | WebApplicationFirewallPolicyPropertiesFormat |
étiquettes | Balises de ressource | Dictionnaire de noms et de valeurs d’étiquettes. |
type | Type de ressource | « Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-03-01 » |
OwaspCrsExclusionEntry
Nom | Description | Valeur |
---|---|---|
exclusionManagedRuleSets | Ensembles de règles managés associés à l’exclusion. | ExclusionManagedRuleSet[] |
matchVariable | Variable à exclure. | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (obligatoire) |
sélecteur | Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection auquel cette exclusion s’applique. | chaîne (obligatoire) |
selectorMatchOperator | Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auxquels cette exclusion s’applique. | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (obligatoire) |
PolicySettings
Nom | Description | Valeur |
---|---|---|
customBlockResponseBody | Si le type d’action est bloqué, le client peut remplacer le corps de la réponse. Le corps doit être spécifié dans l’encodage base64. | corde Contraintes: Longueur maximale = Modèle = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Si le type d’action est bloqué, le client peut remplacer le code d’état de la réponse. | Int Contraintes: Valeur minimale = 0 |
fileUploadEnforcement | Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de chargement de fichiers. | Bool |
fileUploadLimitInMb | Taille maximale du chargement de fichiers en Mo pour waf. | Int Contraintes: Valeur minimale = 0 |
jsChallengeCookieExpirationInMins | Durée d’expiration du cookie de défi javaScript du pare-feu d’applications web en minutes. | Int Contraintes: Valeur minimale = 5 Valeur maximale = 1440 |
logScrubbing | Pour nettoyer les champs de journal sensibles | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | Taille maximale du corps de la demande en Ko pour WAF. | Int Contraintes: Valeur minimale = 8 |
mode | Mode de la stratégie. | 'Détection' 'Prévention' |
requestBodyCheck | Indique s’il faut autoriser waf à vérifier le corps de la demande. | Bool |
requestBodyEnforcement | Indique si le pare-feu d’applications web (WAF) doit appliquer des limites de corps de requête. | Bool |
requestBodyInspectLimitInKB | Limite d’inspection maximale en Ko pour l’inspection du corps de requête pour waf. | Int |
état | État de la stratégie. | 'Désactivé' 'Activé' |
PolicySettingsLogScrubbing
Nom | Description | Valeur |
---|---|---|
scrubbingRules | Règles appliquées aux journaux d’activité pour le nettoyage. | WebApplicationFirewallScrubbingRules[] |
état | État de la configuration de nettoyage des journaux. La valeur par défaut est Activée. | 'Désactivé' 'Activé' |
ResourceTags
Nom | Description | Valeur |
---|
WebApplicationFirewallCustomRule
Nom | Description | Valeur |
---|---|---|
action | Type d’actions. | 'Autoriser' 'Bloquer' 'JSChallenge' 'Log' (obligatoire) |
groupByUserSession | Liste des clauses de groupe d’identificateurs de session utilisateur. | GroupByUserSession[] |
matchConditions | Liste des conditions de correspondance. | MatchCondition[] (obligatoire) |
nom | Nom de la ressource unique dans une stratégie. Ce nom peut être utilisé pour accéder à la ressource. | corde Contraintes: Longueur maximale = |
priorité | Priorité de la règle. Les règles avec une valeur inférieure sont évaluées avant les règles avec une valeur plus élevée. | int (obligatoire) |
rateLimitDuration | Durée pendant laquelle la stratégie limite de taux sera appliquée. S’applique uniquement lorsque ruleType est RateLimitRule. | 'FiveMins' 'OneMin' |
rateLimitThreshold | Seuil de limite de débit à appliquer dans le cas où ruleType est RateLimitRule. Doit être supérieur ou égal à 1 | Int |
ruleType | Type de règle. | 'Invalid' 'MatchRule' 'RateLimitRule' (obligatoire) |
état | Décrit si la règle personnalisée est activée ou désactivée. La valeur par défaut est Activée si elle n’est pas spécifiée. | 'Désactivé' 'Activé' |
WebApplicationFirewallPolicyPropertiesFormat
Nom | Description | Valeur |
---|---|---|
customRules | Règles personnalisées à l’intérieur de la stratégie. | WebApplicationFirewallCustomRule[] |
managedRules | Décrit la structure managedRules. | ManagedRulesDefinition (obligatoire) |
policySettings | PolicySettings pour la stratégie. | PolicySettings |
WebApplicationFirewallScrubbingRules
Nom | Description | Valeur |
---|---|---|
matchVariable | Variable à frotter à partir des journaux. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obligatoire) |
sélecteur | Lorsque matchVariable est une collection, l’opérateur utilisé pour spécifier les éléments de la collection à laquelle cette règle s’applique. | corde |
selectorMatchOperator | Lorsque matchVariable est une collection, utilisez le sélecteur pour spécifier les éléments de la collection auquel cette règle s’applique. | 'Equals' 'EqualsAny' (obligatoire) |
état | Définit l’état de la règle de nettoyage des journaux. La valeur par défaut est Activée. | 'Désactivé' 'Activé' |