Effet auditIfNotExists des définitions Azure Policy
L’effet auditIfNotExists
active l’audit des ressources liées à la ressource qui correspond à la condition if
, mais dont les propriétés ne sont pas spécifiées dans les details
de la condition then
.
Évaluation AuditIfNotExists
auditIfNotExists
s’exécute après qu’un fournisseur de ressources a traité une demande de création ou de mise à jour d’une ressource et a retourné un code d’état de réussite. L’audit se produit s’il n’existe pas de ressources associées ou si les ressources définies par ExistenceCondition
ne s’évaluent pas en true. Pour les nouvelles ressources et celles mises à jour, Azure Policy ajoute une opération Microsoft.Authorization/policies/audit/action
dans le journal d’activité et marque la ressource comme non conforme. Quand il est déclenché, la ressource qui a rempli la condition if
est la ressource qui est marquée comme étant non conforme.
Propriétés d’AuditIfNotExists
La propriété details
des effets AuditIfNotExists a toutes les sous-propriétés qui définissent les ressources associées à mettre en correspondance.
type
(requis)- Spécifie le type de la ressource connexe à évaluer.
- Si
type
est un type de ressource sous la ressource de la conditionif
, la stratégie interroge les ressources de cetype
dans l’étendue de la ressource évaluée. Sinon, la stratégie interroge au sein du même groupe de ressources ou du même abonnement que la ressource évaluée en fonction de laexistenceScope
.
name
(facultatif)- Spécifie le nom exact de la ressource à tester et amène la stratégie à extraire une ressource spécifique au lieu de toutes les ressources du type spécifié.
- Quand les valeurs de la condition pour
if.field.type
etthen.details.type
correspondent,name
devient obligatoire et doit être[field('name')]
, ou[field('fullName')]
pour une ressource enfant. Toutefois, un effet audit doit être considéré à la place.
Remarque
Les segments type
et name
peuvent être combinés pour récupérer des ressources imbriquées de manière générique.
Pour récupérer une ressource spécifique, vous pouvez utiliser "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
et "name": "parentResourceName/nestedResourceName"
.
Pour récupérer une collection de ressources imbriquées, un caractère ?
générique peut être fourni à la place du segment de nom. Par exemple : "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
et "name": "parentResourceName/?"
. Cela peut être combiné avec des fonctions de champ pour accéder aux ressources liées à la ressource évaluée, telles que "name": "[concat(field('name'), '/?')]"
. »
resourceGroupName
(facultatif)- Permet l’évaluation de la ressource connexe provenant d’un groupe de ressources différent.
- Ne s’applique pas si
type
est une ressource qui se trouve sous la ressource de la conditionif
. - La valeur par défaut est le groupe de ressources de la ressource de la condition
if
.
existenceScope
(facultatif)- Les valeurs autorisées sont Subscription et ResourceGroup.
- Définit la portée d’où la ressource connexe évaluée est extraite.
- Ne s’applique pas si
type
est une ressource qui se trouve sous la ressource de la conditionif
. - Pour ResourceGroup, limite le groupe de ressources dans
resourceGroupName
s’il est spécifié. SiresourceGroupName
n’est pas spécifié, limite le groupe de ressources de la conditionif
, ce qui est le comportement par défaut. - Pour Subscription, le traitement interroge l’abonnement entier pour la ressource associée. L’étendue d’affectation doit être définie au niveau de l’abonnement ou supérieur pour une évaluation appropriée.
- La valeur par défaut est ResourceGroup.
evaluationDelay
(facultatif)- Spécifie à quel moment l’existence des ressources associées doit être évaluée. Le délai est utilisé uniquement pour les évaluations qui résultent d’une requête de création ou de mise à jour de ressource.
- Les valeurs autorisées sont
AfterProvisioning
,AfterProvisioningSuccess
,AfterProvisioningFailure
ou une durée ISO 8601 comprise entre 0 et 360 minutes. - Les valeurs de AfterProvisioning inspectent le résultat du provisionnement de la ressource qui a été évaluée dans la condition
if
de la règle de stratégie.AfterProvisioning
s’exécute une fois le provisionnement terminé, quel que soit le résultat. Un provisionnement qui prend plus de 6 heures est considéré comme un échec lors de la détermination des délais d’évaluation de AfterProvisioning. - La valeur par défaut est
PT10M
(10 minutes). - La spécification d’un délai d’évaluation long peut empêcher la mise à jour de l’état de conformité enregistré de la ressource jusqu’au prochain déclencheur d’évaluation.
existenceCondition
(facultatif)- Si elle n’est pas spécifiée, les ressources associées de
type
satisfont à l’effet et ne déclenchent pas l’audit. - Utilise le même langage que la règle de stratégie pour la condition
if
, mais est évaluée individuellement pour chaque ressource associée. - Si une ressource connexe correspondante renvoie true, l’effet est satisfait et ne déclenche pas l’audit.
- Peut utiliser [field()] pour vérifier l’équivalence avec les valeurs dans la condition
if
. - Par exemple, vous pouvez l’utiliser pour vérifier que la ressource parente (dans la condition
if
) se trouve dans le même emplacement de ressource que la ressource associée correspondante.
- Si elle n’est pas spécifiée, les ressources associées de
Exemple AuditIfNotExists
Exemple : évalue les machines virtuelles pour déterminer si l’extension Antimalware existe, puis effectue un audit si l’extension est absente.
{
"if": {
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Azure.Security"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/type",
"equals": "IaaSAntimalware"
}
]
}
}
}
}
Étapes suivantes
- Consultez des exemples à la page Exemples Azure Policy.
- Consultez la Structure de définition Azure Policy.
- Découvrez comment créer des stratégies par programmation.
- Découvrez comment obtenir des données de conformité.
- Découvrez comment corriger des ressources non conformes.
- Passez en revue les groupes d’administration Azure.