Azure Policy-hozzárendelés struktúrája

Az Azure Policy szabályzat-hozzárendeléseket használ annak meghatározására, hogy mely erőforrásokat melyik szabályzatok vagy kezdeményezések rendelik hozzá. A szabályzat-hozzárendelés meghatározhatja az adott erőforráscsoport paramétereinek értékeit a hozzárendelés időpontjában, így újra felhasználhatók azok a szabályzatdefiníciók, amelyek ugyanazokat az erőforrás-tulajdonságokat kezelik különböző megfelelőségi igényekkel.

Feljegyzés

Az Azure Policy hatóköréről további információt az Azure Policy hatókörének ismertetése című témakörben talál.

A JavaScript Object Notation (JSON) használatával hozhat létre szabályzat-hozzárendelést. A szabályzat-hozzárendelés a következő elemeket tartalmazza:

Az alábbi JSON például doNotEnforce módban jeleníti meg a szabályzat-hozzárendelést dinamikus paraméterekkel:

{
    "properties": {
        "displayName": "Enforce resource naming rules",
        "description": "Force resource names to begin with DeptA and end with -LC",
        "metadata": {
            "assignedBy": "Cloud Center of Excellence"
        },
        "enforcementMode": "DoNotEnforce",
        "notScopes": [],
        "policyDefinitionId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
        "nonComplianceMessages": [
            {
                "message": "Resource names must start with 'DeptA' and end with '-LC'."
            }
        ],
        "parameters": {
            "prefix": {
                "value": "DeptA"
            },
            "suffix": {
                "value": "-LC"
            }
        },
        "identity": {
            "type": "SystemAssigned"
        },
        "resourceSelectors": [],
        "overrides": []
    }
}

Minden Azure Policy-minta Az Azure Policy-mintákban található.

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

A displayName és a leírás használatával azonosíthatja a szabályzat-hozzárendelést, és kontextust adhat a szabályzatnak az adott erőforráskészlettel való használatához. A displayName legfeljebb 128 karakter hosszúságú, a leírás pedig legfeljebb 512 karakter hosszúságú.

Metaadatok

Az opcionális metadata tulajdonság a szabályzat-hozzárendeléssel kapcsolatos információkat tárolja. Az ügyfelek a szervezet számára hasznos tulajdonságokat és értékeket definiálhatják a következő helyen metadata: . Az Azure Policy azonban néhány gyakori tulajdonságot használ. Minden metadata tulajdonság legfeljebb 1024 karakter hosszúságú lehet.

Gyakori metaadat-tulajdonságok

  • assignedBy (sztring): A hozzárendelést létrehozó biztonsági tag rövid neve.

  • createdBy (sztring): A hozzárendelést létrehozó biztonsági tag GUID azonosítója.

  • createdOn (sztring): A hozzárendelés létrehozási idejének univerzális ISO 8601 DateTime formátuma.

  • parameterScopes(objektum): Kulcs-érték párok gyűjteménye, amelyekben a kulcs egyezik a strongType konfigurált paraméter nevével, és az érték határozza meg a Portálon használt erőforrás-hatókört, hogy a strongType-nak megfelelő módon adja meg az elérhető erőforrások listáját. A Portál akkor állítja be ezt az értéket, ha a hatókör eltér a hozzárendelés hatókörétől. Ha be van állítva, a portál házirend-hozzárendelésének szerkesztése automatikusan erre az értékre állítja a paraméter hatókörét. A hatókör azonban nincs zárolva az értékhez, és más hatókörre is módosítható.

    Az alábbi példa parameterScopes egy strongType nevű paraméterre backupPolicyId mutat, amely beállítja az erőforrás-kiválasztás hatókörét, amikor a hozzárendelést szerkesztik a Portálon.

    "metadata": {
        "parameterScopes": {
            "backupPolicyId": "/subscriptions/{SubscriptionID}/resourcegroups/{ResourceGroupName}"
        }
    }
    
  • updatedBy (sztring): A hozzárendelést frissített biztonsági tag rövid neve, ha van ilyen.

  • updatedOn (sztring): A hozzárendelés frissítési idejének univerzális ISO 8601 DateTime formátuma, ha van ilyen.

  • evidenceStorages (objektum): Az ajánlott alapértelmezett tárfiók, amelyet a szabályzat-hozzárendelések manual igazolásainak bizonyítékainak tárolására kell használni. A displayName tulajdonság a tárfiók neve. A evidenceStorageAccountID tulajdonság a tárfiók erőforrás-azonosítója. A evidenceBlobContainer tulajdonság a blobtároló neve, amelyben tárolni szeretné a bizonyítékokat.

    {
      "properties": {
        "displayName": "A contingency plan should be in place to ensure operational continuity for each Azure subscription.",
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/{definitionId}",
        "metadata": {
          "evidenceStorages": [
            {
              "displayName": "Default evidence storage",
              "evidenceStorageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}",
              "evidenceBlobContainer": "evidence-container"
            }
          ]
        }
      }
    }
    

