Az Azure Policy hatásainak ismertetése

Az Azure Policyban minden egyes szabályzatdefiníció egyetlen hatással bír. Ez a hatás határozza meg, hogy mi történjen, ha a szabályzatbeli szabály értékelése megfelelést állapít meg. A hatások eltérően viselkednek, ha új, frissített vagy meglévő erőforráshoz tartoznak.

Ezek a hatások jelenleg a szabályzatdefiníciókban támogatottak:

A következő hatások elavultak:

Fontos

A EnforceOPAConstraint vagy a EnforceRegoPolicy effektus helyett használja a naplózást és a megtagadás funkciót erőforrás-szolgáltató módban Microsoft.Kubernetes.Data. A beépített szabályzatdefiníciók frissültek. A beépített szabályzatdefiníciók meglévő szabályzat-hozzárendeléseinek módosításakor az effektusparamétert a frissített allowedValues listában szereplő értékre kell módosítani.

Kiértékelési sorrend

Az erőforrások létrehozására vagy frissítésére irányuló kérelmeket először az Azure Policy értékeli ki. Az Azure Policy létrehozza az erőforrásra vonatkozó összes hozzárendelés listáját, majd kiértékeli az erőforrást minden egyes definíció alapján. Resource Manager mód esetén Azure Policy több effektust is feldolgoz, mielőtt átadja a kérést a megfelelő erőforrás-szolgáltatónak. Ez a sorrend megakadályozza az erőforrás-szolgáltató szükségtelen feldolgozását, ha egy erőforrás nem felel meg a Azure Policy tervezett irányítási vezérlőinek. Erőforrás-szolgáltató mód esetén az erőforrás-szolgáltató kezeli a kiértékelést és az eredményt, és az eredményeket Azure Policy.

  • Először ellenőrizni kell a Letiltva állapotot annak megállapításához, hogy ki kell-e értékelni a szabályzat szabályát.
  • Ezután a Hozzáfűzés és a Módosítás művelet értékelése következik. Mivel bármelyik módosíthatja a kérést, a változtatások megakadályozhatják a naplózási vagy megtagadási műveletek aktiválását. Ezek a műveletek csak Resource Manager módban érhetők el.
  • Ezután a Megtagadás művelet értékelése következik. A megtagadás naplózás előtti értékelésével megakadályozható a nem kívánt erőforrások ismétlődő naplózása.
  • Utolsóként a Naplózás művelet értékelése következik.

Miután az erőforrás-szolgáltató sikeres kódot ad vissza egy Resource Manager módú kéréshez, az AuditIfNotExists és a DeployIfNotExists kiértékeli, hogy szükség van-e további megfelelőségi naplózásra vagy műveletre.

Emellett a PATCH csak a kapcsolódó mezőket módosító tags kérések a szabályzatok kiértékelését a kapcsolódó mezőket vizsgáló tags feltételeket tartalmazó szabályzatokra korlátozzák.

Append (Hozzáfűzés)

A hozzáfűzés további mezők hozzáadására szolgál a kért erőforráshoz a létrehozás vagy frissítés során. Gyakori példa egy tárolási erőforrás engedélyezett IP-címeinek megadása.

Fontos

A Hozzáfűzés nem címketulajdonságokkal való használatra szolgál. Bár a Hozzáfűzés címkéket adhat hozzá egy erőforráshoz létrehozási vagy frissítési kérések során, javasoljuk, hogy helyette a Módosítás effektust használja a címkékhez.

Hozzáfűzés kiértékelése

A hozzáfűzés kiértékeli, mielőtt az erőforrás-szolgáltató feldolgozta a kérést egy erőforrás létrehozása vagy frissítése során. A hozzáfűző mezőket ad hozzá az erőforráshoz, ha a szabályzatszabály feltételének teljesül. Ha a hozzáfűzési effektus felülbírálna egy másik értékkel rendelkező értéket az eredeti kérelemben, akkor megtagadási effektusként működik, és elutasítja a kérést. Ha új értéket szeretne hozzáfűzni egy meglévő tömbhöz, használja az alias [*] verzióját.

Ha a hozzáfűző effektust használó szabályzatdefiníció egy kiértékelési ciklus részeként fut, nem módosítja a már létező erőforrásokat. Ehelyett minden olyan erőforrást megjelöl, amely megfelel az if feltételnek, nem megfelelőként.

Hozzáfűzési tulajdonságok

A hozzáfűző effektusok csak részletes tömböt tartalmazhatnak, ami szükséges. Mivel a részletek tömbök, egyetlen mező/érték párra vagy többszörösre is szükség lehet. Tekintse meg az elfogadható mezők listájának definícióstruktúráját .

Példák hozzáfűzése

1. példa: Egyetlen mező/érték pár, amely nem[*]aliast használ tömbértékkel a tárfiók IP-szabályainak beállításához. Ha a nem[*] alias tömb, az effektus az értéket egész tömbként fűzi hozzá. Ha a tömb már létezik, az ütközésből megtagadási esemény következik be.

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

2. példa: Egyetlen mező/érték pár egy [*]alias használatával tömbértékkel a tárfiók IP-szabályainak beállításához. A [*] alias használatával az effektus hozzáfűzi az értéket egy potenciálisan meglévő tömbhöz. Ha a tömb még nem létezik, létrejön.

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

Naplózás

A naplózással figyelmeztető eseményt hozhat létre a tevékenységnaplóban egy nem megfelelő erőforrás kiértékelésekor, de nem állítja le a kérést.

Auditértékelés

A naplózás az erőforrás létrehozása vagy frissítése során Azure Policy által utoljára ellenőrzött effektus. Resource Manager mód esetén Azure Policy ezután elküldi az erőforrást az erőforrás-szolgáltatónak. Erőforrás létrehozási vagy frissítési kérésének kiértékelésekor Azure Policy hozzáad egy Microsoft.Authorization/policies/audit/action műveletet a tevékenységnaplóhoz, és nem megfelelőként jelöli meg az erőforrást. A standard megfelelőségi kiértékelési ciklus során csak az erőforrás megfelelőségi állapota frissül.

