Inzicht in Azure Policy-effecten

Elke beleidsdefinitie in Azure Policy heeft één effect. Het effect bepaalt wat er gebeurt wanneer de beleidsregel wordt vergeleken en overeenkomt. De effecten gedragen zich anders als ze voor een nieuwe resource, een bijgewerkte resource of een bestaande resource zijn.

Deze effecten worden momenteel ondersteund in een beleidsdefinitie:

De volgende effecten zijn afgeschaft:

Belangrijk

Gebruik in plaats van de effecten EnforceOPAConstraint of EnforceRegoPolicyaudit en deny met de resourceprovidermodus Microsoft.Kubernetes.Data. De ingebouwde beleidsdefinities zijn bijgewerkt. Wanneer bestaande beleidstoewijzingen van deze ingebouwde beleidsdefinities worden gewijzigd, moet de effectparameter worden gewijzigd in een waarde in de bijgewerkte lijst allowedValues .

Volgorde van evaluatie

Aanvragen voor het maken of bijwerken van een resource worden eerst door Azure Policy geëvalueerd. Door Azure Policy wordt een lijst opgesteld met alle toewijzingen die van toepassing zijn op de resource en vervolgens wordt de resource op basis van elke definitie geëvalueerd. Voor een Resource Manager-modus verwerkt Azure Policy verschillende effecten voordat u de aanvraag aan de juiste resourceprovider overhandigt. Met deze volgorde voorkomt u onnodige verwerking door een resourceprovider wanneer een resource niet voldoet aan de ontworpen beheerbesturingselementen van Azure Policy. Met een resourceprovidermodus beheert de resourceprovider de evaluatie en het resultaat en rapporteert de resultaten terug naar Azure Policy.

  • Uitgeschakeld wordt eerst gecontroleerd om te bepalen of de beleidsregel moet worden geëvalueerd.
  • Vervolgens worden Toevoegen en Wijzigen geëvalueerd. Aangezien een van beide de aanvraag kan wijzigen, kan een wijziging verhinderen dat een controle- of weigeringseffect wordt geactiveerd. Deze effecten zijn alleen beschikbaar in een Resource Manager-modus.
  • Vervolgens wordt Weigerengeëvalueerd. Door Weigeren te evalueren voordat de controle wordt uitgevoerd, wordt dubbele logboekregistratie van een ongewenste resource voorkomen.
  • Controle wordt als laatste geëvalueerd.

Nadat de resourceprovider een geslaagde code retourneert voor een Resource Manager modusaanvraag, evalueren AuditIfNotExists en DeployIfNotExists om te bepalen of er aanvullende nalevingslogboeken of actie vereist is.

PATCH Bovendien worden aanvragen die alleen gerelateerde velden wijzigentags, de beleidsevaluatie beperkt tot beleidsregels die voorwaarden bevatten die gerelateerde velden inspecterentags.

Toevoegen

Toevoegen wordt gebruikt om extra velden toe te voegen aan de aangevraagde resource tijdens het maken of bijwerken. Een veelvoorkomend voorbeeld is het opgeven van toegestane IP-adressen voor een opslagresource.

Belangrijk

Toevoegen is bedoeld voor gebruik met niet-tageigenschappen. Hoewel Toevoegen tags kan toevoegen aan een resource tijdens een aanvraag voor maken of bijwerken, is het raadzaam om in plaats daarvan het effect Wijzigen voor tags te gebruiken.

Evaluatie toevoegen

Toevoegen evalueert voordat de aanvraag wordt verwerkt door een resourceprovider tijdens het maken of bijwerken van een resource. Voeg velden toe aan de resource wanneer aan de voorwaarde van de beleidsregel wordt voldaan. Als het toevoegeffect een waarde in de oorspronkelijke aanvraag overschrijft met een andere waarde, fungeert het als een weigeringseffect en weigert het de aanvraag. Als u een nieuwe waarde wilt toevoegen aan een bestaande matrix, gebruikt u de [*] versie van de alias.

Wanneer een beleidsdefinitie met het toevoegeffect wordt uitgevoerd als onderdeel van een evaluatiecyclus, worden er geen wijzigingen aangebracht in resources die al bestaan. In plaats daarvan wordt elke resource gemarkeerd die voldoet aan de if-voorwaarde als niet-compatibel.

Eigenschappen toevoegen

Een toevoegeffect heeft alleen een detailmatrix . Dit is vereist. Omdat details een matrix zijn, kan het één veld/waardepaar of veelvouden bevatten. Raadpleeg de definitiestructuur voor de lijst met acceptabele velden.

Voorbeelden toevoegen

Voorbeeld 1: Enkel veld/waardepaar met behulp van een niet-[*]alias met een matrixwaarde om IP-regels in te stellen voor een opslagaccount. Wanneer de alias niet-[*] een matrix is, voegt het effect de waarde toe als de hele matrix. Als de matrix al bestaat, treedt er een weigeringsbeurt op uit het conflict.

"then": {
    "effect": "append",
    "details": [{
        "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules",
        "value": [{
            "action": "Allow",
            "value": "134.5.0.0/21"
        }]
    }]
}

Voorbeeld 2: Eén veld/waardepaar met behulp van een [*]alias met een matrixwaarde om IP-regels in te stellen voor een opslagaccount. Met behulp van de alias [*] voegt het effect de waarde toe aan een mogelijk bestaande matrix. Als de matrix nog niet bestaat, wordt deze gemaakt.

"then": {
    "effect": "append",
    "details": [{
        "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules[*]",
        "value": {
            "value": "40.40.40.40",
            "action": "Allow"
        }
    }]
}

Controleren

Controle wordt gebruikt om een waarschuwingsgebeurtenis te maken in het activiteitenlogboek bij het evalueren van een niet-compatibele resource, maar de aanvraag wordt niet gestopt.

Evaluatie van controle

