Efekt odmowy definicji usługi Azure Policy

deny Efekt służy do zapobiegania żądaniu zasobu, które nie pasuje do zdefiniowanych standardów za pomocą definicji zasad i kończy się niepowodzeniem żądania.

Odmowa oceny

Podczas tworzenia lub aktualizowania dopasowanego zasobu w trybie usługi Resource Manager odmowa uniemożliwia wysłanie żądania do dostawcy zasobów. Żądanie jest zwracane jako 403 (Forbidden). W portalu Forbidden można wyświetlić stan wdrożenia, który został uniemożliwiony przez przypisanie zasad. W przypadku trybu dostawcy zasobów dostawca zasobów zarządza oceną zasobu.

Podczas oceny istniejących zasobów zasoby zgodne z definicją deny zasad są oznaczone jako niezgodne.

Odmów właściwości

W przypadku trybu deny usługi Resource Manager efekt nie ma więcej właściwości do użycia w then warunku definicji zasad.

W przypadku trybu dostawcy Microsoft.Kubernetes.Datazasobów efekt deny ma następujące podwłaściwości .details templateInfo Użycie elementu jest wymagane dla nowych lub zaktualizowanych definicji zasad, ponieważ constraintTemplate jest przestarzałe.

  • templateInfo (wymagane)
    • Nie można używać z constraintTemplateprogramem .
    • sourceType (wymagane)
      • Definiuje typ źródła szablonu ograniczenia. Dozwolone wartości: PublicURL lub Base64Encoded.

      • Jeśli PublicURLelement jest sparowany z właściwością url w celu zapewnienia lokalizacji szablonu ograniczenia. Lokalizacja musi być publicznie dostępna.

        Ostrzeżenie

        Nie używaj identyfikatorów URI sygnatury dostępu współdzielonego ani tokenów w url ani żadnych innych elementów, które mogą ujawnić wpis tajny.

      • Jeśli Base64Encodedelement jest sparowany z właściwością content w celu zapewnienia szablonu ograniczenia zakodowanego w formacie base 64. Zobacz Tworzenie definicji zasad na podstawie szablonu ograniczenia, aby utworzyć niestandardową definicję na podstawie istniejącego szablonu ograniczeń programu Open Policy Agent (OPA) Gatekeeper v3.

  • constraint (opcjonalnie)
    • Nie można używać z templateInfoprogramem .
    • Implementacja crD szablonu ograniczenia. Używa parametrów przekazywanych za pośrednictwem values jako {{ .Values.<valuename> }}. W przykładzie 2 poniżej te wartości to {{ .Values.excludedNamespaces }} i {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (przestarzałe)
    • Nie można używać z templateInfoprogramem .
    • Należy zastąpić elementem templateInfo podczas tworzenia lub aktualizowania definicji zasad.
    • Szablon ograniczeń CustomResourceDefinition (CRD), który definiuje nowe ograniczenia. Szablon definiuje logikę rego, schemat ograniczenia i parametry ograniczenia przekazywane z values usługi Azure Policy. Aby uzyskać więcej informacji, przejdź do tematu Ograniczenia usługi Gatekeeper.
  • constraintInfo (opcjonalnie)
    • Nie można używać z constraint, constraintTemplate, apiGroupslub kinds.
    • Jeśli constraintInfo nie zostanie podana, ograniczenie można wygenerować na podstawie templateInfo zasad i .
    • sourceType (wymagane)
      • Definiuje typ źródła dla ograniczenia. Dozwolone wartości: PublicURL lub Base64Encoded.

      • Jeśli PublicURLparametr jest sparowany z właściwością url w celu zapewnienia lokalizacji ograniczenia. Lokalizacja musi być publicznie dostępna.

        Ostrzeżenie

        Nie używaj identyfikatorów URI sygnatury dostępu współdzielonego ani tokenów w url ani żadnych innych elementów, które mogą ujawnić wpis tajny.

  • namespaces (opcjonalnie)
    • Tablicaprzestrzeni nazw platformy Kubernetes w celu ograniczenia oceny zasad do.
    • Pusta lub brakująca wartość powoduje, że ocena zasad obejmuje wszystkie przestrzenie nazw, z wyjątkiem tych zdefiniowanych w pliku excludedNamespaces.
  • excludedNamespaces (wymagane)
  • labelSelector (wymagane)
    • Obiekt, który zawiera matchLabels właściwości (object) i matchExpression (array), aby umożliwić określenie, które zasoby Kubernetes mają być uwzględniane do oceny zasad pasujących do podanych etykiet i selektorów.
    • Pusta lub brakująca wartość powoduje, że ocena zasad obejmuje wszystkie etykiety i selektory, z wyjątkiem przestrzeni nazw zdefiniowanych w pliku excludedNamespaces.
  • apiGroups (wymagane w przypadku korzystania z elementu templateInfo)
    • Tablica zawierająca grupy interfejsów API, które mają być zgodne. Pusta tablica ([""]) jest podstawową grupą interfejsów API.
    • Definiowanie ["*"] dla grup apiGroups jest niedozwolone.
  • kinds (wymagane w przypadku korzystania z elementu templateInfo)
    • Tablica zawierająca rodzaj obiektu Kubernetes w celu ograniczenia oceny do.
    • Definiowanie ["*"] typówjest niedozwolone.
  • values (opcjonalnie)
    • Definiuje wszystkie parametry i wartości, które mają być przekazywane do ograniczenia. Każda wartość musi istnieć w szablonie ograniczenia CRD.

Przykład odmowy

Przykład 1: Używanie deny efektu dla trybów usługi Resource Manager.

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

Przykład 2. Użycie deny efektu dla trybu dostawcy zasobów .Microsoft.Kubernetes.Data Dodatkowe informacje w programie details.templateInfo deklarują użycie PublicURL i ustawiają url lokalizację szablonu ograniczenia do użycia w usłudze Kubernetes w celu ograniczenia dozwolonych obrazów kontenerów.

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

Następne kroki