Az Azure Policy kivételi struktúrája

Az Azure Policy kivételi funkciója arra szolgál, hogy mentesítsen egy erőforráshierarchiát vagy egy egyéni erőforrást a kezdeményezések vagy definíciók kiértékelése alól. Azok az erőforrások, amelyek kivételt képeznek az általános megfelelőségbe, de nem értékelhetők ki, vagy ideiglenes lemondással rendelkeznek. További információ: Az Azure Policy alkalmazhatóságának ismertetése. Az Azure Policy-kivételek a következő Resource Manager-módokkal is működnek: Microsoft.Kubernetes.Data, Microsoft.KeyVault.Data és Microsoft.Network.Data.

A szabályzatkivétel létrehozásához JavaScript Object Notation (JSON) formátumot kell használni. A szabályzatkivétel az alábbiakhoz kapcsolódó elemeket tartalmaz:

A szabályzatok kivétele gyermekobjektumként jön létre az erőforráshierarchiában, vagy a kivételt kapott egyéni erőforrás. Az erőforrás-szolgáltatói mód összetevő szintjén nem hozhatók létre kivételek. Ha eltávolítja a kivételezett szülőerőforrást, a kivétel is el lesz távolítva.

Az alábbi JSON például egy erőforrás lemondási kategóriájában lévő szabályzatmentességet mutat egy kezdeményezési hozzárendeléshez.resourceShouldBeCompliantInit Az erőforrás a kezdeményezésben szereplő szabályzatdefiníciók közül csak kettő, az customOrgPolicy egyéni szabályzatdefiníció ( policyDefinitionReferenceId: requiredTags) és az Engedélyezett helyek beépített szabályzatdefiníciója ( policyDefinitionReferenceId : allowedLocations):

{
    "id": "/subscriptions/{subId}/resourceGroups/ExemptRG/providers/Microsoft.Authorization/policyExemptions/resourceIsNotApplicable",
    "apiVersion": "2020-07-01-preview",
    "name": "resourceIsNotApplicable",
    "type": "Microsoft.Authorization/policyExemptions",
    "properties": {
        "displayName": "This resource is scheduled for deletion",
        "description": "This resources is planned to be deleted by end of quarter and has been granted a waiver to the policy.",
        "metadata": {
            "requestedBy": "Storage team",
            "approvedBy": "IA",
            "approvedOn": "2020-07-26T08:02:32.0000000Z",
            "ticketRef": "4baf214c-8d54-4646-be3f-eb6ec7b9bc4f"
        },
        "policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
        "policyDefinitionReferenceIds": [
            "requiredTags",
            "allowedLocations"
        ],
        "exemptionCategory": "waiver",
        "expiresOn": "2020-12-31T23:59:00.0000000Z",
        "assignmentScopeValidation": "Default"
    }
}

Megjelenített név és leírás

A displayName és a leírás használatával azonosíthatja a szabályzat kivételét, és kontextust adhat meg annak az adott erőforrással való használatához. A displayName legfeljebb 128 karakter hosszúságú, a leírás pedig legfeljebb 512 karakter hosszúságú.

Metaadatok

A metaadat-tulajdonság lehetővé teszi a releváns információk tárolásához szükséges gyermektulajdonságok létrehozását. A példában a kért TulajdonságokBy, approvedBy, approvedOn és ticketRef olyan ügyfélértékeket tartalmaz, amelyek információt nyújtanak arról, hogy ki kérte a mentességet, ki hagyta jóvá és mikor, valamint egy belső nyomkövetési jegyet a kéréshez. Ezek a metaadat-tulajdonságok példák, de nem kötelezőek, és a metaadatok nem korlátozódnak ezekre a gyermektulajdonságokra.

Szabályzat-hozzárendelés azonosítója

Ennek a mezőnek egy szabályzat- vagy kezdeményezés-hozzárendelés teljes elérési útjának nevét kell tartalmaznia. policyAssignmentId egy sztring, és nem tömb. Ez a tulajdonság határozza meg, hogy melyik hozzárendelés alól mentesül a szülőerőforrás-hierarchia vagy az egyes erőforrás.

Szabályzatdefiníció azonosítói

Ha a policyAssignmentId kezdeményezési hozzárendelésre van szükség, a policyDefinitionReferenceIds tulajdonság használatával megadhatja, hogy a kezdeményezés mely szabályzatdefinícióira vonatkozik a tárgyerőforrás kivétele. Mivel az erőforrás mentesülhet egy vagy több belefoglalt szabályzatdefiníció alól, ez a tulajdonság tömb. Az értékeknek meg kell egyeznie a mezők kezdeményezési policyDefinitions.policyDefinitionReferenceId definíciójában szereplő értékekkel.

Kivételkategória

Két kivételkategória létezik, amelyek a kivételek csoportosítására szolgálnak:

  • Enyhítve: A kivétel azért van megadva, mert a szabályzat szándéka egy másik módszerrel teljesül.
  • Mentesség: A mentesség azért van megadva, mert az erőforrás meg nem felelésállapotát ideiglenesen elfogadják. A kategória használatának másik oka egy olyan erőforrás vagy erőforráshierarchia, amelyet ki kell zárni egy vagy több definícióból egy kezdeményezésben, de nem szabad kizárni a teljes kezdeményezésből.

Lejárat

Ha azt szeretné beállítani, hogy egy erőforráshierarchia vagy egy adott erőforrás már nem mentesül-e a hozzárendelés alól, állítsa be a expiresOn tulajdonságot. Ennek az opcionális tulajdonságnak univerzális ISO 8601 DateTime formátumban yyyy-MM-ddTHH:mm:ss.fffffffZkell lennie.

