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
oderBase64Encoded
.Bei
PublicURL
wird der Wert mit der Eigenschafturl
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 Eigenschaftcontent
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.
- Kann nicht mit "
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 }}
.
- Kann nicht mit "
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.
- Kann nicht mit "
constraintInfo
(optional)- Kann nicht mit
constraint
,constraintTemplate
,apiGroups
,kinds
,scope
,namespaces
,excludedNamespaces
oderlabelSelector
verwendet werden. - Wenn
constraintInfo
nicht angegeben wird, kann die Einschränkung austemplateInfo
und der Richtlinie generiert werden. sourceType
(erforderlich)Definiert den Typ der Quelle für die Einschränkung. Zulässige Werte:
PublicURL
oderBase64Encoded
.Bei
PublicURL
wird der Wert mit der Eigenschafturl
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.
- Kann nicht mit
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)- Ein Array von Kubernetes-Namespaces, die von der Richtlinienauswertung ausgeschlossen werden sollen.
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.
- Ein Array, der die API-Gruppen enthält, die übereinstimmen müssen. Ein leeres Array (
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.
- Definiert Parameter und Werte, die an die Einschränkung übergeben werden. Jeder Wert muss vorhanden sein und einer Eigenschaft im Validierungsabschnitt
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
- Sehen Sie sich die Beispiele unter Azure Policy-Beispiele an.
- Lesen Sie die Informationen unter Struktur von Azure Policy-Definitionen.
- Informieren Sie sich über das programmgesteuerte Erstellen von Richtlinien.
- Informieren Sie sich über das Abrufen von Konformitätsdaten.
- Erfahren Sie, wie Sie nicht konforme Ressourcen korrigieren können.
- Lesen Sie den Artikel zu Azure-Verwaltungsgruppen.