Azure Policy-definitioner nekar effekt

Effekten deny används för att förhindra en resursbegäran som inte matchar definierade standarder via en principdefinition och misslyckas med begäran.

Neka utvärdering

När du skapar eller uppdaterar en matchad resurs i ett Resource Manager-läge förhindrar nekandet begäran innan den skickas till resursprovidern. Begäran returneras som en 403 (Forbidden). I portalen Forbidden kan visas som en distributionsstatus som förhindrades av principtilldelningen. För ett resursproviderläge hanterar resursprovidern utvärderingen av resursen.

Under utvärderingen av befintliga resurser markeras resurser som matchar en deny principdefinition som icke-kompatibla.

Neka egenskaper

För ett Resource Manager-läge deny har effekten inga fler egenskaper för användning i villkoret then för principdefinitionen.

För ett resursproviderläge på Microsoft.Kubernetes.Datadeny har effekten följande underegenskaper som details. Användning av templateInfo krävs för nya eller uppdaterade principdefinitioner som constraintTemplate är inaktuella.

  • templateInfo (krävs)
    • Det går inte att använda med constraintTemplate.
    • sourceType (krävs)
      • Definierar typen av källa för villkorsmallen. Tillåtna värden: PublicURL eller Base64Encoded.

      • Om PublicURL, parat med egenskapen url för att ange platsen för villkorsmallen. Platsen måste vara offentligt tillgänglig.

        Varning

        Använd inte SAS-URI:er eller token i url eller något annat som kan exponera en hemlighet.

      • Om Base64Encoded, parat med egenskapen content för att tillhandahålla mallen för grundläggande 64-kodade villkor. Se Skapa principdefinition från villkorsmall för att skapa en anpassad definition från en befintlig Open Policy Agent (OPA) Gatekeeper v3-villkorsmall.

  • constraint (valfritt)
    • Det går inte att använda med templateInfo.
    • CRD-implementeringen av villkorsmallen. Använder parametrar som skickas via values som {{ .Values.<valuename> }}. I exempel 2 nedan är {{ .Values.excludedNamespaces }} dessa värden och {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (inaktuell)
    • Det går inte att använda med templateInfo.
    • Måste ersättas med templateInfo när du skapar eller uppdaterar en principdefinition.
    • Villkorsmallen CustomResourceDefinition (CRD) som definierar nya begränsningar. Mallen definierar Rego-logiken, villkorsschemat och de villkorsparametrar som skickas via values från Azure Policy. Mer information finns i Gatekeeper-begränsningar.
  • constraintInfo (valfritt)
    • Det går inte att använda med constraint, constraintTemplate, apiGroupseller kinds.
    • Om constraintInfo inte anges kan villkoret genereras från templateInfo och princip.
    • sourceType (krävs)
      • Definierar typen av källa för villkoret. Tillåtna värden: PublicURL eller Base64Encoded.

      • Om PublicURL, parat med egenskapen url för att ange platsen för villkoret. Platsen måste vara offentligt tillgänglig.

        Varning

        Använd inte SAS-URI:er eller token i url eller något annat som kan exponera en hemlighet.

  • namespaces (valfritt)
    • En matris med Kubernetes-namnområden att begränsa principutvärderingen till.
    • Ett tomt eller saknat värde gör att principutvärderingen inkluderar alla namnområden, förutom de som definieras i excludedNamespaces.
  • excludedNamespaces (krävs)
  • labelSelector (krävs)
    • Ett objekt som innehåller matchLabels (objekt) och matchExpression (matris)-egenskaper som gör det möjligt att ange vilka Kubernetes-resurser som ska inkluderas för principutvärdering som matchade de angivna etiketterna och väljarna.
    • Ett tomt eller saknat värde gör att principutvärderingen inkluderar alla etiketter och väljare, förutom namnområden som definierats i excludedNamespaces.
  • apiGroups (krävs när du använder templateInfo)
    • En matris som innehåller de API-grupper som ska matchas. En tom matris ([""]) är kärn-API-gruppen.
    • Det är inte tillåtet att ["*"] definiera för apiGroups .
  • kinds (krävs när du använder templateInfo)
    • En matris som innehåller den typ av Kubernetes-objekt som utvärderingen ska begränsas till.
    • Det är inte tillåtet att ["*"] definiera för typer .
  • values (valfritt)
    • Definierar alla parametrar och värden som ska överföras till villkoret. Varje värde måste finnas i villkorsmallen CRD.

Neka exempel

Exempel 1: Använda effekten deny för Resource Manager-lägen.

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

Exempel 2: Använda effekten deny för ett resursproviderläge på Microsoft.Kubernetes.Data. Den ytterligare informationen i details.templateInfo deklarerar användning av PublicURL och anger url platsen för villkorsmallen som ska användas i Kubernetes för att begränsa tillåtna containeravbildningar.

"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ästa steg