Auswirkung „deny“ von Azure Policy-Definitionen
Mit der Auswirkung deny
werden Ressourcenanforderungen abgelehnt, die nicht den über eine Richtliniendefinition festgelegten Standards entsprechen. Für die Anforderung wird anschließend ein Fehler ausgegeben.
Auswertung von „deny“
Beim Erstellen oder Aktualisieren einer entsprechenden Ressource in einem Resource Manager-Modus wird die Anforderung durch „deny“ verhindert, bevor sie an den Ressourcenanbieter gesendet wird. Für die Anforderung wird 403 (Forbidden)
zurückgegeben. Im Portal kann Forbidden
als ein Bereitstellungsstatus angezeigt werden, der durch die Richtlinienzuweisung verhindert wurde. Bei Verwendung eines Ressourcenanbietermodus wird die Auswertung der Ressource vom Ressourcenanbieter verwaltet.
Während der Auswertung vorhandener Ressourcen werden Ressourcen, die einer deny
-Richtliniendefinition entsprechen, als nicht konform markiert.
Eigenschaften von „deny“
Wenn Sie einen Resource Manager-Modus verwenden, verfügt die Auswirkung deny
über keine weiteren Eigenschaften zur Verwendung in der then
-Bedingung der Richtliniendefinition.
Wenn Sie den Ressourcenanbietermodus Microsoft.Kubernetes.Data
verwenden, verfügt die Auswirkung deny
ü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 oder Token in
url
oder andere Elemente, die ein Geheimnis offenlegen 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
(optional)- 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
oderkinds
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.
- Bei einem leeren oder fehlenden Wert werden alle Namespaces mit Ausnahme der in
excludedNamespaces
definierten Namespaces in die Richtlinienauswertung einbezogen.
excludedNamespaces
(erforderlich)- Ein Array von Kubernetes-Namespaces, die von der Richtlinienauswertung ausgeschlossen werden sollen.
labelSelector
(erforderlich)- Ein Objekt, das die Eigenschaften
matchLabels
(Objekt) undmatchExpression
(Array) umfasst. Hiermit können Sie angeben, welche Kubernetes-Ressourcen, die den angegebenen Bezeichnungen und Selektoren entsprechen, in die Richtlinienauswertung einbezogen werden sollen. - Bei einem leeren oder fehlenden Wert werden alle Bezeichnungen und Selektoren mit Ausnahme der in
excludedNamespaces
definierten Namespaces in die Richtlinienauswertung einbezogen.
- Ein Objekt, das die Eigenschaften
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 in der CRD der Einschränkungsvorlage vorhanden sein.
Beispiel für „deny“
Beispiel 1: Verwenden der Auswirkung deny
für Resource Manager-Modi.
"then": {
"effect": "deny"
}
Beispiel 2: Verwenden der Auswirkung deny
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": "deny",
"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.