Udostępnij przez


Efekt odmowy w definicjach zasad Azure

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 już żadnych dodatkowych właściwości do użycia w then warunku definicji zasad.

W przypadku trybu dostawcy zasobów Microsoft.Kubernetes.Data efekt deny ma następujące podwłaściwościdetails. 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 constraintTemplate.
    • 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 sygnatur dostępu współdzielonego (SAS) ani tokenów w url ani żadnych innych elementów, które mogą ujawnić tajny klucz.

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

  • constraint (opcjonalnie)
    • Nie można używać z templateInfo.
    • 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 templateInfo.
    • 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, które są przekazywane poprzez values z 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 i polityki.
    • sourceType (wymagane)
      • Definiuje typ źródła dla ograniczenia. Dozwolone wartości: PublicURL lub Base64Encoded.

      • Jeśli PublicURL jest połączony z właściwością url w celu określenia lokalizacji ograniczenia. Lokalizacja musi być publicznie dostępna.

        Ostrzeżenie

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

  • namespaces (opcjonalnie)
    • Tablicaprzestrzeni nazw Kubernetes w celu ograniczenia oceny zasad.
    • Pusta lub brakująca wartość powoduje, że ocena polityki obejmuje wszystkie przestrzenie nazw, z wyjątkiem tych zdefiniowanych w 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 ewaluacja polityki obejmuje wszystkie etykiety i selektory, oprócz przestrzeni nazw zdefiniowanych w excludedNamespaces.
  • apiGroups (wymagane w przypadku korzystania z elementu templateInfo)
    • Tablica zawierająca grupy interfejsów API, które mają być zgodne. Pusta tablica ([""]) jest grupą główną API.
    • Definiowanie ["*"] dla grup api jest niedozwolone.
  • kinds (wymagane w przypadku korzystania z elementu templateInfo)
    • Tablica zawierająca rodzaj obiektu Kubernetes w celu ograniczenia oceny do.
    • Definiowanie ["*"] dla typów jest 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 dostępu

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 details.templateInfo deklarują użycie PublicURL i przypisują url jako lokalizację szablonu ograniczenia używanego w Kubernetes do 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"
    ]
  }
}

Dalsze kroki