Controle is het laatste effect dat door Azure Policy is gecontroleerd tijdens het maken of bijwerken van een resource. Voor een Resource Manager modus stuurt Azure Policy de resource vervolgens naar de resourceprovider. Wanneer u een aanvraag voor het maken of bijwerken van een resource evalueert, voegt Azure Policy een Microsoft.Authorization/policies/audit/action bewerking toe aan het activiteitenlogboek en markeert u de resource als niet-compatibel. Tijdens een standaardevaluatiecyclus voor naleving wordt alleen de nalevingsstatus voor de resource bijgewerkt.

Eigenschappen controleren

Voor een Resource Manager-modus heeft het controle-effect geen aanvullende eigenschappen voor gebruik in de dan voorwaarde van de beleidsdefinitie.

Voor een resourceprovidermodus van Microsoft.Kubernetes.Dataheeft het controle-effect de volgende aanvullende subproperties met 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)
      • Definieert het type bron voor de beperkingssjabloon. Toegestane waarden: PublicURL of Base64Encoded.

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

        Waarschuwing

        Gebruik geen SAS-URI's, URL-tokens of iets anders waarmee geheimen in tekst zonder opmaak kunnen worden weergegeven.

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

  • beperking (afgeschaft)
    • Kan niet worden gebruikt met templateInfo.
    • De CRD-implementatie van de beperkingssjabloon. Gebruikt parameters die worden doorgegeven via waarden als {{ .Values.<valuename> }}. In voorbeeld 2 hieronder zijn {{ .Values.excludedNamespaces }} deze waarden en {{ .Values.allowedContainerImagesRegex }}.
  • naamruimten (optioneel)
    • Een matrix met Kubernetes-naamruimten om beleidsevaluatie te beperken tot.
    • Een lege of ontbrekende waarde zorgt ervoor dat beleidsevaluatie alle naamruimten bevat, behalve de waarden die zijn gedefinieerd in excludedNamespaces.
  • excludedNamespaces (vereist)
  • labelSelector (vereist)
    • Een object dat matchLabels (object) en matchExpression-eigenschappen (matrix) bevat, zodat kan worden opgegeven 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 moeten overeenkomen. Een lege matrix ([""]) is de kern-API-groep.
    • Definiëren ["*"] voor apiGroups is niet toegestaan.
  • soorten (vereist bij het gebruik van templateInfo)
    • Een matrix die het type Kubernetes-object bevat om de evaluatie te beperken.
    • Definiëren ["*"] voor soorten is niet toegestaan.
  • waarden (optioneel)
    • Definieert parameters en waarden die moeten worden doorgegeven aan de beperking. Elke waarde moet bestaan in de crd van de beperkingssjabloon.
  • constraintTemplate (afgeschaft)
    • Kan niet worden gebruikt met templateInfo.
    • Moet worden vervangen templateInfo door wanneer u een beleidsdefinitie maakt of bijwerkt.
    • De beperkingssjabloon CustomResourceDefinition (CRD) die nieuwe beperkingen definieert. De sjabloon definieert de Rego-logica, het beperkingsschema en de parameters beperking die worden doorgegeven via waarden uit Azure Policy.

Voorbeeld van controle

Voorbeeld 1: Het auditeffect gebruiken voor Resource Manager modi.

"then": {
    "effect": "audit"
}

Voorbeeld 2: het controle-effect gebruiken voor een resourceprovidermodus van Microsoft.Kubernetes.Data. De aanvullende informatie in details.templateInfo declareert het gebruik van PublicURL en stelt url in op de locatie van de beperkingssjabloon die moet worden gebruikt in Kubernetes om de toegestane containerinstallatiekopieën te beperken.

"then": {
    "effect": "audit",
    "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"]
    }
}

AuditIfNotExists

AuditIfNotExists maakt het mogelijk om resources te controleren die betrekking hebben op de resource die overeenkomt met de if-voorwaarde , maar niet over de eigenschappen beschikken die zijn opgegeven in de details van de vervolgens voorwaarde.

AuditIfNotExists-evaluatie

AuditIfNotExists wordt uitgevoerd nadat een resourceprovider een aanvraag voor het maken of bijwerken van een resource heeft verwerkt en een geslaagde statuscode heeft geretourneerd. De controle treedt op als er geen gerelateerde resources zijn of als de resources die zijn gedefinieerd door ExistenceCondition niet waar zijn. Voor nieuwe en bijgewerkte resources voegt Azure Policy een Microsoft.Authorization/policies/audit/action bewerking toe aan het activiteitenlogboek en markeert de resource als niet-compatibel. Wanneer deze wordt geactiveerd, is de resource die voldoet aan de if-voorwaarde de resource die is gemarkeerd als niet-compatibel.

Eigenschappen auditIfNotExists