Naplózási tulajdonságok

Resource Manager mód esetén a naplózási effektus nem rendelkezik a szabályzatdefiníció akkori feltételében használható további tulajdonságokkal.

Erőforrás-szolgáltatói mód esetén a naplózási Microsoft.Kubernetes.Datahatás a következő további altulajdonságokkal rendelkezik. templateInfo A már elavult új vagy frissített szabályzatdefiníciók constraintTemplate használatához szükség van.

  • templateInfo (kötelező)
    • A (z) nem használható.constraintTemplate
    • sourceType (kötelező)
      • Meghatározza a kényszersablon forrástípusát. Engedélyezett értékek: PublicURL vagy Base64Encoded.

      • Ha PublicURL, a tulajdonsággal url párosítva adja meg a kényszersablon helyét. A helynek nyilvánosan elérhetőnek kell lennie.

        Figyelmeztetés

        Ne használjon SAS URI-kat, URL-jogkivonatokat vagy bármi mást, amely felfedheti a titkos kódokat egyszerű szövegben.

      • Ha Base64Encoded, a tulajdonsággal content párosítva adja meg az alap 64 kódolású kényszersablont. Lásd: Szabályzatdefiníció létrehozása a kényszersablonból egyéni definíció létrehozásához egy meglévő OPEN Policy Agent (OPA) GateKeeper v3 kényszersablonból.

  • kényszer (elavult)
    • A (z) nem használható.templateInfo
    • A kényszersablon CRD-implementációja. Értékeken keresztül átadott paramétereket használ.{{ .Values.<valuename> }} Az alábbi 2. példában ezek az értékek a következők {{ .Values.excludedNamespaces }} : és {{ .Values.allowedContainerImagesRegex }}.
  • névterek (nem kötelező)
    • Kubernetes-névterektömbje a szabályzatok kiértékelésének korlátozásához.
    • Egy üres vagy hiányzó érték miatt a szabályzat kiértékelése az összes névteret tartalmazza, kivéve a kizárt névterekben definiáltakat.
  • excludedNamespaces (kötelező)
  • labelSelector (kötelező)
    • Egy objektum , amely tartalmazza a matchLabels (objektum) és a matchExpression (tömb) tulajdonságokat annak meghatározásához, hogy mely Kubernetes-erőforrásokat vegye fel a szabályzatértékeléshez, amelyek megfelelnek a megadott címkéknek és választóknak.
    • Egy üres vagy hiányzó érték miatt a szabályzat kiértékelése az összes címkét és választót tartalmazza, kivéve a kizártnameterekben definiált névtereket.
  • apiGroups (a templateInfo használatakor szükséges)
    • A megfeleltetendő API-csoportokat tartalmazó tömb. Az üres tömb ([""]) az alapvető API-csoport.
    • Az apiGroups definiálása ["*"] nem engedélyezett.
  • kinds (a templateInfo használatakor szükséges)
    • Egy tömb , amely magában foglalja a Kubernetes-objektum típusát a kiértékelés korlátozásához.
    • A típusok definiálása ["*"] nem engedélyezett.
  • értékek (nem kötelező)
    • Meghatározza a kényszernek átadandó paramétereket és értékeket. Minden értéknek léteznie kell a kényszersablon CRD-jében.
  • constraintTemplate (elavult)
    • A (z) nem használható.templateInfo
    • A szabályzatdefiníciók létrehozásakor vagy frissítésekor le kell cserélni templateInfo .
    • Az új kényszereket definiáló CustomResourceDefinition (CRD) kényszersablon. A sablon meghatározza a Rego logikát, a Kényszersémát és a kényszerparamétereket, amelyeket a Azure Policy értékein keresztül adnak át.

Példa naplózásra

1. példa: A naplózási effektus használata Resource Manager módokhoz.

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

2. példa: Az erőforrás-szolgáltatói mód naplózási effektusának Microsoft.Kubernetes.Datahasználata. A details.templateInfo további információi deklarálják a PublicURL használatát, és a Kubernetesben használni kívánt kényszersablon helyét állítja be url az engedélyezett tárolólemezképek korlátozásához.

"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

Az AuditIfNotExists lehetővé teszi az if feltételnek megfelelő erőforráshoz kapcsolódó erőforrások naplózását, de nem rendelkezik az akkori feltétel részleteiben megadott tulajdonságokkal.

AuditIfNotExists értékelés

Az AuditIfNotExists azt követően fut le, hogy egy erőforrás-szolgáltató kezelt egy létrehozási vagy frissítési erőforrás-kérelmet, és sikeres állapotkódot adott vissza. A naplózás akkor történik, ha nincsenek kapcsolódó erőforrások, vagy ha a ExistenceCondition által definiált erőforrások kiértékelése nem igaz. Új és frissített erőforrások esetén Azure Policy hozzáad egy Microsoft.Authorization/policies/audit/action műveletet a tevékenységnaplóhoz, és nem megfelelőként jelöli meg az erőforrást. Ha aktiválódik, az if feltételnek megfelelő erőforrás az az erőforrás, amely nem megfelelőként van megjelölve.

Az AuditIfNotExists tulajdonságai