Erőforrás-választók

Az opcionális resourceSelectors tulajdonság megkönnyíti a biztonságos üzembehelyezési eljárásokat (SDP) azáltal, hogy lehetővé teszi a szabályzat-hozzárendelések fokozatos bevezetését olyan tényezők alapján, mint az erőforrás helye, az erőforrás típusa vagy az erőforrás helye. Erőforrás-választók használata esetén az Azure Policy csak az erőforrás-választókban megadott specifikációkra vonatkozó erőforrásokat értékeli ki. Az erőforrás-választók a kivételek hatókörének ugyanúgy szűkítésére is használhatók.

A következő példaforgatókönyvben az új szabályzat-hozzárendelés csak akkor lesz kiértékelve, ha az erőforrás helye az USA keleti régiója vagy az USA nyugati régiója.

{
    "properties": {
        "policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyDefinitions/ResourceLimit",
        "definitionVersion": "1.1",
        "resourceSelectors": [
            {
                "name": "SDPRegions",
                "selectors": [
                    {
                        "kind": "resourceLocation",
                        "in": [ "eastus", "westus" ]
                    }
                ]
            }
        ]
    },
    "systemData": { ... },
    "id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/ResourceLimit",
    "type": "Microsoft.Authorization/policyAssignments",
    "name": "ResourceLimit"
}

Ha készen áll a szabályzat kiértékelési hatókörének bővítésére, csak módosítania kell a hozzárendelést. Az alábbi példa a szabályzat-hozzárendelést mutatja be két további Azure-régióval az SDPRegions választóhoz hozzáadva. Vegye figyelembe, hogy ebben a példában az SDP azt jelenti, hogy Széf üzembe helyezési gyakorlatot:

{
    "properties": {
        "policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyDefinitions/ResourceLimit",
        "definitionVersion": "1.1",
        "resourceSelectors": [
            {
                "name": "SDPRegions",
                "selectors": [
                    {
                        "kind": "resourceLocation",
                        "in": [ "eastus", "westus", "centralus", "southcentralus" ]
                    }
                ]
            }
        ]
    },
    "systemData": { ... },
    "id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/ResourceLimit",
    "type": "Microsoft.Authorization/policyAssignments",
    "name": "ResourceLimit"
}

Az erőforrás-választók a következő tulajdonságokkal rendelkeznek:

  • name: Az erőforrás-választó neve.

  • selectors: (Nem kötelező) A szabályzat-hozzárendelésre alkalmazható erőforrások melyik részhalmazának meghatározására használt tulajdonságot kell kiértékelni a megfelelőség szempontjából.

    • kind: Egy választó tulajdonsága, amely leírja, hogy melyik jellemző szűkíti le a kiértékelt erőforrások készletét. Mindegyik típus csak egyszer használható egyetlen erőforrás-választóban. Az engedélyezett értékek a következők:

      • resourceLocation: Ez a tulajdonság az erőforrások típusától függően történő kiválasztására szolgál. Nem használható ugyanabban az erőforrás-választóban, mint a resourceWithoutLocation.

      • resourceType: Ez a tulajdonság az erőforrások típusától függően történő kiválasztására szolgál.

      • resourceWithoutLocation: Ez a tulajdonság olyan erőforrások kiválasztására szolgál az előfizetés szintjén, amelyek nem rendelkeznek helytel. Jelenleg csak a .subscriptionLevelResources Nem használható ugyanabban az erőforrás-választóban, mint a resourceLocation.

    • in: A megadott kindértékeket tartalmazó lista. Nem használható a notIn. Legfeljebb 50 értéket tartalmazhat.

    • notIn: A megadott kindértékek nem engedélyezett értékeinek listája. Nem használható a in. Legfeljebb 50 értéket tartalmazhat.

Az erőforrás-választók több választót is tartalmazhatnak. Ahhoz, hogy egy erőforrás-választóra alkalmazható legyen, az erőforrásnak meg kell felelnie az összes választója által meghatározott követelményeknek. Emellett egyetlen hozzárendelésben legfeljebb 10 erőforrás-választó adható meg. A hatókörön belüli erőforrások akkor lesznek kiértékelve, ha megfelelnek ezeknek az erőforrás-választóknak.

Felülbírálások