De detaileigenschap van de effecten AuditIfNotExists heeft alle subproperties die de gerelateerde resources definiëren die overeenkomen.

  • Type (vereist)
    • Hiermee geeft u het type van de gerelateerde resource die moet overeenkomen.
    • Als het type een resourcetype is onder de if-voorwaarderesource, voert het beleid query's uit voor resources van dit type binnen het bereik van de geëvalueerde resource. Anders worden beleidsquery's binnen dezelfde resourcegroep of hetzelfde abonnement uitgevoerd als de geëvalueerde resource, afhankelijk van de existenceScope.
  • Naam (optioneel)
    • Hiermee geeft u de exacte naam van de resource die overeenkomt en zorgt ervoor dat het beleid één specifieke resource ophaalt in plaats van alle resources van het opgegeven type.
    • Wanneer de voorwaardewaarden voor if.field.type en then.details.type overeenkomen, wordt de naamvereist en moet [field('name')]de naam of [field('fullName')] voor een onderliggende resource zijn. In plaats daarvan moet echter een controle-effect worden overwogen.
  • ResourceGroupName (optioneel)
    • Hiermee kan de overeenkomende resource afkomstig zijn van een andere resourcegroep.
    • Dit is niet van toepassing als het type een resource is die zich onder de if-voorwaarderesource bevindt.
    • De standaardwaarde is de resourcegroep als voorwaarderesource.
  • ExistenceScope (optioneel)
    • Toegestane waarden zijn Abonnement en ResourceGroup.
    • Hiermee stelt u het bereik in van waaruit de gerelateerde resource moet worden opgehaald.
    • Dit is niet van toepassing als het type een resource is die zich onder de if-voorwaarderesource bevindt.
    • Voor ResourceGroup beperkt u zich tot de resourcegroep if condition of de resourcegroep die is opgegeven in ResourceGroupName.
    • Voor Abonnement voert u een query uit op het hele abonnement voor de gerelateerde resource. Het toewijzingsbereik moet worden ingesteld op abonnement of hoger voor de juiste evaluatie.
    • De standaardwaarde is ResourceGroup.
  • EvaluationDelay (optioneel)
    • Hiermee geeft u op wanneer het bestaan van de gerelateerde resources moet worden geëvalueerd. De vertraging wordt alleen gebruikt voor evaluaties die het gevolg zijn van een aanvraag voor het maken of bijwerken van resources.
    • Toegestane waarden zijn AfterProvisioning, AfterProvisioningSuccessof AfterProvisioningFailureeen ISO 8601-duur tussen 0 en 360 minuten.
    • De waarden na inrichting controleren het inrichtingsresultaat van de resource die is geëvalueerd in de IF-voorwaarde van de beleidsregel. AfterProvisioning wordt uitgevoerd nadat het inrichten is voltooid, ongeacht het resultaat. Als het inrichten langer dan 6 uur duurt, wordt deze behandeld als een fout bij het bepalen van de evaluatievertragingen na inrichting .
    • De standaardwaarde is PT10M (10 minuten).
    • Het opgeven van een lange evaluatievertraging kan ertoe leiden dat de vastgelegde nalevingsstatus van de resource pas wordt bijgewerkt als de volgende evaluatietrigger.
  • ExistenceCondition (optioneel)
    • Als dit niet is opgegeven, voldoet een gerelateerde resource van het type aan het effect en wordt de controle niet geactiveerd.
    • Gebruikt dezelfde taal als de beleidsregel voor de if-voorwaarde , maar wordt afzonderlijk geëvalueerd op basis van elke gerelateerde resource.
    • Als een overeenkomende gerelateerde resource waar oplevert, is het effect tevreden en wordt de controle niet geactiveerd.
    • Kan [field()] gebruiken om de gelijkwaardigheid met waarden in de if-voorwaarde te controleren.
    • Kan bijvoorbeeld worden gebruikt om te controleren of de bovenliggende resource (in de if-voorwaarde ) zich op dezelfde resourcelocatie bevindt als de overeenkomende gerelateerde resource.

Voorbeeld auditIfNotExists

Voorbeeld: evalueert Virtual Machines om te bepalen of de Antimalware-extensie bestaat en controleert wanneer deze ontbreekt.

{
    "if": {
        "field": "type",
        "equals": "Microsoft.Compute/virtualMachines"
    },
    "then": {
        "effect": "auditIfNotExists",
        "details": {
            "type": "Microsoft.Compute/virtualMachines/extensions",
            "existenceCondition": {
                "allOf": [{
                        "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
                        "equals": "Microsoft.Azure.Security"
                    },
                    {
                        "field": "Microsoft.Compute/virtualMachines/extensions/type",
                        "equals": "IaaSAntimalware"
                    }
                ]
            }
        }
    }
}

Weigeren

Weigeren wordt gebruikt om te voorkomen dat een resourceaanvraag die niet overeenkomt met 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 verboden worden weergegeven als een status voor de implementatie die is voorkomen 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 beleidsdefinitie voor weigeren gemarkeerd als niet-compatibel.

Eigenschappen weigeren

Voor een Resource Manager-modus heeft het weigeringseffect geen aanvullende eigenschappen voor gebruik in de dan voorwaarde van de beleidsdefinitie.

Voor een resourceprovidermodus van Microsoft.Kubernetes.Dataheeft het weigeringseffect de volgende aanvullende subproperties met 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)
      • Definieert het type bron voor de beperkingssjabloon. Toegestane waarden: PublicURL of Base64Encoded.

      • Als PublicURL is gekoppeld aan de 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 waarmee een geheim kan worden weergegeven.

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

  • beperking (optioneel)
    • Kan niet worden gebruikt met templateInfo.
    • De CRD-implementatie van de beperkingssjabloon. Gebruikt parameters die worden doorgegeven via waarden als {{ .Values.<valuename> }}. In voorbeeld 2 hieronder zijn {{ .Values.excludedNamespaces }} deze waarden en {{ .Values.allowedContainerImagesRegex }}.
  • naamruimten (optioneel)
    • Een matrix met Kubernetes-naamruimten om beleidsevaluatie te beperken tot.
    • Een lege of ontbrekende waarde zorgt ervoor dat beleidsevaluatie alle naamruimten bevat, behalve de waarden die zijn gedefinieerd in excludedNamespaces.
  • excludedNamespaces (vereist)
  • labelSelector (vereist)
    • Een object dat matchLabels (object) en matchExpression-eigenschappen (matrix) bevat, zodat kan worden opgegeven 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 moeten overeenkomen. Een lege matrix ([""]) is de kern-API-groep.
    • Definiëren ["*"] voor apiGroups is niet toegestaan.
  • soorten (vereist bij het gebruik van templateInfo)
    • Een matrix die het type Kubernetes-object bevat om de evaluatie te beperken.
    • Definiëren ["*"] voor soorten is niet toegestaan.
  • waarden (optioneel)
    • Definieert parameters en waarden die moeten worden doorgegeven aan de beperking. Elke waarde moet bestaan in de crd van de beperkingssjabloon.
  • 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) waarmee nieuwe beperkingen worden gedefinieerd. De sjabloon definieert de Rego-logica, het beperkingsschema en de beperkingsparameters die worden doorgegeven via waarden uit Azure Policy. Het is raadzaam om de nieuwer templateInfo te gebruiken om te vervangen constraintTemplate.