Az AuditIfNotExists effektusok részletes tulajdonsága tartalmazza az összes olyan altulajdonságot, amely meghatározza az egyező kapcsolódó erőforrásokat.

  • Típus (kötelező)
    • Megadja az egyező kapcsolódó erőforrás típusát.
    • Ha a típus egy erőforrástípus a ha feltétel típusú erőforrás alatt, a szabályzat lekérdezi az ilyen típusú erőforrásokat a kiértékelt erőforrás hatókörén belül. Ellenkező esetben a szabályzat lekérdezései ugyanabban az erőforráscsoportban vagy előfizetésben találhatók, mint a kiértékelt erőforrás a existenceScope függvénytől függően.
  • Név (nem kötelező)
    • Megadja az egyező erőforrás pontos nevét, és a szabályzat egy adott erőforrást hív le a megadott típusú erőforrások helyett.
    • Ha az if.field.type és a then.details.type feltételértékek egyeznek, a névmegadása kötelezővé válik, és annak kell lennie, vagy [field('fullName')] gyermekerőforrásnak kell lennie[field('name')]. A naplózási hatást azonban figyelembe kell venni.
  • ResourceGroupName (nem kötelező)
    • Lehetővé teszi a kapcsolódó erőforrás egyezését egy másik erőforráscsoportból.
    • Nem alkalmazható, ha a típus olyan erőforrás, amely a ha feltétel típusú erőforrás alatt lenne.
    • Az alapértelmezett érték az if feltétel erőforráscsoportja.
  • ExistenceScope (nem kötelező)
    • Az engedélyezett értékek az Előfizetés és a ResourceGroup.
    • Megadja, hogy honnan szeretné lekérni a kapcsolódó erőforrást.
    • Nem alkalmazható, ha a típus olyan erőforrás, amely a ha feltétel típusú erőforrás alatt lenne.
    • A ResourceGroupesetében az if feltétel erőforráscsoportjára vagy a ResourceGroupName-ben megadott erőforráscsoportra korlátozható.
    • Előfizetés esetén a kapcsolódó erőforrás teljes előfizetését lekérdezi. A hozzárendelés hatókörét előfizetésben vagy magasabb szinten kell beállítani a megfelelő értékeléshez.
    • Az alapértelmezett érték a ResourceGroup.
  • EvaluationDelay (nem kötelező)
    • Meghatározza, hogy mikor kell kiértékelni a kapcsolódó erőforrások meglétét. A késést csak olyan értékelésekhez használjuk, amelyek egy erőforrás-létrehozási vagy -frissítési kérelem eredményeként jönnek létre.
    • Az engedélyezett értékek AfterProvisioningAfterProvisioningSuccessAfterProvisioningFailure0 és 360 perc közötti ISO 8601-es időtartamok.
    • Az AfterProvisioning értékek a szabályzatszabály IF feltételében kiértékelt erőforrás kiépítési eredményét vizsgálják. AfterProvisioning a kiépítés befejezése után fut, az eredménytől függetlenül. Ha a kiépítés 6 óránál több időt vesz igénybe, a rendszer hibaként kezeli a kiértékelési késések meghatározásakor.
    • Az alapértelmezett érték PT10M (10 perc).
    • Ha hosszú próbaidőszakot ad meg, előfordulhat, hogy az erőforrás rögzített megfelelőségi állapota nem frissül a következő kiértékelési eseményindítóig.
  • ExistenceCondition (nem kötelező)
    • Ha nincs megadva, bármely kapcsolódó típusú erőforrás megfelel a hatásnak, és nem indítja el a naplózást.
    • Ugyanazt a nyelvet használja, mint az if feltétel házirendszabálya, de a rendszer egyenként értékeli ki az egyes kapcsolódó erőforrásokat.
    • Ha bármely egyező kapcsolódó erőforrás igaz értéket ad vissza, a hatás teljesül, és nem indítja el a naplózást.
    • Használhatja a [field()] függvényt az if feltételben szereplő értékekkel való egyenértékűség ellenőrzésére.
    • Használható például annak ellenőrzésére, hogy a szülőerőforrás ( az if feltételben) ugyanabban az erőforráshelyen található-e, mint a kapcsolódó erőforrás.

AuditIfNotExists példa

Példa: Kiértékeli Virtual Machines annak megállapításához, hogy létezik-e kártevőirtó bővítmény, majd naplóz, ha hiányzik.

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

Megtagadás

A megtagadás arra szolgál, hogy megakadályozza az olyan erőforrás-kéréseket, amelyek nem felelnek meg a meghatározott szabványoknak egy szabályzatdefiníción keresztül, és meghiúsul a kérés.

Elutasítás kiértékelése

Ha Resource Manager módban hoz létre vagy frissít egy egyező erőforrást, a megtagadás megakadályozza a kérést, mielőtt elküldené az erőforrás-szolgáltatónak. A kérést a következőként adja vissza: 403 (Forbidden). A portálon a Tiltott állapot tekinthető meg az üzemelő példányon, amelyet a szabályzat-hozzárendelés megakadályozott. Erőforrás-szolgáltatói mód esetén az erőforrás-szolgáltató kezeli az erőforrás kiértékelését.

A meglévő erőforrások kiértékelése során a megtagadási szabályzat definíciójának megfelelő erőforrások nem megfelelőként lesznek megjelölve.

Megtagadási tulajdonságok

Resource Manager mód esetén a megtagadási effektus nem rendelkezik további tulajdonságokkal a szabályzatdefiníció akkori feltételében való használathoz.

