Auswirkung „audit“ von Azure Policy-Definitionen

Die Auswirkung audit wird verwendet, um ein Warnungsereignis im Aktivitätsprotokoll zu erstellen, wenn eine nicht konforme Ressource ausgewertet wird. Die Anforderung wird jedoch nicht beendet.

Auswertung von „audit“

„audit“ ist die letzte Auswirkung, die von Azure Policy während der Erstellung oder Aktualisierung einer Ressource überprüft wird. Bei einem Resource Manager-Modus wird die Ressource von Azure Policy an den Ressourcenanbieter gesendet. Beim Auswerten einer Erstellungs- oder Aktualisierungsanforderung für eine Ressource fügt Azure Policy dem Aktivitätsprotokoll einen Microsoft.Authorization/policies/audit/action-Vorgang hinzu und markiert die Ressource als nicht konform. Während eines Standard-Konformitätsauswertungszyklus wird nur der Konformitätsstatus für die Ressource aktualisiert.

Eigenschaften von „audit“

Wenn Sie einen Resource Manager-Modus verwenden, verfügt die Auswirkung „audit“ über keine weiteren Eigenschaften für die Verwendung in der Bedingung then der Richtliniendefinition.

Wenn Sie den Ressourcenanbietermodus Microsoft.Kubernetes.Data verwenden, verfügt die Auswirkung „audit“ über folgende weitere Untereigenschaften von details. Die Verwendung von templateInfo ist für neue oder aktualisierte Richtliniendefinitionen erforderlich, da constraintTemplate veraltet ist.

  • templateInfo (erforderlich)

    • Kann nicht mit "constraintTemplate" verwendet werden.
    • sourceType (erforderlich)
      • Definiert den Typ der Quelle für die Einschränkungsvorlage. Zulässige Werte: PublicURL oder Base64Encoded.

      • Bei PublicURL wird der Wert mit der Eigenschaft url kombiniert, um den Speicherort der Einschränkungsvorlage anzugeben. Auf den Speicherort muss öffentlich zugegriffen werden können.

        Warnung

        Verwenden Sie keine SAS-URIs, URL-Token oder anderen Elemente, die Geheimnisse im Nur-Text-Format verfügbar machen könnten.

      • Bei Base64Encoded wird der Wert mit der Eigenschaft content kombiniert, um die Base64-codierte Einschränkungsvorlage anzugeben. Unter Erstellen einer Richtliniendefinition aus einer Einschränkungsvorlage erfahren Sie, wie Sie eine benutzerdefinierte Definition aus einer vorhandenen Open Policy Agent (OPA) Gatekeeper v3-Einschränkungsvorlage erstellen.

  • constraint (veraltet)

    • Kann nicht mit "templateInfo" verwendet werden.
    • Die CRD-Implementierung der Einschränkungsvorlage. Verwendet Parameter, die über values als {{ .Values.<valuename> }} übergeben werden. In „Beispiel 2“ weiter unten lauten diese Werte {{ .Values.excludedNamespaces }} und {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (veraltet)

    • Kann nicht mit "templateInfo" verwendet werden.
    • Muss beim Erstellen oder Aktualisieren einer Richtliniendefinition durch templateInfo ersetzt werden.
    • Die Einschränkungsvorlage CustomResourceDefinition (CRD), die neue Einschränkungen definiert. Die Vorlage definiert die Rego-Logik, das Einschränkungsschema und die Einschränkungsparameter, die über values von Azure Policy übergeben werden. Weitere Informationen finden Sie unter Gatekeeper-Einschränkungen.
  • constraintInfo (optional)

    • Kann nicht mit constraint, constraintTemplate, apiGroups, kinds, scope, namespaces, excludedNamespaces oder labelSelector verwendet werden.
    • Wenn constraintInfo nicht angegeben wird, kann die Einschränkung aus templateInfo und der Richtlinie generiert werden.
    • sourceType (erforderlich)
      • Definiert den Typ der Quelle für die Einschränkung. Zulässige Werte: PublicURL oder Base64Encoded.

      • Bei PublicURL wird der Wert mit der Eigenschaft url kombiniert, um den Speicherort der Einschränkung anzugeben. Auf den Speicherort muss öffentlich zugegriffen werden können.

        Warnung

        Verwenden Sie keine SAS-URIs oder Token in url oder andere Elemente, die ein Geheimnis offenlegen könnten.

  • namespaces (optional)

    • Ein Array von Kubernetes-Namespaces, auf das die Richtlinienauswertung beschränkt werden soll.
    • Ein leerer oder fehlender Wert bewirkt, dass die Richtlinienauswertung alle Namespaces einschließt, die nicht in excludedNamespaces definiert sind.
  • excludedNamespaces (optional)

  • labelSelector (optional)

    • Ein Objekt, das die Eigenschaften matchLabels (Objekt) und matchExpression (Array) umfasst, um festlegen zu können, welche Kubernetes-Ressourcen in die Richtlinienauswertung einbezogen werden sollen, die den angegebenen Bezeichnungen und Selektoren entsprechen.
    • Ein leerer oder fehlender Wert bewirkt, dass die Richtlinienauswertung alle Bezeichnungen und Selektoren einschließt, mit Ausnahme der in excludedNamespaces definierten Namespaces.
  • scope (optional)

    • Eine Zeichenfolge, die die Eigenschaft scope enthält, damit angegeben werden kann, ob Ressourcen im Clusterbereich oder Ressourcen im Namespacebereich übereinstimmen.
  • apiGroups (erforderlich bei Verwendung von templateInfo)

    • Ein Array, der die API-Gruppen enthält, die übereinstimmen müssen. Ein leeres Array ([""]) ist die API-Kerngruppe.
    • Das Definieren von ["*"] für apiGroups ist nicht zulässig.
  • kinds (erforderlich bei Verwendung von templateInfo)

    • Ein Array, das die Art von Kubernetes-Objekten festlegt, auf die die Auswertung beschränkt werden soll.
    • Das Definieren von ["*"] für kinds ist nicht zulässig.
  • values (optional)

    • Definiert Parameter und Werte, die an die Einschränkung übergeben werden. Jeder Wert muss vorhanden sein und einer Eigenschaft im Validierungsabschnitt openAPIV3Schema der Einschränkungsvorlagen-CRD entsprechen.

Beispiel für „audit“

Beispiel 1: Verwenden der Auswirkung „audit“ für Resource Manager-Modi:

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

Beispiel 2: Verwenden der Auswirkung „audit“ für den Ressourcenanbietermodus Microsoft.Kubernetes.Data. Die zusätzlichen Informationen in details.templateInfo deklarieren die Verwendung von PublicURL und legen url auf den Speicherort der Einschränkungsvorlage fest, die in Kubernetes verwendet werden soll, um die zulässigen Containerimages einzuschränken.

"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"
    ]
  }
}

Nächste Schritte