Voorbeeld weigeren

Voorbeeld 1: Het weigerenseffect gebruiken voor Resource Manager modi.

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

Voorbeeld 2: Het effect weigeren gebruiken voor een resourceprovidermodus van Microsoft.Kubernetes.Data. De aanvullende informatie in details.templateInfo declareert het gebruik van PublicURL en stelt url het in op de locatie van de beperkingssjabloon die in Kubernetes moet worden gebruikt 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"]
    }
}

DeployIfNotExists

Net als bij AuditIfNotExists voert een DeployIfNotExists-beleidsdefinitie een sjabloonimplementatie uit wanneer aan de voorwaarde wordt voldaan. Beleidstoewijzingen met effect ingesteld als DeployIfNotExists vereisen een beheerde identiteit om herstel uit te voeren.

Notitie

Geneste sjablonen worden ondersteund met deployIfNotExists, maar gekoppelde sjablonen worden momenteel niet ondersteund.

DeployIfNotExists-evaluatie

DeployIfNotExists wordt uitgevoerd na een configureerbare vertraging wanneer een resourceprovider een abonnement of resourceaanvraag voor het maken of bijwerken verwerkt en een statuscode voor een succes heeft geretourneerd. Een sjabloonimplementatie treedt op als er geen gerelateerde resources zijn of als de resources die zijn gedefinieerd door ExistenceCondition niet als waar worden geëvalueerd. De duur van de implementatie hangt af van de complexiteit van resources die in de sjabloon zijn opgenomen.

Tijdens een evaluatiecyclus worden beleidsdefinities met een DeployIfNotExists-effect dat overeenkomt met resources gemarkeerd als niet-compatibel, maar er wordt geen actie ondernomen op die resource. Bestaande niet-compatibele resources kunnen worden hersteld met een hersteltaak.

Eigenschappen DeployIfNotExists

De eigenschap Details van het effect DeployIfNotExists heeft alle subproperties die de gerelateerde resources definiëren die moeten worden vergeleken en de sjabloonimplementatie die moet worden uitgevoerd.

  • Type (vereist)

    • Hiermee geeft u het type van de gerelateerde resource die moet overeenkomen.
    • Als het type een resourcetype is onder de if-voorwaarderesource, voert het beleid query's uit voor resources van dit type binnen het bereik van de geëvalueerde resource. Anders worden beleidsquery's binnen dezelfde resourcegroep of hetzelfde abonnement als de geëvalueerde resource uitgevoerd, afhankelijk van de existenceScope.
  • Naam (optioneel)

    • Hiermee geeft u de exacte naam van de resource die overeenkomt en zorgt ervoor dat het beleid één specifieke resource ophaalt in plaats van alle resources van het opgegeven type.
    • Wanneer de voorwaardewaarden voor if.field.type en then.details.type overeenkomen, wordt de naamvereist en moet het zijn [field('name')]of [field('fullName')] voor een onderliggende resource.
  • ResourceGroupName (optioneel)

    • Hiermee kan de overeenkomst van de gerelateerde resource afkomstig zijn uit een andere resourcegroep.
    • Dit is niet van toepassing als het type een resource is die zich onder de if-voorwaarderesource bevindt.
    • De standaardwaarde is de resourcegroep van de if-voorwaarderesource.
    • Als een sjabloonimplementatie wordt uitgevoerd, wordt deze geïmplementeerd in de resourcegroep van deze waarde.
  • ExistenceScope (optioneel)

    • Toegestane waarden zijn Abonnement en ResourceGroup.
    • Hiermee stelt u het bereik in van waaruit de gerelateerde resource moet worden opgehaald.
    • Dit is niet van toepassing als het type een resource is die zich onder de if-voorwaarderesource bevindt.
    • Voor ResourceGroup wordt de resourcegroep van de voorwaarderesource of de resourcegroep die is opgegeven in ResourceGroupName beperkt.
    • Voor Abonnement voert u een query uit op het hele abonnement voor de gerelateerde resource. Het toewijzingsbereik moet worden ingesteld op abonnement of hoger voor de juiste evaluatie.
    • Standaard is ResourceGroup.
  • EvaluationDelay (optioneel)

    • Hiermee geeft u op wanneer het bestaan van de gerelateerde resources moet worden geëvalueerd. De vertraging wordt alleen gebruikt voor evaluaties die het gevolg zijn van een aanvraag voor het maken of bijwerken van resources.
    • Toegestane waarden zijn AfterProvisioning, AfterProvisioningSuccessof AfterProvisioningFailureeen ISO 8601-duur tussen 0 en 360 minuten.
    • De waarden na inrichting controleren het inrichtingsresultaat van de resource die is geëvalueerd in de IF-voorwaarde van de beleidsregel. AfterProvisioning wordt uitgevoerd nadat het inrichten is voltooid, ongeacht het resultaat. Als het inrichten langer duurt dan 6 uur, wordt deze behandeld als een fout bij het bepalen van nainrichtingsevaluatievertragingen.
    • De standaardwaarde is PT10M (10 minuten).
    • Het opgeven van een lange evaluatievertraging kan ertoe leiden dat de vastgelegde nalevingsstatus van de resource pas wordt bijgewerkt als de volgende evaluatietrigger.
  • ExistenceCondition (optioneel)

    • Als dit niet is opgegeven, voldoet een gerelateerde resource van het type aan het effect en wordt de implementatie niet geactiveerd.
    • Gebruikt dezelfde taal als de beleidsregel voor de if-voorwaarde , maar wordt afzonderlijk geëvalueerd op basis van elke gerelateerde resource.
    • Als een overeenkomende gerelateerde resource resulteert in waar, is het effect tevreden en wordt de implementatie niet geactiveerd.
    • Kan [field()] gebruiken om de equivalentie te controleren met waarden in de if-voorwaarde .
    • Kan bijvoorbeeld worden gebruikt om te valideren dat de bovenliggende resource (in de if-voorwaarde ) zich op dezelfde resourcelocatie bevindt als de overeenkomende gerelateerde resource.
  • roleDefinitionIds (vereist)

    • Deze eigenschap moet een matrix met tekenreeksen bevatten die overeenkomen met de rol-id van op rollen gebaseerd toegangsbeheer dat toegankelijk is voor het abonnement. Zie herstel voor meer informatie : de beleidsdefinitie configureren.
  • DeploymentScope (optioneel)

    • Toegestane waarden zijn Abonnement en ResourceGroup.
    • Hiermee stelt u het type implementatie in dat moet worden geactiveerd. Abonnement geeft een implementatie op abonnementsniveau aan, ResourceGroup geeft een implementatie aan voor een resourcegroep.
    • Er moet een locatie-eigenschap worden opgegeven in de implementatie wanneer u implementaties op abonnementsniveau gebruikt.
    • Standaard is ResourceGroup.
  • Implementatie (vereist)

    • Deze eigenschap moet de volledige sjabloonimplementatie bevatten, omdat deze wordt doorgegeven aan de Microsoft.Resources/deployments PUT-API. Zie de REST API deployments voor meer informatie.
    • Genest Microsoft.Resources/deployments in de sjabloon moet unieke namen gebruiken om conflicten tussen meerdere beleidsevaluaties te voorkomen. De naam van de bovenliggende implementatie kan worden gebruikt als onderdeel van de geneste implementatienaam via [concat('NestedDeploymentName-', uniqueString(deployment().name))].

    Notitie

    Alle functies in de eigenschap Implementatie worden geëvalueerd als onderdelen van de sjabloon, niet als het beleid. De uitzondering is de eigenschap parameters waarmee waarden van het beleid worden doorgegeven aan de sjabloon. De waarde in deze sectie onder de naam van een sjabloonparameter wordt gebruikt om deze waarde door te geven (zie fullDbName in het voorbeeld DeployIfNotExists).