Erőforrás-szolgáltatói Microsoft.Kubernetes.Datamód esetén a megtagadási hatás a következő további altulajdonságokkal rendelkezik. templateInfo A már elavult új vagy frissített szabályzatdefiníciók constraintTemplate használatához szükség van.

  • templateInfo (kötelező)
    • A (z) nem használható.constraintTemplate
    • sourceType (kötelező)
      • Meghatározza a kényszersablon forrástípusát. Engedélyezett értékek: PublicURL vagy Base64Encoded.

      • Ha PublicURL, a tulajdonsággal url párosítva adja meg a kényszersablon helyét. A helynek nyilvánosan elérhetőnek kell lennie.

        Figyelmeztetés

        Ne használjon SAS URI-kat vagy jogkivonatokat url , és ne tegyen közzé titkos kódot.

      • Ha Base64Encoded, a tulajdonsággal content párosítva adja meg az alap 64 kódolású kényszersablont. Lásd: Szabályzatdefiníció létrehozása a kényszersablonból egyéni definíció létrehozásához egy meglévő OPEN Policy Agent (OPA) GateKeeper v3 kényszersablonból.

  • kényszer (nem kötelező)
    • A (z) nem használható.templateInfo
    • A kényszersablon CRD-implementációja. Értékeken keresztül átadott paramétereket használ.{{ .Values.<valuename> }} Az alábbi 2. példában ezek az értékek a következők {{ .Values.excludedNamespaces }} : és {{ .Values.allowedContainerImagesRegex }}.
  • névterek (nem kötelező)
    • Kubernetes-névterektömbje a szabályzatok kiértékelésének korlátozásához.
    • Egy üres vagy hiányzó érték miatt a szabályzat kiértékelése az összes névteret tartalmazza, kivéve a kizárt névterekben definiáltakat.
  • excludedNamespaces (kötelező)
  • labelSelector (kötelező)
    • Egy objektum , amely tartalmazza a matchLabels (objektum) és a matchExpression (tömb) tulajdonságokat annak meghatározásához, hogy mely Kubernetes-erőforrásokat vegye fel a szabályzatértékeléshez, amelyek megfelelnek a megadott címkéknek és választóknak.
    • Egy üres vagy hiányzó érték miatt a szabályzat kiértékelése az összes címkét és választót tartalmazza, kivéve a kizártnameterekben definiált névtereket.
  • apiGroups (a templateInfo használatakor szükséges)
    • A megfeleltetendő API-csoportokat tartalmazó tömb. Az üres tömb ([""]) az alapvető API-csoport.
    • Az apiGroups definiálása ["*"] nem engedélyezett.
  • kinds (a templateInfo használatakor szükséges)
    • Egy tömb , amely magában foglalja a Kubernetes-objektum típusát a kiértékelés korlátozásához.
    • A típusok definiálása ["*"] nem engedélyezett.
  • értékek (nem kötelező)
    • Meghatározza a kényszernek átadandó paramétereket és értékeket. Minden értéknek léteznie kell a kényszersablon CRD-jében.
  • constraintTemplate (elavult)
    • A (z) nem használható.templateInfo
    • A szabályzatdefiníciók létrehozásakor vagy frissítésekor le kell cserélni templateInfo .
    • Az új kényszereket definiáló CustomResourceDefinition (CRD) kényszersablon. A sablon meghatározza a Rego logikát, a Kényszersémát és a kényszerparamétereket, amelyeket a Azure Policy értékein keresztül adnak át. Javasoljuk, hogy az újabb helyére constraintTemplateaz újabbat templateInfo használja.

Megtagadási példa

1. példa: A megtagadási effektus használata Resource Manager módokhoz.

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

2. példa: Az erőforrás-szolgáltatói mód megtagadási hatásának Microsoft.Kubernetes.Datahasználata. A details.templateInfo további információi deklarálják a PublicURL használatát, és a Kubernetesben használni kívánt kényszersablon helyét állítja be url az engedélyezett tárolólemezképek korlátozásához.

"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

Az AuditIfNotExistshez hasonlóan a DeployIfNotExists szabályzatdefiníció egy sablontelepítést hajt végre a feltétel teljesülésekor. A DeployIfNotExists effektusként beállított szabályzat-hozzárendelésekhez felügyelt identitás szükséges a szervizeléshez.

Megjegyzés

A beágyazott sablonokat a deployIfNotExists támogatja, de a csatolt sablonok jelenleg nem támogatottak.

DeployIfNotExists értékelés

A DeployIfNotExists egy konfigurálható késés után fut, amikor egy erőforrás-szolgáltató egy létrehozási vagy frissítési előfizetést vagy erőforrás-kérelmet kezel, és sikeres állapotkódot adott vissza. A sablon üzembe helyezése akkor történik, ha nincsenek kapcsolódó erőforrások, vagy ha a ExistenceCondition által definiált erőforrások nem teljesülnek. Az üzembe helyezés időtartama a sablonban található erőforrások összetettségétől függ.

A kiértékelési ciklus során az erőforrásoknak megfelelő DeployIfNotExists effektussal rendelkező szabályzatdefiníciók nem megfelelőként vannak megjelölve, de nem történik művelet az adott erőforráson. A meglévő nem megfelelő erőforrások szervizelhetők szervizelési feladattal.

DeployIfNotExists tulajdonságai

