Účinek odepření definic Azure Policy

Účinek deny se používá k zabránění požadavku na prostředek, který neodpovídá definovaným standardům prostřednictvím definice zásady a požadavek selže.

Odepřít vyhodnocení

Při vytváření nebo aktualizaci odpovídajícího prostředku v režimu Resource Manageru zabrání zamítnutí požadavku před odesláním poskytovateli prostředků. Požadavek se vrátí jako 403 (Forbidden). Na portálu Forbidden se dá zobrazit jako stav nasazení, kterému přiřazení zásad zabránilo. V případě režimu poskytovatele prostředků spravuje poskytovatel prostředků vyhodnocení prostředku.

Během vyhodnocování existujících prostředků se prostředky, které odpovídají deny definici zásady, označí jako nevyhovující.

Odepřít vlastnosti

V režimu deny Resource Manageru nemá efekt žádné další vlastnosti pro použití v then podmínce definice zásady.

U režimu Microsoft.Kubernetes.Datadeny poskytovatele prostředků má účinek následující dílčí období details. templateInfo Použití se vyžaduje pro nové nebo aktualizované definice zásad, jak constraintTemplate je zastaralé.

  • templateInfo (povinné)
    • Nelze použít s constraintTemplate.
    • sourceType (povinné)
      • Definuje typ zdroje pro šablonu omezení. Povolené hodnoty: PublicURL nebo Base64Encoded.

      • Pokud PublicURLje spárováno s vlastností url pro poskytnutí umístění šablony omezení. Umístění musí být veřejně přístupné.

        Upozorňující

        Nepoužívejte identifikátory URI SAS ani tokeny v url tajných klíčích ani nic jiného, co by mohlo tajný kód vystavit.

      • Pokud Base64Encodedje spárováno s vlastností content , která poskytuje základní 64 zakódovanou šablonu omezení. Viz Vytvoření definice zásady z šablony omezení a vytvoření vlastní definice z existující šablony omezení OPA (Open Policy Agent) Gatekeeper v3.

  • constraint (volitelné)
    • Nelze použít s templateInfo.
    • Implementace CRD šablony Omezení. Používá parametry předávané jako values{{ .Values.<valuename> }}. V příkladu 2 níže jsou {{ .Values.excludedNamespaces }} tyto hodnoty a {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (zastaralé)
    • Nelze použít s templateInfo.
    • Při vytváření nebo aktualizaci definice zásady je nutné nahradit templateInfo .
    • Šablona Constraint CustomResourceDefinition (CRD), která definuje nová omezení. Šablona definuje logiku rego, schéma omezení a parametry omezení, které se předávají ze values služby Azure Policy. Další informace najdete v tématu Omezení Gatekeeperu.
  • constraintInfo (volitelné)
    • Nelze použít s constraint, constraintTemplate, apiGroupsnebo kinds.
    • Pokud constraintInfo není zadané, omezení se dá vygenerovat ze templateInfo zásad a zásad.
    • sourceType (povinné)
      • Definuje typ zdroje pro omezení. Povolené hodnoty: PublicURL nebo Base64Encoded.

      • Pokud PublicURLje spárováno s vlastností url pro poskytnutí umístění omezení. Umístění musí být veřejně přístupné.

        Upozorňující

        Nepoužívejte identifikátory URI SAS ani tokeny v url tajných klíčích ani nic jiného, co by mohlo tajný kód vystavit.

  • namespaces (volitelné)
    • Pole oborů názvů Kubernetes pro omezení vyhodnocování zásad na.
    • Prázdná nebo chybějící hodnota způsobí, že vyhodnocení zásad zahrne všechny obory názvů s výjimkou těch definovaných v excludedNamespaces.
  • excludedNamespaces (povinné)
    • Pole oborů názvů Kubernetes, které se mají vyloučit z vyhodnocení zásad.
  • labelSelector (povinné)
    • Objekt, který obsahuje matchLabels vlastnosti (object) a matchExpression (array), které umožňují určit, které prostředky Kubernetes mají být zahrnuty pro vyhodnocení zásad odpovídající zadaným popiskům a selektorům.
    • Prázdná nebo chybějící hodnota způsobí, že vyhodnocení zásad zahrne všechny popisky a selektory s výjimkou oborů názvů definovaných v excludedNamespaces.
  • apiGroups (vyžadováno při použití templateInfo)
    • Pole, které zahrnuje skupiny rozhraní API, které se mají shodovat. Prázdné pole ([""]) je základní skupina rozhraní API.
    • Definování ["*"] pro skupiny apiGroups je zakázáno.
  • kinds (vyžadováno při použití templateInfo)
    • Pole, které zahrnuje typ objektu Kubernetes, na který se má vyhodnocení omezit.
    • Definování ["*"] pro druhy je zakázáno.
  • values (volitelné)
    • Definuje všechny parametry a hodnoty, které se mají předat omezení. Každá hodnota musí existovat v CRD šablony omezení.

Příklad zamítnutí

Příklad 1: Použití efektu deny pro režimy Resource Manageru

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

Příklad 2: Použití efektu deny pro režim Microsoft.Kubernetes.Dataposkytovatele prostředků . Další informace v details.templateInfo deklaraci použití PublicURL a nastavení url na umístění šablony omezení pro použití v Kubernetes k omezení povolených imagí kontejneru.

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

Další kroky