Voorbeeld deployIfNotExists

Voorbeeld: Evalueert SQL Server databases om te bepalen of transparentDataEncryption is ingeschakeld. Zo niet, dan wordt er een implementatie uitgevoerd die moet worden ingeschakeld.

"if": {
    "field": "type",
    "equals": "Microsoft.Sql/servers/databases"
},
"then": {
    "effect": "DeployIfNotExists",
    "details": {
        "type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
        "name": "current",
        "evaluationDelay": "AfterProvisioning",
        "roleDefinitionIds": [
            "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
            "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
        ],
        "existenceCondition": {
            "field": "Microsoft.Sql/transparentDataEncryption.status",
            "equals": "Enabled"
        },
        "deployment": {
            "properties": {
                "mode": "incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {
                        "fullDbName": {
                            "type": "string"
                        }
                    },
                    "resources": [{
                        "name": "[concat(parameters('fullDbName'), '/current')]",
                        "type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
                        "apiVersion": "2014-04-01",
                        "properties": {
                            "status": "Enabled"
                        }
                    }]
                },
                "parameters": {
                    "fullDbName": {
                        "value": "[field('fullName')]"
                    }
                }
            }
        }
    }
}

Uitgeschakeld

Dit effect is handig voor het testen van situaties of voor wanneer de beleidsdefinitie het effect heeft geparameteriseerd. Deze flexibiliteit maakt het mogelijk om één toewijzing uit te schakelen in plaats van alle toewijzingen van dat beleid uit te schakelen.

Een alternatief voor het effect Uitgeschakeld is enforcementMode, die is ingesteld op de beleidstoewijzing. Wanneer enforcementMode is uitgeschakeld, worden resources nog steeds geëvalueerd. Logboekregistratie, zoals activiteitenlogboeken, en het beleidseffect vindt niet plaats. Zie beleidstoewijzing - afdwingingsmodus voor meer informatie.

EnforceOPAConstraint

Dit effect wordt gebruikt met een beleidsdefinitiemodus van Microsoft.Kubernetes.Data. Het wordt gebruikt om gatekeeper v3-toegangsbeheerregels die zijn gedefinieerd met OPA Constraint Framework door te geven aan OPA-clusters ( Open Policy Agent ) naar Kubernetes-clusters in Azure.

Belangrijk

De beperkte preview-beleidsdefinities met het effect EnforceOPAConstraint en de gerelateerde Kubernetes Service-categorie zijn afgeschaft. Gebruik in plaats daarvan de effecten controleren en weigeren met de modus Microsoft.Kubernetes.DataResourceprovider.

Evaluatie vanOPAConstraint afdwingen

De toegangscontroller Open Policy Agent evalueert elke nieuwe aanvraag in het cluster in realtime. Elke 15 minuten wordt een volledige scan van het cluster voltooid en worden de resultaten gerapporteerd aan Azure Policy.

Eigenschappen afdwingenOPAConstraint

De detailseigenschap van het effect EnforceOPAConstraint heeft de subproperties die de gatekeeper v3-toegangsbeheerregel beschrijven.

  • constraintTemplate (vereist)
    • De beperkingssjabloon CustomResourceDefinition (CRD) die nieuwe beperkingen definieert. De sjabloon definieert de Rego-logica, het beperkingsschema en de parameters beperking die worden doorgegeven via waarden uit Azure Policy.
  • beperking (vereist)
    • De CRD-implementatie van de beperkingssjabloon. Gebruikt parameters die worden doorgegeven via waarden als {{ .Values.<valuename> }}. In het volgende voorbeeld zijn {{ .Values.cpuLimit }} deze waarden en {{ .Values.memoryLimit }}.
  • waarden (optioneel)
    • Definieert parameters en waarden die moeten worden doorgegeven aan de beperking. Elke waarde moet bestaan in de crd van de beperkingssjabloon.

Voorbeeld van EnforceOPAConstraint

Voorbeeld: Gatekeeper v3-toegangsbeheerregel voor het instellen van limieten voor cpu- en geheugenresources in Kubernetes.