A DeployIfNotExists effektus részletes tulajdonsága tartalmazza az összes olyan altulajdonságot, amely meghatározza az egyező kapcsolódó erőforrásokat és a végrehajtandó sablontelepítést.

  • Típus (kötelező)

    • Megadja az egyező kapcsolódó erőforrás típusát.
    • Ha a típus egy erőforrástípus a ha feltétel típusú erőforrás alatt, a szabályzat lekérdezi az ilyen típusú erőforrásokat a kiértékelt erőforrás hatókörén belül. Ellenkező esetben a szabályzat lekérdezései ugyanabban az erőforráscsoportban vagy előfizetésben találhatók, mint a kiértékelt erőforrás a existenceScope függvénytől függően.
  • Név (nem kötelező)

    • Megadja az egyező erőforrás pontos nevét, és a szabályzat egy adott erőforrást hív le a megadott típusú erőforrások helyett.
    • Ha az if.field.type és a then.details.type feltételértékek egyeznek, a névmegadása kötelezővé válik, és annak kell lennie, vagy [field('fullName')] gyermekerőforrásnak kell lennie[field('name')].
  • ResourceGroupName (nem kötelező)

    • Lehetővé teszi a kapcsolódó erőforrás egyezését egy másik erőforráscsoportból.
    • Nem alkalmazható, ha a típus olyan erőforrás, amely a ha feltétel típusú erőforrás alatt lenne.
    • Az alapértelmezett érték az if feltétel erőforráscsoportja.
    • Ha egy sablon üzembe helyezése végre van hajtva, az ennek az értéknek az erőforráscsoportjában lesz üzembe helyezve.
  • ExistenceScope (nem kötelező)

    • Az engedélyezett értékek az Előfizetés és a ResourceGroup.
    • Megadja, hogy honnan szeretné lekérni a kapcsolódó erőforrást.
    • Nem alkalmazható, ha a típus olyan erőforrás, amely a ha feltétel típusú erőforrás alatt lenne.
    • A ResourceGroupesetében az if feltétel erőforráscsoportjára vagy a ResourceGroupName-ben megadott erőforráscsoportra korlátozható.
    • Előfizetés esetén a kapcsolódó erőforrás teljes előfizetését lekérdezi. A hozzárendelés hatókörét előfizetésben vagy magasabb szinten kell beállítani a megfelelő értékeléshez.
    • Az alapértelmezett érték a ResourceGroup.
  • EvaluationDelay (nem kötelező)

    • Meghatározza, hogy mikor kell kiértékelni a kapcsolódó erőforrások meglétét. A késést csak olyan értékelésekhez használjuk, amelyek egy erőforrás-létrehozási vagy -frissítési kérelem eredményeként jönnek létre.
    • Az engedélyezett értékek AfterProvisioningAfterProvisioningSuccessAfterProvisioningFailure0 és 360 perc közötti ISO 8601-es időtartamok.
    • Az AfterProvisioning értékek a szabályzatszabály IF feltételében kiértékelt erőforrás kiépítési eredményét vizsgálják. AfterProvisioning a kiépítés befejezése után fut, az eredménytől függetlenül. Ha a kiépítés 6 óránál több időt vesz igénybe, a rendszer hibaként kezeli a kiértékelési késések meghatározásakor.
    • Az alapértelmezett érték PT10M (10 perc).
    • Ha hosszú próbaidőszakot ad meg, előfordulhat, hogy az erőforrás rögzített megfelelőségi állapota nem frissül a következő kiértékelési eseményindítóig.
  • ExistenceCondition (nem kötelező)

    • Ha nincs megadva, bármely kapcsolódó típusú erőforrás megfelel az effektusnak, és nem indítja el az üzembe helyezést.
    • Ugyanazt a nyelvet használja, mint az if feltétel házirendszabálya, de a rendszer egyenként értékeli ki az egyes kapcsolódó erőforrásokat.
    • Ha bármely egyező kapcsolódó erőforrás igaz értéket ad vissza, a hatás teljesül, és nem indítja el az üzembe helyezést.
    • Használhatja a [field()] függvényt az if feltételben szereplő értékekkel való egyenértékűség ellenőrzésére.
    • Használható például annak ellenőrzésére, hogy a szülőerőforrás ( az if feltételben) ugyanabban az erőforráshelyen található-e, mint a kapcsolódó erőforrás.
  • roleDefinitionIds (kötelező)

    • Ennek a tulajdonságnak tartalmaznia kell egy sztringtömböt, amely megfelel az előfizetés által elérhető szerepköralapú hozzáférés-vezérlési szerepkör-azonosítónak. További információkért lásd a szervizelést – a szabályzatdefiníció konfigurálását ismertető szakaszt.
  • DeploymentScope (nem kötelező)

    • Az engedélyezett értékek az Előfizetés és a ResourceGroup.
    • Beállítja az aktiválandó központi telepítés típusát. Az előfizetéselőfizetési szintű üzembe helyezést jelez, a ResourceGroup pedig egy erőforráscsoportba történő üzembe helyezést.
    • Az előfizetési szintű központi telepítések használatakor meg kell adni egy helytulajdonságot az üzembe helyezésben .
    • Az alapértelmezett érték a ResourceGroup.
  • Üzembe helyezés (kötelező)

    • Ennek a tulajdonságnak tartalmaznia kell a sablon teljes üzembe helyezését, mivel az átkerül a Microsoft.Resources/deployments PUT API-nak. További információ: Deployments REST API.
    • A sablonba ágyazva Microsoft.Resources/deployments egyedi neveket kell használnia a több szabályzatértékelés közötti versengés elkerülése érdekében. A szülő üzemelő példány neve a beágyazott központi telepítés nevének részeként használható a következőn keresztül [concat('NestedDeploymentName-', uniqueString(deployment().name))]: .

    Megjegyzés

    Az Üzembe helyezés tulajdonságon belüli összes függvény a sablon összetevőiként lesz kiértékelve, nem a szabályzatként. Ez alól kivételt képez az a paramétertulajdonság , amely a szabályzatból a sablonba továbbítja az értékeket. Ez az érték a sablonparaméter neve alatti szakaszban található értéket használja az értékátadás végrehajtásához (lásd a DeployIfNotExists példában a fullDbName értéket).

DeployIfNotExists példa

Példa: Kiértékeli SQL Server adatbázisokat annak megállapításához, hogy engedélyezve van-e a transzparensDataEncryption. Ha nem, akkor a rendszer végrehajt egy üzembe helyezést az engedélyezéshez.

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

Disabled (Letiltva)

Ez a hatás tesztelési helyzetekben vagy akkor hasznos, ha a szabályzatdefiníció paraméterezte az effektust. Ez a rugalmasság lehetővé teszi egyetlen hozzárendelés letiltását a szabályzat összes hozzárendelésének letiltása helyett.

A Letiltott effektus alternatíva a enforcementMode, amely a szabályzat-hozzárendelésen van beállítva. Ha a enforcementModele van tiltva, a rendszer továbbra is kiértékeli az erőforrásokat. A naplózás, például a tevékenységnaplók és a szabályzat hatása nem fordul elő. További információ: szabályzat-hozzárendelés – kényszerítési mód.

EnforceOPAConstraint

Ezt az effektust a rendszer a szabályzatdefiníciós Microsoft.Kubernetes.Datamóddal használja. A Gatekeeper v3 hozzáférés-vezérlési szabályok OPA-korlátozási keretrendszerben meghatározott open policy agent (OPA) számára történő átadására szolgál az Azure-beli Kubernetes-fürtöknek.

Fontos

