Freigeben über


Wirkung von Azure-Richtliniendefinitionen verweigern

Der deny Effekt wird verwendet, um eine Ressourcenanforderung zu verhindern, die nicht mit definierten Standards über eine Richtliniendefinition übereinstimmt und die Anforderung fehlschlägt.

Bewertung verweigern

Wenn Sie eine übereinstimmende Ressource im Ressourcen-Manager-Modus erstellen oder aktualisieren, wird die Anforderung 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. Für einen Ressourcenanbietermodus verwaltet der Ressourcenanbieter die Auswertung der Ressource.

Bei der Auswertung vorhandener Ressourcen werden Ressourcen, die einer deny Richtliniendefinition entsprechen, als nicht konform gekennzeichnet.

Eigenschaften verweigern

Für einen Ressourcen-Manager-Modus verfügt der deny Effekt nicht über weitere Eigenschaften für die Verwendung in der then Bedingung der Richtliniendefinition.

Für einen Ressourcenanbietermodus von Microsoft.Kubernetes.Data, hat der deny Effekt die folgenden Untereigenschaften von details. Die Verwendung von templateInfo ist für neue oder aktualisierte Richtliniendefinitionen erforderlich, da constraintTemplate sie veraltet sind.

  • templateInfo (erforderlich)
    • Kann nicht mit constraintTemplateverwendet werden.
    • sourceType (erforderlich)
      • Definiert den Quelltyp für die Einschränkungsvorlage. Zulässige Werte: PublicURL oder Base64Encoded.

      • Wenn PublicURL, gepaart mit Eigenschaft url , um die Position der Einschränkungsvorlage bereitzustellen. 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.

      • Wenn Base64Encoded, gepaart mit Eigenschaft content , um die base64-codierte Einschränkungsvorlage bereitzustellen. Siehe Erstellen einer Richtliniendefinition aus Einschränkungsvorlage zum Erstellen einer benutzerdefinierten Definition aus einer vorhandenen Open Policy Agent (OPA) Gatekeeper v3-Einschränkungsvorlage.

  • constraint (optional)
    • Kann nicht mit templateInfoverwendet werden.
    • Die CRD-Implementierung der Einschränkungsvorlage. Verwendet Parameter, die als values{{ .Values.<valuename> }}übergeben werden. In Beispiel 2 unten sind {{ .Values.excludedNamespaces }} diese Werte und {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (veraltet)
    • Kann nicht mit templateInfoverwendet werden.
    • Muss beim Erstellen oder Aktualisieren einer Richtliniendefinition durch ersetzt templateInfo 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 von values Azure Policy übergeben werden. Weitere Informationen zu Gatekeeper-Einschränkungen.
  • constraintInfo (optional)
    • Kann nicht mit constraint, constraintTemplate, apiGroups oder kinds verwendet werden.
    • Wenn constraintInfo dies nicht möglich ist, kann die Einschränkung aus und von templateInfo der Richtlinie generiert werden.
    • sourceType (erforderlich)
      • Definiert den Typ der Quelle für die Einschränkung. Zulässige Werte: PublicURL oder Base64Encoded.

      • Wenn PublicURL, gepaart mit Eigenschaft url , um die Position der Einschränkung bereitzustellen. 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 die die Richtlinienauswertung beschränkt werden soll.
    • Ein leerer oder fehlender Wert bewirkt, dass die Richtlinienauswertung alle Namespaces enthält, mit Ausnahme der in excludedNamespaces.
  • excludedNamespaces (erforderlich)
  • labelSelector (erforderlich)
    • Ein Objekt, das (Objekt) und matchExpression (Array)-Eigenschaften enthält matchLabels , um anzugeben, welche Kubernetes-Ressourcen für die Richtlinienauswertung einbezogen werden sollen, die den bereitgestellten Bezeichnungen und Selektoren entsprechen.
    • Ein leerer oder fehlender Wert bewirkt, dass die Richtlinienauswertung alle Bezeichnungen und Selektoren enthält, außer Namespaces, die in excludedNamespacesdefiniert sind.
  • apiGroups (erforderlich bei Verwendung von templateInfo)
    • Ein Array , das die API-Gruppen enthält, die übereinstimmen sollen. Ein leeres Array ([""]) ist die Kern-API-Gruppe.
    • Die Definition ["*"] für apiGroups ist unzulässig.
  • kinds (erforderlich bei Verwendung von templateInfo)
    • Ein Array , das die Art des Kubernetes-Objekts enthält, auf das die Auswertung beschränkt werden soll.
    • Das Definieren ["*"] für Typen ist unzulässig.
  • values (optional)
    • Definiert alle Parameter und Werte, die an die Einschränkung übergeben werden sollen. Jeder Wert muss in der Einschränkungsvorlage CRD vorhanden sein.

Beispiel "Ablehnen"

Beispiel 1: Verwenden des Effekts für Ressourcen-Manager-Modi deny .

"then": {
  "effect": "deny"
}

Beispiel 2: Verwenden des deny Effekts für einen Ressourcenanbietermodus von Microsoft.Kubernetes.Data. Die zusätzlichen Informationen in details.templateInfo deklarieren die Verwendung und PublicURL legt url sie 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