"if": {
    "allOf": [
        {
            "field": "type",
            "in": [
                "Microsoft.ContainerService/managedClusters",
                "AKS Engine"
            ]
        },
        {
            "field": "location",
            "equals": "westus2"
        }
    ]
},
"then": {
    "effect": "enforceOPAConstraint",
    "details": {
        "constraintTemplate": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-resource-limits/template.yaml",
        "constraint": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-resource-limits/constraint.yaml",
        "values": {
            "cpuLimit": "[parameters('cpuLimit')]",
            "memoryLimit": "[parameters('memoryLimit')]"
        }
    }
}

EnforceRegoPolicy

Dit effect wordt gebruikt met een beleidsdefinitiemodus van Microsoft.ContainerService.Data. Het wordt gebruikt om Gatekeeper v2-toegangsbeheerregels door te geven die zijn gedefinieerd met Rego voor Open Policy Agent (OPA) op Azure Kubernetes Service.

Belangrijk

De beperkte preview-beleidsdefinities met het effect EnforceRegoPolicy en de gerelateerde Kubernetes Service-categorie zijn afgeschaft. Gebruik in plaats daarvan de effectencontrole en weigeren met de modus Microsoft.Kubernetes.DataResourceprovider.

Evaluatie van EnforceRegoPolicy

De toegangscontroller Open Policy Agent evalueert elke nieuwe aanvraag in het cluster in realtime. Elke 15 minuten wordt een volledige scan van het cluster voltooid en worden de resultaten gerapporteerd aan Azure Policy.

EnforceRegoPolicy-eigenschappen

De detaileigenschap van het effect EnforceRegoPolicy heeft de subproperties die de gatekeeper v2-toegangsbeheerregel beschrijven.

  • policyId (vereist)
    • Een unieke naam die als parameter is doorgegeven aan de regel voor toegangsbeheer van Rego.
  • beleid (vereist)
    • Hiermee geeft u de URI van de Rego-toegangsbeheerregel.
  • policyParameters (optioneel)
    • Definieert parameters en waarden die moeten worden doorgegeven aan het rego-beleid.

Voorbeeld van EnforceRegoPolicy

Voorbeeld: Gatekeeper v2-toegangsbeheerregel om alleen de opgegeven containerinstallatiekopieën in AKS toe te staan.

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.ContainerService/managedClusters"
        },
        {
            "field": "location",
            "equals": "westus2"
        }
    ]
},
"then": {
    "effect": "EnforceRegoPolicy",
    "details": {
        "policyId": "ContainerAllowedImages",
        "policy": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/KubernetesService/container-allowed-images/limited-preview/gatekeeperpolicy.rego",
        "policyParameters": {
            "allowedContainerImagesRegex": "[parameters('allowedContainerImagesRegex')]"
        }
    }
}

Handmatig (preview)

Met het nieuwe manual effect (preview) kunt u uw eigen aangepaste attestation-resources definiëren en bijhouden. In tegenstelling tot andere beleidsdefinities die actief scannen op evaluatie, maakt het handmatige effect handmatige wijzigingen in de nalevingsstatus mogelijk. Als u de naleving voor een handmatig beleid wilt wijzigen, moet u een attestation maken voor die nalevingsstatus.

Notitie

Tijdens openbare preview is ondersteuning voor handmatig beleid beschikbaar via verschillende Microsoft Defender voor nalevingsinitiatieven voor cloudreleving. Als u een Microsoft Defender bent voor de klant in de Cloud Premium-laag, raadpleegt u hun ervaringsoverzicht.

Momenteel bevatten de volgende beleidsinitiatieven voor regelgeving beleidsdefinities die het handmatige effect bevatten:

  • FedRAMP High
  • FedRAMP Medium
  • HIPAA
  • HITRUST
  • ISO 27001
  • Microsoft CIS 1.3.0
  • Microsoft CIS 1.4.0
  • NIST SP 800-171 Rev. 2
  • NIST SP 800-53 Rev. 4
  • NIST SP 800-53 Rev. 5
  • PCI DSS 3.2.1
  • PCI DSS 4.0
  • SOC TSP
  • SWIFT CSP CSCF v2022

Het volgende voorbeeld is gericht op Azure-abonnementen en stelt de oorspronkelijke nalevingsstatus in op Unknown.

{
  "if": {
    "field":  "type",
    "equals": "Microsoft.Resources/subscriptions"
  },
  "then": {
    "effect": "manual",
    "details": {
      "defaultState": "Unknown"
    }
  }
}

De defaultState eigenschap heeft drie mogelijke waarden:

  • Onbekend: de initiële, standaardstatus van de doelbronnen.
  • Compatibel: Resource voldoet aan uw handmatige beleidsstandaarden
  • Niet-compatibel: Resource is niet-compatibel volgens uw handmatige beleidsstandaarden

De Azure Policy nalevingsengine evalueert alle toepasselijke resources op de standaardstatus die is opgegeven in de definitie (Unknownindien niet opgegeven). Een Unknown nalevingsstatus geeft aan dat u de nalevingsstatus van de resource handmatig moet bevestigen. Als de status van het effect niet is opgegeven, wordt deze standaard ingesteld op Unknown. De Unknown nalevingsstatus geeft aan dat u de nalevingsstatus zelf moet bevestigen.

In de volgende schermopname ziet u hoe een handmatige beleidstoewijzing met de Unknown status wordt weergegeven in de Azure Portal:

Resourcenalevingstabel in de Azure Portal met een toegewezen handmatig beleid met een nalevingsreden van 'onbekend'.

Wanneer een beleidsdefinitie met manual effect is toegewezen, kunt u de nalevingsstatussen van doelresources of bereiken instellen via aangepaste attestations. Met attestations kunt u ook optionele aanvullende informatie verstrekken via de vorm van metagegevens en koppelingen naar bewijs dat bij de gekozen nalevingsstatus hoort. De persoon die het handmatige beleid toewijst, kan een standaardopslaglocatie voor bewijs aanbevelen door de eigenschap van de evidenceStorages metagegevens van de beleidstoewijzing op te geven.