Az EnforceOPAConstraint effektussal és a kapcsolódó Kubernetes Service-kategóriával rendelkező korlátozott előzetes verziójú szabályzatdefiníciók elavultak. Ehelyett használja az effektusok naplózását és elutasítását erőforrás-szolgáltatói módban Microsoft.Kubernetes.Data.

EnforceOPAConstraint kiértékelése

Az Open Policy Agent belépési vezérlője valós időben értékeli ki a fürtre vonatkozó új kéréseket. 15 percenként befejeződik a fürt teljes vizsgálata, és az eredmények Azure Policy.

EnforceOPAConstraint tulajdonságok

A EnforceOPAConstraint effektus részletes tulajdonsága tartalmazza a Gatekeeper v3 belépésvezérlési szabályt leíró altulajdonságokat.

  • constraintTemplate (kötelező)
    • Az új kényszereket definiáló CustomResourceDefinition (CRD) kényszersablon. A sablon meghatározza a Rego logikát, a Kényszersémát és a kényszerparamétereket, amelyeket a Azure Policy értékein keresztül adnak át.
  • kényszer (kötelező)
    • A kényszersablon CRD-implementációja. Értékeken keresztül átadott paramétereket használ.{{ .Values.<valuename> }} Az alábbi példában ezek az értékek a következők {{ .Values.cpuLimit }} : és {{ .Values.memoryLimit }}.
  • értékek (nem kötelező)
    • Meghatározza a kényszernek átadandó paramétereket és értékeket. Minden értéknek léteznie kell a kényszersablon CRD-jében.

EnforceOPAConstraint példa

Példa: A Gatekeeper v3 hozzáférés-vezérlési szabálya a tároló cpu- és memóriaerőforrás-korlátainak beállításához a Kubernetesben.

"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

Ezt az effektust a rendszer a szabályzatdefiníciós Microsoft.ContainerService.Datamóddal használja. A Gatekeeper v2 hozzáférés-vezérlési szabályainak átadására szolgál, amelyeket a Rego és az Open Policy Agent (OPA) határoz meg a Azure Kubernetes Service.

Fontos

Az EnforceRegoPolicy effektussal és a kapcsolódó Kubernetes Service-kategóriával rendelkező korlátozott előzetes verziójú szabályzatdefiníciók elavultak. Ehelyett használja az effektusok naplózását és elutasítását erőforrás-szolgáltatói módban Microsoft.Kubernetes.Data.

EnforceRegoPolicy kiértékelése

Az Open Policy Agent belépési vezérlője valós időben értékeli ki a fürtre vonatkozó új kéréseket. 15 percenként befejeződik a fürt teljes vizsgálata, és az eredmények Azure Policy.

EnforceRegoPolicy tulajdonságok

A EnforceRegoPolicy effektus részletes tulajdonsága a Gatekeeper v2 belépésvezérlési szabályt leíró altulajdonságokkal rendelkezik.

  • policyId (kötelező)
    • Egy egyedi név, amely paraméterként lett átadva a Rego belépésvezérlési szabályának.
  • szabályzat (kötelező)
    • A Rego belépésvezérlési szabály URI-ját adja meg.
  • policyParameters (nem kötelező)
    • Meghatározza azokat a paramétereket és értékeket, amelyekkel átadható az újratárgyalási szabályzatnak.

EnforceRegoPolicy példa

Példa: Gatekeeper v2 belépésvezérlési szabály, amely csak a megadott tárolórendszerképeket engedélyezi az AKS-ben.

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

Manuális (előzetes verzió)

Az új manual (előzetes verziójú) effektus lehetővé teszi saját egyéni igazolási erőforrások definiálását és nyomon követését. Más szabályzatdefiníciókkal ellentétben, amelyek aktívan keresik a kiértékelést, a Manuális effektus lehetővé teszi a megfelelőségi állapot manuális módosítását. A manuális szabályzat megfelelőségének módosításához létre kell hoznia egy igazolást az adott megfelelőségi állapothoz.

Megjegyzés

A nyilvános előzetes verzióban a manuális szabályzatok támogatása különböző Microsoft Defender keresztül érhető el a felhőszabályozási megfelelőségi kezdeményezésekhez. Ha Ön Microsoft Defender a Felhőbeli prémium szintű ügyfelek számára, tekintse meg a felhasználói élmény áttekintését.

Jelenleg a következő szabályozási szakpolitikai kezdeményezések közé tartoznak a manuális hatást tartalmazó szabályzatdefiníciók:

  • 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

Az alábbi példa az Azure-előfizetéseket célozza meg, és a kezdeti megfelelőségi állapotot a következőre Unknownállítja be: .

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

A defaultState tulajdonság három lehetséges értékkel rendelkezik:

  • Ismeretlen: A megcélzott erőforrások kezdeti, alapértelmezett állapota.
  • Megfelelő: Az erőforrás a manuális szabályzatszabványoknak megfelelően megfelelő
  • Nem megfelelő: Az erőforrás nem megfelelő a manuális szabályzatszabványoknak megfelelően

A Azure Policy megfelelőségi motor az összes alkalmazható erőforrást a definícióban megadott alapértelmezett állapotra értékeli (Unknownha nincs megadva). A Unknown megfelelőségi állapot azt jelzi, hogy manuálisan kell igazolnia az erőforrás-megfelelőségi állapotot. Ha az effektus állapota nincs meghatározva, akkor alapértelmezés szerint a következő lesz: Unknown. A Unknown megfelelőségi állapot azt jelzi, hogy a megfelelőségi állapotot saját maga kell igazolnia.

Az alábbi képernyőképen látható, hogyan jelenik meg egy manuális, állapottal rendelkező Unknown szabályzat-hozzárendelés a Azure Portal:

Az erőforrás-megfelelőségi tábla a Azure Portal egy hozzárendelt manuális szabályzatot mutat, amelynek megfelelőségi oka