Az opcionális overrides tulajdonság lehetővé teszi a szabályzatdefiníciók hatásának módosítását anélkül, hogy módosítaná az alapul szolgáló szabályzatdefiníciót, vagy paraméteres effektust használ a szabályzatdefinícióban.

A felülbírálások leggyakoribb használati esete a nagy számú társított szabályzatdefinícióval rendelkező házirend-kezdeményezések. Ebben az esetben a több szakpolitikai hatás kezelése jelentős adminisztrációs erőfeszítést igényelhet, különösen akkor, ha a hatást időről időre frissíteni kell. A felülbírálásokkal egyszerre több szabályzatdefiníció hatását is frissítheti egy kezdeményezésen belül.

Lássunk egy példát. Tegyük fel, hogy rendelkezik egy CostManagement nevű házirend-kezdeményezéssel, amely tartalmaz egy egyéni szabályzatdefiníciót a corpVMSizePolicy használatával policyDefinitionReferenceIdés egyetlen hatásávalaudit. Tegyük fel, hogy hozzá szeretné rendelni a CostManagement kezdeményezést , de még nem szeretné látni a szabályzat megfelelőségi jelentését. A szabályzat "naplózási" hatását a kezdeményezési hozzárendelés felülbírálásával a "letiltva" válthatja fel, ahogyan az a következő példában látható:

{
    "properties": {
        "policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policySetDefinitions/CostManagement",
        "overrides": [
            {
                "kind": "policyEffect",
                "value": "disabled",
                "selectors": [
                    {
                        "kind": "policyDefinitionReferenceId",
                        "in": [ "corpVMSizePolicy" ]
                    }
                ]
            }
        ]
    },
    "systemData": { ... },
    "id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
    "type": "Microsoft.Authorization/policyAssignments",
    "name": "CostManagement"
}

A felülbírálások a következő tulajdonságokkal rendelkeznek:

  • kind: A hozzárendelés által felülbírálható tulajdonság. A támogatott típus a policyEffect.

  • value: Az új érték, amely felülbírálja a meglévő értéket. A támogatott értékek effektusok.

  • selectors: (Nem kötelező) A szabályzat-hozzárendelés hatókörének a felülbíráláshoz használt tulajdonság.

    • kind: Egy választó tulajdonsága, amely leírja, hogy milyen jellemzők szűkítik a felülbírálás hatókörét. Az engedélyezett érték a kind: policyEffect következő:

      • policyDefinitionReferenceId: Ez határozza meg, hogy a kezdeményezési hozzárendelésen belül mely szabályzatdefiníciók legyenek hatással a hatás felülbírálására.
    • in: A megadott kindértékeket tartalmazó lista. Nem használható a notIn. Legfeljebb 50 értéket tartalmazhat.

    • notIn: A megadott kindértékek nem engedélyezett értékeinek listája. Nem használható a in. Legfeljebb 50 értéket tartalmazhat.

Vegye figyelembe, hogy a policyDefinitionReferenceId tömbben több érték megadásával egyetlen felülbírálással helyettesítheti számos szabályzat hatását. Egyetlen felülbírálás legfeljebb 50 policyDefinitionReferenceIdshez használható, és egyetlen szabályzat-hozzárendelés legfeljebb 10 felülbírálást tartalmazhat, amelyek kiértékelése a megadott sorrendben történik. A hozzárendelés létrehozása előtt a felülbírálásban kiválasztott effektus érvényesítve lesz a szabályzatszabály és a paraméter által megengedett értéklistával (azokban az esetekben, amikor az effektus paraméteres).

Kényszerítési mód

A enforcementMode tulajdonság lehetővé teszi az ügyfelek számára, hogy teszteljék egy szabályzat eredményét a meglévő erőforrásokon anélkül, hogy elindítanák a szabályzateffektust, vagy bejegyzéseket indítanának el az Azure-tevékenységnaplóban.

Ezt a forgatókönyvet gyakran "What If"-nak is nevezik, és a biztonságos üzembehelyezési eljárásokhoz igazodik. a enforcementMode eltér a Letiltott effektustól, mivel ez a hatás egyáltalán megakadályozza az erőforrás-értékelés végrehajtását.

Ez a tulajdonság a következő értékekkel rendelkezik:

Mód JSON-érték Típus Manuális javítás Tevékenységnapló-bejegyzés Leírás
Engedélyezve Alapértelmezett sztring Igen Igen A szabályzathatás kényszerítve van az erőforrás-létrehozás vagy -frissítés során.
Disabled (Letiltva) DoNotEnforce sztring Igen Nem A szabályzathatás nincs kényszerítve az erőforrás-létrehozás vagy -frissítés során.