Feljegyzés

A szabályzat kivételei nem törlődnek a expiresOn dátum elérésekor. Az objektum megmarad a nyilvántartáshoz, de a kivételt a továbbiakban nem tartják tiszteletben.

Erőforrás-választók

A kivételek támogatnak egy választható tulajdonságot resourceSelectors. Ez a tulajdonság ugyanúgy működik a kivételekben, mint a hozzárendelésekben, lehetővé téve az erőforrások bizonyos részhalmazainak fokozatos bevezetését vagy visszaállítását az erőforrás típusa, az erőforrás helye vagy az erőforrás helye alapján. Az erőforrás-választók használatáról a hozzárendelési struktúrában talál további részleteket. Íme egy példa a kivétel JSON-ra, amely erőforrás-választókat használ. Ebben a példában csak a benne lévő westcentralus erőforrások mentesülnek a szabályzat-hozzárendelés alól:

{
    "properties": {
        "policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
        "policyDefinitionReferenceIds": [
            "limitSku", "limitType"
        ],
        "exemptionCategory": "Waiver",
        "resourceSelectors": [
            {
                "name": "TemporaryMitigation",
                "selectors": [
                    {
                        "kind": "resourceLocation",
                        "in": [ "westcentralus" ]
                    }
                ]
            }
        ]
    },
    "systemData": { ... },
    "id": "/subscriptions/{subId}/resourceGroups/demoCluster/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
    "type": "Microsoft.Authorization/policyExemptions",
    "name": "DemoExpensiveVM"
}

A példákban szereplő régiók hozzáadhatók vagy eltávolíthatók a resourceLocation listából. Az erőforrás-választók nagyobb rugalmasságot biztosítanak annak érdekében, hogy hol és hogyan hozhatók létre és kezelhetők a kivételek.

Hozzárendelés hatókörének érvényesítése (előzetes verzió)

A legtöbb forgatókönyvben a kivétel hatóköre érvényesítve van, hogy a szabályzat-hozzárendelés hatókörében vagy alatt legyen. Az opcionális assignmentScopeValidation tulajdonság lehetővé teszi, hogy a kivétel megkerülje ezt az ellenőrzést, és a hozzárendelés hatókörén kívül hozható létre. Ez olyan helyzetekre vonatkozik, amikor az előfizetést át kell helyezni az egyik felügyeleti csoportból (MG) egy másikba, de az áthelyezést a szabályzat letiltja az előfizetésen belüli erőforrások tulajdonságai miatt. Ebben a forgatókönyvben létrehozhat egy kivételt az előfizetéshez a jelenlegi MG-ben, amely mentesíti az erőforrásait a cél MG-n lévő szabályzat-hozzárendelés alól. Így, amikor az előfizetést áthelyezik a cél MG-be, a művelet nem lesz blokkolva, mert az erőforrások már mentesülnek a szóban forgó szabályzat-hozzárendelés alól. A tulajdonság használatát az alábbiakban szemléltetjük:

{
    "properties": {
        "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgB}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
        "policyDefinitionReferenceIds": [
            "limitSku", "limitType"
        ],
        "exemptionCategory": "Waiver",
        "assignmentScopeValidation": "DoNotValidate",
    },
    "systemData": { ... },
    "id": "/subscriptions/{subIdA}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
    "type": "Microsoft.Authorization/policyExemptions",
    "name": "DemoExpensiveVM"
}

A assignmentScopeValidation lehetséges értékei a Default és a DoNotValidate. Ha nincs megadva, az alapértelmezett érvényesítési folyamat fog történni.

Szükséges engedélyek

A szabályzatmentességi objektumok kezeléséhez szükséges Azure RBAC-engedélyek a Microsoft.Authorization/policyExemptions műveletcsoportban találhatók. A beépített szerepkörök erőforrásházirend-közreműködői és biztonsági Rendszergazda rendelkeznek az engedélyekkel és write az read engedélyekkel, és a szabályzat Elemzések adatíró (előzetes verzió) rendelkezik az read engedéllyel.

A kivételezés jelentős hatása miatt a kivételek esetében fokozott biztonsági intézkedések vannak érvényben. Az erőforráshierarchia vagy az egyéni erőforrás műveletének megkövetelésén Microsoft.Authorization/policyExemptions/write túl a kivétel létrehozójának rendelkeznie kell a exempt/Action célhozzárendelésre vonatkozó igével.

Kivétel létrehozása és kezelése

A kivételeket olyan időhöz kötött vagy konkrét forgatókönyvekhez javasoljuk, ahol egy erőforrást vagy erőforráshierarchiát továbbra is nyomon kell követni, és más módon is értékelni kell, de van egy konkrét oka annak, hogy nem kell a megfelelőséget értékelni. Ha például egy környezet rendelkezik a beépített definícióval Storage accounts should disable public network access (ID: b2982f36-99f2-4db5-8eff-283140c09693) a naplózásra beállított effektuskészlettel. A megfelelőség értékelésekor a "StorageAcc1" erőforrás nem megfelelő, de a StorageAcc1-nek üzleti célokra engedélyeznie kell a nyilvános hálózati hozzáférést. Ekkor el kell küldeni egy kérést egy, a StorageAcc1-et célként szolgáló kivételerőforrás létrehozásához. A kivétel létrehozása után a StorageAcc1 kivételként jelenik meg a megfelelőségi felülvizsgálatban.

Rendszeresen tekintse át a mentességeket annak biztosítása érdekében, hogy az összes jogosult tétel megfelelően legyen mentesítve, és haladéktalanul távolítsa el a mentességre már nem jogosult elemeket. Ekkor a lejárt kivételi erőforrások is törölhetők.

Következő lépések