Ha érvényes szabályzatdefiníciót manual rendel hozzá, lehetősége van bizonyítékokat is felvenni, amelyek az egyéni megfelelőségi igazolást támogató opcionális kiegészítő információkra utalnak. Maga a bizonyíték az Azure Storage-ban van tárolva, és megadhatja a tárolóblobtárolót a szabályzat-hozzárendelés metaadataiban a tulajdonság evidenceStoragesalatt. A bizonyítékfájl további részleteit az igazolási JSON-erőforrás ismerteti.

Igazolások

Microsoft.PolicyInsights/attestationsAz igazolási erőforrásnak nevezett új proxyerőforrás-típus manuális szabályzatban állítja be a megcélzott erőforrások megfelelőségi állapotát. Az igazolási erőforrásról Azure Policy igazolási struktúra elolvasásával tudhat meg többet.

Módosítás

A módosítással tulajdonságokat vagy címkéket adhat hozzá, frissíthet vagy távolíthat el egy előfizetésen vagy erőforráson a létrehozás vagy frissítés során. Gyakori példa a címkék frissítése az erőforrásokon, például a CostCenteren. A meglévő nem megfelelő erőforrások szervizelhetők szervizelési feladattal. Egyetlen módosítási szabály tetszőleges számú műveletet tartalmazhat. A Módosítás effektussal beállított szabályzat-hozzárendelésekhez felügyelt identitás szükséges a szervizeléshez.

A Modify a következő műveleteket támogatja:

  • Erőforráscímkék hozzáadása, cseréje vagy eltávolítása. Címkék esetén a módosítási szabályzatnak indexeltnek kell lenniemode, kivéve, ha a célerőforrás erőforráscsoport.
  • Adja hozzá vagy cserélje le a virtuális gépek és a virtuálisgép-méretezési csoportok felügyelt identitástípusának (identity.type) értékét.
  • Adja hozzá vagy cserélje le bizonyos aliasok értékeit.
    • HasználatGet-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }Azure PowerShell 4.6.0-s vagy újabb verziójában a Módosítással használható aliasok listájának lekéréséhez.

Fontos

Ha címkéket kezel, javasoljuk, hogy a Módosítás parancsot használja hozzáfűzés helyett, mivel a módosítás további művelettípusokat biztosít, és lehetővé teszi a meglévő erőforrások szervizelésének lehetőségét. A Append azonban akkor ajánlott, ha nem tud felügyelt identitást létrehozni, vagy a Módosítás még nem támogatja az erőforrás-tulajdonság aliasát.

Értékelés módosítása

A módosítás kiértékeli, mielőtt az erőforrás-szolgáltató feldolgozta a kérést egy erőforrás létrehozása vagy frissítése során. A módosítási műveletek akkor lesznek alkalmazva a kérelem tartalmára, ha a szabályzatszabály feltételének teljesül. Minden módosítási művelet megadhat egy feltételt, amely meghatározza az alkalmazáskor. A rendszer kihagyja a téves feltételkiértékeléssel rendelkező műveleteket.

Alias megadásakor a rendszer a következő további ellenőrzéseket hajtja végre annak érdekében, hogy a Módosítás művelet ne módosítsa a kérelem tartalmát oly módon, hogy az erőforrás-szolgáltató elutasítsa azt:

  • Az alias által leképezendő tulajdonság "Módosíthatóként" van megjelölve a kérés API-verziójában.
  • A Módosítás művelet jogkivonattípusa megegyezik a kérelem API-verziójában szereplő tulajdonsághoz várt jogkivonattípussal.

Ha ezen ellenőrzések valamelyike sikertelen, a szabályzat kiértékelése visszakerül a megadott conflictEffect értékre.

Fontos

Javasoljuk, hogy az aliasokat tartalmazó definíciók módosítása naplózásiütközési hatást használjon, hogy elkerülje a sikertelen kéréseket olyan API-verziók használatával, amelyekben a megfeleltetett tulajdonság nem "Módosítható". Ha ugyanaz az alias eltérően viselkedik az API-verziók között, a feltételes módosítási műveletekkel meghatározható az egyes API-verziókhoz használt módosítási művelet.

Ha a Módosítás effektust használó szabályzatdefiníció egy kiértékelési ciklus részeként fut, nem módosítja a már létező erőforrásokat. Ehelyett minden olyan erőforrást nem megfelelőként jelöl meg, amely megfelel az if feltételnek.

Tulajdonságok módosítása

A Módosítás effektus részletek tulajdonsága tartalmazza az összes olyan altulajdonságot, amely meghatározza a szervizeléshez szükséges engedélyeket, valamint a címkeértékek hozzáadásához, frissítéséhez vagy eltávolításához használt műveleteket .

  • roleDefinitionIds (kötelező)
  • conflictEffect (nem kötelező)
    • Meghatározza, hogy melyik szabályzatdefiníció "nyer", ha egynél több szabályzatdefiníció módosítja ugyanazt a tulajdonságot, vagy ha a Módosítás művelet nem működik a megadott aliason.
      • Új vagy frissített erőforrások esetén a megtagadással rendelkező szabályzatdefiníció élvez elsőbbséget. A naplózással rendelkező szabályzatdefiníciók kihagyják az összes műveletet. Ha egynél több szabályzatdefiníció is megtagadja a kérést ütközésként. Ha minden szabályzatdefiníció rendelkezik naplózással, akkor az ütköző szabályzatdefiníciók egyik műveletét sem dolgozza fel a rendszer.
      • Meglévő erőforrások esetén, ha egynél több szabályzatdefiníció megtagadja, a megfelelőségi állapot Ütközés. Ha egy vagy kevesebb szabályzatdefiníció megtagadja, minden hozzárendelés nem megfelelő megfelelőségi állapotot ad vissza.
    • Elérhető értékek: naplózás, megtagadás, letiltva.
    • Az alapértelmezett érték a megtagadás.
  • műveletek (kötelező)
    • Az egyező erőforrásokon befejezendő összes címkeművelet tömbje.
    • Tulajdonságok:
      • művelet (kötelező)
        • Meghatározza, hogy milyen műveletet kell elvégezni egy egyező erőforráson. A lehetőségek a következők: addOrReplace, Add, Remove. Az Add a Hozzáfűzés effektushoz hasonlóan viselkedik.
      • mező (kötelező)
        • A hozzáadni, cserélni vagy eltávolítani kívánt címke. A címkeneveknek meg kell felelnie a többi mező elnevezési konvenciójának.
      • érték (nem kötelező)
        • Az az érték, amelybe a címkét be szeretné állítani.
        • Ez a tulajdonság akkor szükséges, ha a műveletaddOrReplace vagy Add.
      • feltétel (nem kötelező)
        • Egy Azure Policy nyelvű kifejezést tartalmazó sztring, amely igaz vagyhamis értéket kiértékelő Policy-függvényekkel rendelkezik.
        • Nem támogatja a következő Szabályzatfüggvényeket: field(), resourceGroup(), subscription().