Wijzigen

Wijzigen wordt gebruikt om eigenschappen of tags toe te voegen, bij te werken of te verwijderen voor een abonnement of resource tijdens het maken of bijwerken. Een veelvoorkomend voorbeeld is het bijwerken van tags voor resources zoals costCenter. Bestaande niet-compatibele resources kunnen worden hersteld met een hersteltaak. Eén regel Wijzigen kan een willekeurig aantal bewerkingen hebben. Beleidstoewijzingen met effect ingesteld als Wijzigen vereisen een beheerde identiteit om herstel uit te voeren.

De volgende bewerkingen worden ondersteund door Modify:

  • Resourcetags toevoegen, vervangen of verwijderen. Voor tags moet een beleid wijzigen zijn mode ingesteld op Geïndexeerd , tenzij de doelresource een resourcegroep is.
  • Voeg de waarde van het type beheerde identiteit (identity.type) van virtuele machines en virtuele-machineschaalsets toe of vervang deze.
  • Voeg de waarden van bepaalde aliassen toe of vervang deze.
    • GebruikGet-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }in Azure PowerShell 4.6.0 of hoger om een lijst met aliassen op te halen die kunnen worden gebruikt met Modify.

Belangrijk

Als u tags beheert, is het raadzaam om Wijzigen te gebruiken in plaats van Toevoegen als Modify extra bewerkingstypen en de mogelijkheid om bestaande resources te herstellen. Toevoegen wordt echter aanbevolen als u geen beheerde identiteit kunt maken of Wijzigen de alias voor de resource-eigenschap nog niet ondersteunt.

Evaluatie wijzigen

Wijzigingen worden geëvalueerd voordat de aanvraag wordt verwerkt door een resourceprovider tijdens het maken of bijwerken van een resource. De bewerkingen Wijzigen worden toegepast op de aanvraaginhoud wanneer aan de voorwaarde van de beleidsregel wordt voldaan. Elke bewerking Wijzigen kan een voorwaarde opgeven die bepaalt wanneer deze wordt toegepast. Bewerkingen met evaluaties van onjuiste voorwaarden worden overgeslagen.

Wanneer een alias is opgegeven, worden de volgende aanvullende controles uitgevoerd om ervoor te zorgen dat de bewerking Wijzigen de aanvraaginhoud niet op een manier wijzigt waardoor de resourceprovider deze weigert:

  • De eigenschap waarnaar de alias wordt toegewezen, is gemarkeerd als 'Wijzigbaar' in de API-versie van de aanvraag.
  • Het tokentype in de bewerking Wijzigen komt overeen met het verwachte tokentype voor de eigenschap in de API-versie van de aanvraag.

Als een van deze controles mislukt, valt de beleidsevaluatie terug op het opgegeven conflictEffect.

Belangrijk

Het is raadzaam definities te wijzigen die aliassen bevatten, het effect van het controleconflict gebruiken om mislukte aanvragen te voorkomen met API-versies waarbij de toegewezen eigenschap niet 'wijzigbaar' is. Als dezelfde alias zich anders gedraagt tussen API-versies, kunnen bewerkingen voor voorwaardelijke wijzigingen worden gebruikt om de wijzigingsbewerking te bepalen die wordt gebruikt voor elke API-versie.

Wanneer een beleidsdefinitie met het effect Wijzigen wordt uitgevoerd als onderdeel van een evaluatiecyclus, worden er geen wijzigingen aangebracht in resources die al bestaan. In plaats daarvan wordt elke resource gemarkeerd die voldoet aan de if-voorwaarde als niet-compatibel.

Eigenschappen wijzigen

De eigenschap Details van het effect Wijzigen bevat alle subtoewijzingen die de machtigingen definiëren die nodig zijn voor herstel en de bewerkingen die worden gebruikt om tagwaarden toe te voegen, bij te werken of te verwijderen.

  • roleDefinitionIds (vereist)
    • Deze eigenschap moet een matrix met tekenreeksen bevatten die overeenkomen met de rol-id van op rollen gebaseerd toegangsbeheer die toegankelijk is voor het abonnement. Zie herstel voor meer informatie : de beleidsdefinitie configureren.
    • De gedefinieerde rol moet alle bewerkingen bevatten die zijn verleend aan de rol Inzender .
  • conflictEffect (optioneel)
    • Bepaalt welke beleidsdefinitie wint als meer dan één beleidsdefinitie dezelfde eigenschap wijzigt of wanneer de bewerking Wijzigen niet werkt op de opgegeven alias.
      • Voor nieuwe of bijgewerkte resources heeft de beleidsdefinitie met weigeren voorrang. Beleidsdefinities met controle slaan alle bewerkingen over. Als meerdere beleidsdefinities weigeren, wordt de aanvraag geweigerd als een conflict. Als alle beleidsdefinities controle hebben, worden geen van de bewerkingen van de conflicterende beleidsdefinities verwerkt.
      • Als meerdere beleidsdefinities voor bestaande resources weigeren, is de nalevingsstatus Conflict. Als een of minder beleidsdefinities weigeren, retourneert elke toewijzing een nalevingsstatus van niet-compatibel.
    • Beschikbare waarden: controleren, weigeren, uitgeschakeld.
    • De standaardwaarde wordt geweigerd.
  • bewerkingen (vereist)
    • Een matrix van alle tagbewerkingen die moeten worden voltooid voor overeenkomende resources.
    • Eigenschappen:
      • bewerking (vereist)
        • Definieert welke actie moet worden uitgevoerd voor een overeenkomende resource. Opties zijn: addOrReplace, Toevoegen, Verwijderen. Toevoegen gedraagt zich vergelijkbaar met het toevoegeffect .
      • veld (vereist)
        • De tag die u wilt toevoegen, vervangen of verwijderen. Tagnamen moeten voldoen aan dezelfde naamconventie voor andere velden.
      • waarde (optioneel)
        • De waarde voor het instellen van de tag.
        • Deze eigenschap is vereist als de bewerkingaddOrReplace of Add is.
      • voorwaarde (optioneel)
        • Een tekenreeks met een Azure Policy taalexpressie met beleidsfuncties die waarofonwaar evalueren.
        • Biedt geen ondersteuning voor de volgende beleidsfuncties: field(), resourceGroup(), subscription().