Ha a enforcementMode nincs megadva egy szabályzat- vagy kezdeményezésdefinícióban, a rendszer az Alapértelmezett értéket használja. A szervizelési feladatok akkor is elindíthatók a deployIfNotExists szabályzatokhoz, ha a enforcementMode értéke DoNotEnforce.

Kizárt hatókörök

A hozzárendelés hatóköre magában foglalja az összes gyermekerőforrás-tárolót és gyermekerőforrást. Ha egy gyermekerőforrás-tároló vagy gyermekerőforrás nem alkalmazza a definíciót, a notScopes beállítással kizárhatók a kiértékelésből. Ez a tulajdonság egy tömb, amely lehetővé teszi egy vagy több erőforrástároló vagy erőforrás kiértékelésből való kizárását. A notScopes a kezdeti hozzárendelés létrehozása után hozzáadható vagy frissíthető.

Feljegyzés

A kizárt erőforrások eltérnek a mentesített erőforrásoktól. További információért lásd: Az Azure Policy hatóköreinek megismerése.

Szabályzatdefiníció azonosítója

Ennek a mezőnek egy szabályzatdefiníció vagy egy kezdeményezési definíció teljes elérési útjának kell lennie. policyDefinitionId egy sztring, és nem tömb. A rendszer minden alkalommal lekéri a hozzárendelt szabályzatdefiníció vagy kezdeményezés legújabb tartalmát, amikor kiértékeli a szabályzat-hozzárendelést. Javasoljuk, hogy ha több szabályzatot is gyakran rendelnek egymáshoz, használjon inkább kezdeményezést.

Nem megfelelőségi üzenetek

Ha egyéni üzenetet szeretne beállítani, amely leírja, hogy egy erőforrás miért nem felel meg a szabályzat vagy a kezdeményezés definíciójának, állítsa be nonComplianceMessages a hozzárendelés-definícióban. Ez a csomópont bejegyzések tömbje message . Ez az egyéni üzenet a meg nem felelés alapértelmezett hibaüzenete mellett nem kötelező.

Fontos

A meg nem felelés egyéni üzenetei csak a Resource Manager-móddefiníciókkal rendelkező definíciókban vagy kezdeményezésekben támogatottak.

"nonComplianceMessages": [
    {
        "message": "Default message"
    }
]

Ha a hozzárendelés kezdeményezéshez készült, a kezdeményezésben szereplő egyes szabályzatdefiníciókhoz különböző üzenetek konfigurálhatók. Az üzenetek a policyDefinitionReferenceId kezdeményezés definíciójában konfigurált értéket használják. Részletekért tekintse meg a szabályzatdefiníciók tulajdonságait.

"nonComplianceMessages": [
    {
        "message": "Default message"
    },
    {
        "message": "Message for just this policy definition by reference ID",
        "policyDefinitionReferenceId": "10420126870854049575"
    }
]

Paraméterek

A szabályzat-hozzárendelés ezen szegmense a szabályzatdefinícióban vagy kezdeményezésdefinícióban meghatározott paraméterek értékeit tartalmazza. Ez a kialakítás lehetővé teszi egy szabályzat- vagy kezdeményezésdefiníció más erőforrásokkal való újrafelhasználását, de különböző üzleti értékeket vagy eredményeket keres.

"parameters": {
    "prefix": {
        "value": "DeptA"
    },
    "suffix": {
        "value": "-LC"
    }
}

Ebben a példában a szabályzatdefinícióban korábban definiált paraméterek a következők prefix : és suffix. Ez az adott szabályzat-hozzárendelés a DeptA-hoz és -LC-hez van halmazaprefix.suffix Ugyanez a szabályzatdefiníció egy másik részleg eltérő paraméterkészletével újrafelhasználható, így a szabályzatdefiníciók duplikációja és összetettsége csökken, miközben rugalmasságot biztosít.

Identitás

AzIfNotExist vagy a módosítás effektusra beállított szabályzat-hozzárendelésekhez identitástulajdonságra van szükség a nem megfelelő erőforrások szervizeléséhez. Identitás használata esetén a felhasználónak meg kell adnia a hozzárendelés helyét is.

Feljegyzés

Egyetlen szabályzat-hozzárendelés csak egy rendszer- vagy felhasználó által hozzárendelt felügyelt identitáshoz társítható. Az identitás azonban szükség esetén több szerepkörhöz is hozzárendelhető.

# System-assigned identity
 "identity": {
    "type": "SystemAssigned"
  }
# User-assigned identity
  "identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/SubscriptionID/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {}
    }
  },

Következő lépések