Műveletek módosítása

Az operations tulajdonságtömb lehetővé teszi több címke módosítását egyetlen szabályzatdefiníciótól eltérő módon. Minden művelet művelet-, mező- és értéktulajdonságokból áll. A művelet határozza meg, hogy a szervizelési feladat mit végez a címkéken, a mező határozza meg, hogy melyik címke módosult, és az érték határozza meg a címke új beállítását. Az alábbi példa a következő címkemódosításokat hajtja végre:

  • A címkét environment "Teszt" értékre állítja, még akkor is, ha már létezik egy másik értékkel.
  • Eltávolítja a címkét TempResource.
  • A címkét a Dept szabályzat-hozzárendeléshez konfigurált DeptName szabályzatparaméterre állítja be.
"details": {
    ...
    "operations": [
        {
            "operation": "addOrReplace",
            "field": "tags['environment']",
            "value": "Test"
        },
        {
            "operation": "Remove",
            "field": "tags['TempResource']",
        },
        {
            "operation": "addOrReplace",
            "field": "tags['Dept']",
            "value": "[parameters('DeptName')]"
        }
    ]
}

A művelettulajdonság a következő lehetőségeket tartalmazza:

Művelet Description
addOrReplace Hozzáadja a definiált tulajdonságot vagy címkét és értéket az erőforráshoz, még akkor is, ha a tulajdonság vagy címke már létezik egy másik értékkel.
Hozzáadás Hozzáadja a definiált tulajdonságot vagy címkét és értéket az erőforráshoz.
Eltávolítás Eltávolítja a definiált tulajdonságot vagy címkét az erőforrásból.

Példák módosítása

1. példa: Adja hozzá a environment címkét, és cserélje le a meglévő environment címkéket a "Test" kifejezésre:

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

2. példa: Távolítsa el a env címkét, és adja hozzá a environment címkét, vagy cserélje le a meglévő environment címkéket egy paraméteres értékre:

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

3. példa: Győződjön meg arról, hogy egy tárfiók nem engedélyezi a blobok nyilvános hozzáférését, a Módosítás művelet csak akkor lesz alkalmazva, ha a kérelmeket a "2019-04-01" api-verziónál nagyobb vagy azzal egyenlő API-verzióval értékeli ki:

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

Rétegezési szabályzatdefiníciók

Egy erőforrásra több hozzárendelés is hatással lehet. Ezek a hozzárendelések ugyanabban a hatókörben vagy különböző hatókörökben lehetnek. A hozzárendelések mindegyike valószínűleg más hatást is meghatároz. Az egyes szabályzatok feltétele és hatása egymástól függetlenül lesz kiértékelve. Például:

  • Szabályzat 1
    • Az erőforrás helyét a "westus" helyre korlátozza
    • Hozzárendelve az A előfizetéshez
    • Megtagadási hatás
  • Házirend 2
    • Az erőforrás helyét az "eastus" (keleti) régióra korlátozza
    • Hozzárendelve a B erőforráscsoporthoz az A előfizetésben
    • Naplózási hatás

Ez a beállítás a következő eredményt eredményezi:

  • Az "eastus" B erőforráscsoportjában már szereplő erőforrások megfelelnek a 2. szabályzatnak, és nem felelnek meg az 1. szabályzatnak
  • A "B" erőforráscsoportban már nem található "eastus" erőforrás nem felel meg a 2. szabályzatnak, és nem felel meg az 1. szabályzatnak, ha nem a "westus"
  • Az 1. szabályzat megtagadja az A előfizetésben lévő, nem a "westus" régióban lévő összes új erőforrást
  • Minden új erőforrás létrejön az A előfizetésben és a "westus" B erőforráscsoportjában, és nem felel meg a 2. szabályzatnak

Ha az 1. és a 2. szabályzatnak is megtagadási hatása volt, a helyzet a következőre változik:

  • A B erőforráscsoportban már nem található "eastus" erőforrás nem felel meg a 2. szabályzatnak
  • A "westus" nem található B erőforráscsoportban már szereplő erőforrások nem felelnek meg az 1. szabályzatnak
  • Az 1. szabályzat megtagadja az A előfizetésben lévő, nem a "westus" régióban lévő összes új erőforrást
  • Az A előfizetés B erőforráscsoportjában található összes új erőforrás le van tagadva

Az egyes hozzárendelések egyenként lesznek kiértékelve. Így nincs lehetőség arra, hogy egy erőforrás átcsússzon a hatókörbeli különbségek közötti résen. A rétegzési szabályzatdefiníciók nettó eredménye kumulatívan legszigorúbbnak tekinthető. Ha például az 1. és a 2. szabályzatnak is megtagadási hatása lenne, az erőforrásokat az átfedésben lévő és ütköző szabályzatdefiníciók blokkolnák. Ha továbbra is létre kell hoznia az erőforrást a célhatókörben, tekintse át az egyes hozzárendelések kizárásait annak ellenőrzéséhez, hogy a megfelelő szabályzat-hozzárendelések hatással vannak-e a megfelelő hatókörökre.

Következő lépések