Partager via


Effet d’audit des définitions d'Azure Policy

L’effet audit est utilisé pour créer un événement d’avertissement dans le journal d’activité lors de l’évaluation d’une ressource non conforme, mais il n’arrête pas la requête.

Évaluation de l’audit

L’audit est le dernier effet vérifié par Azure Policy lors de la création ou de la mise à jour d’une ressource. Pour un mode Resource Manager, Azure Policy envoie ensuite la ressource au fournisseur de ressources. Lors de l’évaluation d’une demande de création ou de mise à jour d’une ressource, Azure Policy ajoute une Microsoft.Authorization/policies/audit/action opération au journal d’activité et marque la ressource comme non conforme. Pendant un cycle d’évaluation de conformité standard, seul l’état de conformité de la ressource est mis à jour.

Propriétés de l’Audit

Pour un mode Resource Manager, l’effet d’audit n’a aucune autre propriété à utiliser dans la then condition de la définition de stratégie.

Pour un mode fournisseur de ressources de Microsoft.Kubernetes.Data, l’effet d’audit a les sous-propriétés suivantes de details. L’utilisation de templateInfo est requise pour les définitions de stratégie nouvelles ou mises à jour car constraintTemplate est obsolète.

  • templateInfo (requis)

    • Impossible à utiliser avec constraintTemplate.
    • sourceType (requis)
      • Définit le type de source du modèle de contrainte. Valeurs autorisées : PublicURL ou Base64Encoded.

      • Si PublicURL est associé à la propriété url, cela permet de fournir l’emplacement du modèle de contrainte. L'emplacement doit être accessible publiquement.

        Avertissement

        N’utilisez pas d’URI SAS, de jetons d’URL ou d’autres éléments susceptibles d’exposer des secrets en texte brut.

      • Si Base64Encoded, associé à la propriété content pour fournir le modèle de contrainte encodé en base 64. Consultez Créer une définition de stratégie à partir d’un modèle de contrainte pour créer une définition personnalisée à partir d’un modèle de contrainte OPA (Open Policy Agent) Gatekeeper v3 existant.

  • constraint (déconseillé)

    • Impossible à utiliser avec templateInfo.
    • Implémentation CRD du modèle de contrainte. Utilise les paramètres transmis via values as {{ .Values.<valuename> }}. Dans l’exemple 2 ci-dessous, ces valeurs sont {{ .Values.excludedNamespaces }} et {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (déconseillé)

    • Impossible à utiliser avec templateInfo.
    • Doit être remplacé templateInfo par lors de la création ou de la mise à jour d’une définition de stratégie.
    • Modèle de contrainte CustomResourceDefinition (CRD) qui définit de nouvelles contraintes. Le modèle définit la logique Rego, le schéma de contrainte et les paramètres de contrainte transmis à values partir d’Azure Policy. Pour plus d’informations, consultez les contraintes Gatekeeper.
  • constraintInfo (facultatif)

    • Impossible d’utiliser constraint, constraintTemplate, apiGroups, kinds, scope, namespaces, excludedNamespaces ou labelSelector.
    • Si constraintInfo n’est pas fourni, la contrainte peut être générée à partir de templateInfo et de la stratégie.
    • sourceType (requis)
      • Définit le type de source pour la contrainte. Valeurs autorisées : PublicURL ou Base64Encoded.

      • Si PublicURL, jumelé à la propriété url pour fournir l’emplacement de la contrainte. L'emplacement doit être accessible publiquement.

        Avertissement

        N’utilisez pas d’URI ou de jetons SAS dans url ou tout autre élément susceptible d’exposer un secret.

  • namespaces (facultatif)

    • Tableau des espaces de noms Kubernetes auxquels limiter l’évaluation de la stratégie.
    • Une valeur vide ou manquante entraîne l'évaluation de la politique pour inclure tous les espaces de noms non définis dans excludedNamespaces.
  • excludedNamespaces (facultatif)

  • labelSelector (facultatif)

    • Objet qui inclut les propriétés matchLabels (objet) et matchExpression (tableau) pour autoriser la spécification des ressources Kubernetes à inclure pour l’évaluation de stratégie qui correspond aux étiquettes et sélecteurs fournis.
    • Une valeur vide ou manquante peut entraîner l'inclusion de toutes les étiquettes et sélecteurs lors de l'évaluation de la politique, à l’exception des espaces de noms définis dans excludedNamespaces.
  • scope (facultatif)

    • Chaîne qui inclut la propriété d’étendue pour autoriser la spécification si les ressources délimitées par un cluster ou délimitées par un espace de noms sont mises en correspondance.
  • apiGroups (obligatoire lors de l’utilisation de templateInfo)

    • Tableau qui inclut les groupes d’API à mettre en correspondance. Un tableau vide ([""]) est le groupe d’API principal.
    • La définition ["*"] des apiGroups n’est pas autorisée.
  • kinds (obligatoire lors de l’utilisation de templateInfo)

    • Tableau qui inclut le type d’objet Kubernetes auquel limiter l’évaluation.
    • La définition ["*"] des types n’est pas autorisée.
  • values (facultatif)

    • Définit tous les paramètres et valeurs à passer à la contrainte. Chaque valeur doit exister et correspondre à une propriété dans la section de validation openAPIV3Schema du modèle de contrainte CRD.

Exemple d’audit

Exemple 1 : Utilisation de l’effet d’audit pour les modes Resource Manager.

"then": {
  "effect": "audit"
}

Exemple 2 : utilisation de l’effet d’audit pour le mode Fournisseur de ressources Microsoft.Kubernetes.Data. Les informations supplémentaires dans details.templateInfo déclarent l’utilisation de PublicURL et définissent url à l'emplacement du modèle de contrainte à utiliser dans Kubernetes pour limiter les images conteneur autorisées.

"then": {
  "effect": "audit",
  "details": {
    "templateInfo": {
      "sourceType": "PublicURL",
      "url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
    },
    "values": {
      "imageRegex": "[parameters('allowedContainerImagesRegex')]"
    },
    "apiGroups": [
      ""
    ],
    "kinds": [
      "Pod"
    ]
  }
}

Étapes suivantes