Bewerkingen wijzigen

Met de matrix met bewerkingseigenschappen kunt u verschillende tags op verschillende manieren wijzigen vanuit één beleidsdefinitie. Elke bewerking bestaat uit bewerkings-, veld- en waarde-eigenschappen . De bewerking bepaalt wat de hersteltaak doet met de tags, het veld bepaalt welke tag wordt gewijzigd en de waarde definieert de nieuwe instelling voor die tag. In het volgende voorbeeld worden de volgende tagwijzigingen aangebracht:

  • Hiermee stelt u de environment tag in op 'Testen', zelfs als deze al bestaat met een andere waarde.
  • Hiermee verwijdert u de tag TempResource.
  • Hiermee stelt u de Dept tag in op de beleidsparameter DeptName die is geconfigureerd voor de beleidstoewijzing.
"details": {
    ...
    "operations": [
        {
            "operation": "addOrReplace",
            "field": "tags['environment']",
            "value": "Test"
        },
        {
            "operation": "Remove",
            "field": "tags['TempResource']",
        },
        {
            "operation": "addOrReplace",
            "field": "tags['Dept']",
            "value": "[parameters('DeptName')]"
        }
    ]
}

De bewerkingseigenschap heeft de volgende opties:

Bewerking Beschrijving
addOrReplace Voegt de gedefinieerde eigenschap of tag en waarde toe aan de resource, zelfs als de eigenschap of tag al bestaat met een andere waarde.
Toevoegen Hiermee voegt u de gedefinieerde eigenschap of tag en waarde toe aan de resource.
Verwijderen Hiermee verwijdert u de gedefinieerde eigenschap of tag uit de resource.

Voorbeelden wijzigen

Voorbeeld 1: Voeg de environment tag toe en vervang bestaande environment tags door 'Testen':

"then": {
    "effect": "modify",
    "details": {
        "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "operations": [
            {
                "operation": "addOrReplace",
                "field": "tags['environment']",
                "value": "Test"
            }
        ]
    }
}

Voorbeeld 2: Verwijder de env tag en voeg de environment tag toe of vervang bestaande environment tags door een geparameteriseerde waarde:

"then": {
    "effect": "modify",
    "details": {
        "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "conflictEffect": "deny",
        "operations": [
            {
                "operation": "Remove",
                "field": "tags['env']"
            },
            {
                "operation": "addOrReplace",
                "field": "tags['environment']",
                "value": "[parameters('tagValue')]"
            }
        ]
    }
}

Voorbeeld 3: Zorg ervoor dat een opslagaccount geen openbare toegang tot blob toestaat, de bewerking Wijzigen alleen wordt toegepast bij het evalueren van aanvragen met API-versie groter of gelijk aan '2019-04-01':

"then": {
    "effect": "modify",
    "details": {
        "roleDefinitionIds": [
            "/providers/microsoft.authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab"
        ],
        "conflictEffect": "audit",
        "operations": [
            {
                "condition": "[greaterOrEquals(requestContext().apiVersion, '2019-04-01')]",
                "operation": "addOrReplace",
                "field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
                "value": false
            }
        ]
    }
}

Beleidsdefinities voor lagen

Een resource kan worden beïnvloed door verschillende toewijzingen. Deze toewijzingen kunnen zich binnen hetzelfde bereik of op verschillende bereiken bevinden. Elk van deze toewijzingen heeft waarschijnlijk ook een ander effect gedefinieerd. De voorwaarde en het effect voor elk beleid worden onafhankelijk geëvalueerd. Bijvoorbeeld:

  • Beleid 1
    • Hiermee wordt de resourcelocatie beperkt tot 'westus'
    • Toegewezen aan abonnement A
    • Effect weigeren
  • Beleid 2
    • Hiermee wordt de resourcelocatie beperkt tot 'eastus'
    • Toegewezen aan resourcegroep B in abonnement A
    • Controle-effect

Deze installatie zou resulteren in het volgende resultaat:

  • Elke resource die zich al in resourcegroep B in 'eastus' bevindt, voldoet aan beleid 2 en niet-compatibel met beleid 1
  • Een resource die zich al in resourcegroep B niet in 'eastus' bevindt, is niet compatibel met beleid 2 en niet-compatibel met beleid 1 als dat niet het geval is in 'westus'
  • Nieuwe resource in abonnement A niet in 'westus' wordt geweigerd door beleid 1
  • Elke nieuwe resource in abonnement A en resourcegroep B in 'westus' wordt gemaakt en voldoet niet aan het beleid 2

Als zowel beleid 1 als beleid 2 het effect van weigeren had, verandert de situatie in:

  • Alle resources die zich al in resourcegroep B niet in 'eastus' bevinden, zijn niet compatibel met beleid 2
  • Alle resources die zich al in resourcegroep B niet in 'westus' bevinden, zijn niet compatibel met beleid 1
  • Nieuwe resource in abonnement A niet in 'westus' wordt geweigerd door beleid 1
  • Elke nieuwe resource in resourcegroep B van abonnement A wordt geweigerd

Elke opdracht wordt afzonderlijk geëvalueerd. Daarom is er geen mogelijkheid voor een resource om een kloof tussen verschillen in bereik te doorlopen. Het nettoresultaat van gelaagde beleidsdefinities wordt beschouwd als cumulatief meest beperkend. Als beleid 1 en 2 bijvoorbeeld een weigeringseffect hadden, wordt een resource geblokkeerd door de overlappende en conflicterende beleidsdefinities. Als u de resource nog steeds in het doelbereik wilt maken, controleert u de uitsluitingen voor elke toewijzing om te controleren of de juiste beleidstoewijzingen van invloed zijn op de juiste bereiken.

Volgende stappen