Delen via


Azure Policy-definities weigeren effect

Het deny effect wordt gebruikt om te voorkomen dat een resourceaanvraag voldoet aan gedefinieerde standaarden via een beleidsdefinitie en mislukt de aanvraag.

Evaluatie weigeren

Wanneer een overeenkomende resource in de Resource Manager-modus wordt gemaakt of bijgewerkt, zorgt de ontkenning ervoor dat de aanvraag niet naar de resourceprovider wordt verzonden. De aanvraag wordt geretourneerd als een 403 (Forbidden). In de portal kan de Forbidden status worden weergegeven als een implementatiestatus die is verhinderd door de beleidstoewijzing. Voor een resourceprovidermodus beheert de resourceprovider de evaluatie van de resource.

Tijdens de evaluatie van bestaande resources worden resources die overeenkomen met een deny beleidsdefinitie gemarkeerd als niet-compatibel.

Eigenschappen afwijzen

Voor een Resource Manager-modus heeft het deny effect geen eigenschappen meer voor gebruik in de then voorwaarde van de beleidsdefinitie.

Voor een resourceprovidermodus van Microsoft.Kubernetes.Dataheeft het deny effect de volgende subproperties van details. Het gebruik van templateInfo is vereist voor nieuwe of bijgewerkte beleidsdefinities, aangezien constraintTemplate is afgeschaft.

  • templateInfo (vereist)
    • Kan niet worden gebruikt met constraintTemplate.
    • sourceType (vereist)
      • Hiermee definieert u het type bron voor de beperkingssjabloon. Toegestane waarden: PublicURL of Base64Encoded.

      • Als PublicURL is gekoppeld aan eigenschap url om de locatie van het beperkingssjabloon op te geven. De locatie moet openbaar toegankelijk zijn.

        Waarschuwing

        Gebruik geen SAS-URI's of tokens in url of iets anders dat een geheim beschikbaar kan maken.

      • Als Base64Encoded, gekoppeld aan eigenschap content om de base 64 gecodeerde beperkingssjabloon op te geven. Zie Beleidsdefinitie maken op basis van een beperkingssjabloon om een aangepaste definitie te maken op basis van een bestaande OPA-beperkingssjabloon (Open Policy Agent) Gatekeeper v3.

  • constraint (optioneel)
    • Kan niet worden gebruikt met templateInfo.
    • De CRD-implementatie van de Constraint-template. Maakt gebruik van parameters die worden doorgegeven als values{{ .Values.<valuename> }}. In voorbeeld 2 hieronder zijn deze waarden {{ .Values.excludedNamespaces }} en {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (afgeschaft)
    • Kan niet worden gebruikt met templateInfo.
    • Moet worden vervangen door templateInfo bij het maken of bijwerken van een beleidsdefinitie.
    • De Constraint-sjabloon CustomResourceDefinition (CRD) die nieuwe beperkingen definieert. De sjabloon definieert de Rego-logica, het beperkingsschema en de beperkingsparameters die worden doorgegeven vanuit values Azure Policy. Ga naar Gatekeeper-beperkingen voor meer informatie.
  • constraintInfo (optioneel)
    • Kan niet worden gebruikt met constraint, constraintTemplateof apiGroupskinds.
    • Als constraintInfo niet is opgegeven, kan de beperking worden gegenereerd op basis van templateInfo en het beleid.
    • sourceType (vereist)
      • Hiermee definieert u het type bron voor de beperking. Toegestane waarden: PublicURL of Base64Encoded.

      • Als PublicURL, gekoppeld aan eigenschap url om de locatie van de beperking op te geven. De locatie moet openbaar toegankelijk zijn.

        Waarschuwing

        Gebruik geen SAS-URI's of tokens in url of iets anders dat een geheim beschikbaar kan maken.

  • namespaces (optioneel)
    • Een matrix van Kubernetes-naamruimten om beleidsevaluatie te beperken.
    • Een lege of ontbrekende waarde zorgt ervoor dat beleidsevaluatie alle naamruimten bevat, behalve de naamruimten die zijn gedefinieerd in excludedNamespaces.
  • excludedNamespaces (vereist)
  • labelSelector (vereist)
    • Een object dat matchLabels (object) en matchExpression (array) eigenschappen bevat, om op te geven welke Kubernetes-resources moeten worden opgenomen voor beleidsevaluatie die overeenkomen met de opgegeven labels en selectors.
    • Een lege of ontbrekende waarde zorgt ervoor dat beleidsevaluatie alle labels en selectors bevat, behalve naamruimten die zijn gedefinieerd in excludedNamespaces.
  • apiGroups (vereist bij het gebruik van templateInfo)
    • Een matrix die de API-groepen bevat die overeenkomen. Een lege matrix ([""]) is de kern-API-groep.
    • DefiniĆ«ren ["*"] voor apiGroups is niet toegestaan.
  • kinds (vereist bij het gebruik van templateInfo)
    • Een matrix met het type Kubernetes-object om de evaluatie te beperken.
    • DefiniĆ«ren ["*"] voor soorten is niet toegestaan.
  • values (optioneel)
    • Definieert parameters en waarden die moeten worden doorgegeven aan de beperking. Elke waarde moet bestaan in de beperkingssjabloon CRD.

Voorbeeld van weigeren

Voorbeeld 1: Het deny effect voor Resource Manager-modi gebruiken.

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

Voorbeeld 2: Het deny-effect gebruiken voor een resourceprovider-modus van Microsoft.Kubernetes.Data. De aanvullende informatie in details.templateInfo geeft het gebruik van PublicURL aan en stelt url in op de locatie van de Beperking-sjabloon die in Kubernetes moet worden gebruikt om de toegestane containerafbeeldingen te beperken.

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

Volgende stappen