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 u een overeenkomende resource in een Resource Manager-modus maakt of bijwerkt, voorkomt u dat de aanvraag wordt verzonden naar de resourceprovider. 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 weigeren

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, zoals constraintTemplate 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, gekoppeld aan eigenschap url om de locatie van de 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 beperkingssjabloon. Maakt gebruik van parameters die worden doorgegeven als values{{ .Values.<valuename> }}. In voorbeeld 2 hieronder zijn {{ .Values.excludedNamespaces }} deze waarden 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 deze niet is opgegeven, kan de beperking worden gegenereerd op basis van templateInfo en 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 eigenschappen (object) en matchExpression (matrix) bevat matchLabels om op te geven welke Kubernetes-resources moeten worden opgenomen voor beleidsevaluatie die overeenkomt 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 CRD van de beperkingssjabloon.

Voorbeeld van weigeren

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

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

Voorbeeld 2: Het deny effect voor een resourceprovidermodus van Microsoft.Kubernetes.Data. De aanvullende informatie in details.templateInfo declareert het gebruik van PublicURL en stelt url deze in op de locatie van de sjabloon Beperking die moet worden gebruikt in Kubernetes om de toegestane containerinstallatiekopieën 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