Azure Policy kezdeményezésdefiníciós struktúra

A kezdeményezések lehetővé teszik több kapcsolódó szabályzatdefiníció csoportosítását a hozzárendelések és a felügyelet egyszerűsítése érdekében, mivel a csoportokkal egyetlen elemként dolgozik. A kapcsolódó címkézési szabályzatdefiníciókat például egyetlen kezdeményezésbe csoportosíthatja. Ahelyett, hogy egyenként rendeli hozzá az egyes szabályzatokat, alkalmazza a kezdeményezést.

A JSON használatával létrehozhat egy szabályzat kezdeményezési definíciót. A házirend-kezdeményezés definíciója a következő elemeket tartalmazza:

Az alábbi példa bemutatja, hogyan hozhat létre kezdeményezést két címke kezelésére: costCenter és productName. Két beépített szabályzatot használ az alapértelmezett címkeérték alkalmazásához.

{
    "properties": {
        "displayName": "Billing Tags Policy",
        "policyType": "Custom",
        "description": "Specify cost Center tag and product name tag",
        "version" : "1.0.0",
        "metadata": {
            "version": "1.0.0",
            "category": "Tags"
        },
        "parameters": {
            "costCenterValue": {
                "type": "String",
                "metadata": {
                    "description": "required value for Cost Center tag"
                },
                "defaultValue": "DefaultCostCenter"
            },
            "productNameValue": {
                "type": "String",
                "metadata": {
                    "description": "required value for product Name tag"
                },
                "defaultValue": "DefaultProduct"
            }
        },
        "policyDefinitions": [{
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "definitionVersion": "1.*.*"
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            }
        ]
    }
}

Azure Policy beépített és mintázatok Azure Policy minták találhatók.

Metaadatok

Az opcionális metadata tulajdonság információkat tárol a szabályzat kezdeményezésének definíciójáról. Az ügyfelek a szervezet számára hasznos tulajdonságokat és értékeket definiálhatják a következő helyen metadata: . Vannak azonban common tulajdonságok, amelyeket a Azure Policy és a beépítettek használnak.

Gyakori metaadat-tulajdonságok

  • version (karakterlánc): Nyomon követi a házirend-kezdeményezés definíciójának verziójával kapcsolatos részleteket. A beépített verziók esetében ez a metaadat-verzió a beépített verziótulajdonságokat követi. Javasoljuk, hogy a verziótulajdonságot használja ezen metaadat-verzió helyett.

  • category (sztring): Meghatározza, hogy a Azure portál melyik kategóriájában jelenjen meg a szabályzatdefiníció.

    Feljegyzés

    Szabályozási megfelelőségi kezdeményezés esetén a categoryszabályozási megfelelőségnek kell lennie.

  • preview (logikai): Igaz vagy hamis jelölő arra az esetre, ha a szabályzat kezdeményezésének definíciója előzetes verziójú.

  • deprecated (logikai): Igaz vagy hamis jelző arra az esetre, ha a szabályzat kezdeményezésének definíciója elavultként lett megjelölve.

verzió

A beépített házirend-kezdeményezések több verziót is üzemeltethetnek ugyanazzal definitionID. Ha nincs megadva verziószám, az összes felület a definíció legújabb verzióját jeleníti meg. Egy adott beépített verzió megtekintéséhez meg kell adni az API-ban, az SDK-ban vagy a felhasználói felületen. A hozzárendelésen belüli definíció egy adott verziójára való hivatkozáshoz tekintse meg a hozzárendelésen belüli definícióverziót

A Azure Policy szolgáltatás version, preview és deprecated tulajdonságokat használ a beépített szabályzatdefiníció vagy -kezdeményezés állapotának és változási szintjének közvetítéséhez. A version formátuma a következő: {Major}.{Minor}.{Patch}. Ha egy szabályzatdefiníció előzetes állapotban van, az utótag előnézet hozzá lesz fűzve a version tulajdonsághoz, és logikai értékként lesz kezelve. Ha egy szabályzatdefiníció elavult, az elavulás logikai értékként lesz rögzítve a definíció metaadataiban a használatával "deprecated": "true".

  • Főverzió (például: 2.0.0): olyan kompatibilitástörő változások bevezetése, mint a fő szabálylogika módosítása, a paraméterek eltávolítása, a kényszerítési hatás alapértelmezés szerinti hozzáadása.
  • Alverzió (példa: 2.1.0): módosítások bevezetése, például kisebb szabálylogika-módosítások, új paraméter által megengedett értékek hozzáadása, szerepkördefiníciós azonosítókra való váltás, definíciók hozzáadása vagy eltávolítása egy kezdeményezésen belül.
  • Patch Version (példa: 2.1.4): sztring- vagy metaadatok módosításainak bevezetése, valamint az üveg biztonsági forgatókönyveinek megszakítása (ritka).

A beépített kezdeményezések verziószámozottak, és a beépített szabályzatdefiníciók egyes verzióira a beépített vagy egyéni kezdeményezéseken belül is hivatkozhat. További információ: referenciadefiníció és verziók.

A beépített Azure Policy verziókról további információt a Built-in verziószámozás című témakörben talál. Ha többet szeretne megtudni arról, hogy mit jelent egy szabályzat deprecated vagy preview, olvassa el a Preview és az elavult szabályzatok című témakört.

Paraméterek

A paraméterek leegyszerűsítik a szabályzatok kezelését a szabályzatdefiníciók számának csökkentésével. Gondoljon olyan paraméterekre, mint az űrlap mezői – name, address, city. state Ezek a paraméterek mindig változatlanok maradnak, de az értékük az űrlapot kitöltő egyén alapján változik. A paraméterek ugyanúgy működnek a szabályzatkezdeményezések létrehozásakor. Ha a paramétereket belefoglalja egy szabályzatkezdeményezés-definícióba, újra felhasználhatja ezt a paramétert a belefoglalt szabályzatokban.

Feljegyzés

A kezdeményezés hozzárendelése után a kezdeményezési szintű paraméterek nem módosíthatók. Emiatt a paraméter definiálásakor a javaslat egy defaultValue érték beállítása.

Paramétertulajdonságok

Egy paraméter a következő tulajdonságokkal rendelkezik, amelyeket a szabályzatkezdeményezés definíciója használ:

  • name: A paraméter neve. A parameters üzembehelyezési függvény használja a szabályzati szabályon belül. További információ: paraméterérték használata.
  • type: Meghatározza, hogy a paraméter sztring, tömb, objektum, logikai, egész szám, lebegőpontos vagy időpont.
  • metadata: A Azure portál által elsősorban a felhasználóbarát információk megjelenítéséhez használt altulajdonságokat határozza meg:
    • description: (Nem kötelező) Annak magyarázata, hogy mire használja a paramétert. Használható elfogadható értékek példáinak megadására.
    • displayName: A paraméter portálon megjelenő barátságos neve.
    • strongType: (Nem kötelező) A szabályzatdefiníció portálon keresztüli hozzárendeléséhez használható. Környezetérzékeny listát biztosít. További információ: strongType.
  • defaultValue: (Nem kötelező) Beállítja a paraméter értékét egy hozzárendelésben, ha nincs megadva érték.
  • allowedValues: (Nem kötelező) A paraméter által a hozzárendelés során elfogadott értékek tömbje.

Példaként meghatározhat egy szabályzatkezdeményeztetés-definíciót, amely korlátozza az erőforrások helyét a különböző belefoglalt szabályzatdefiníciókban. A politikai kezdeményezés definíciójának egyik paramétere lehet az allowedLocations. A paraméter ezután elérhető az egyes belefoglalt szabályzatdefiníciók számára, és a szabályzat kezdeményezésének hozzárendelése során lesz definiálva.

"parameters": {
    "init_allowedLocations": {
        "type": "array",
        "metadata": {
            "description": "The list of allowed locations for resources.",
            "displayName": "Allowed locations",
            "strongType": "location"
        },
        "defaultValue": [ "westus2" ],
        "allowedValues": [
            "eastus2",
            "westus2",
            "westus"
        ]
    }
}

Paraméterérték átadása szabályzatdefiníciónak

Ön deklarálja, hogy mely kezdeményezési paramétereket adja át az policyDefinitions tömbben szereplő szabályzatdefinícióknak a kezdeményezésdefiníció során. Bár a paraméter neve azonos lehet, a kezdeményezésekben eltérő nevek használata, mint a szabályzatdefiníciókban, leegyszerűsíti a kód olvashatóságát.

A korábban definiált init_allowedLocations iniciatíva paramétere például több szabályzatdefiníciónak és azok paramétereinek, sql_locations és vm_locations is átadható, a következőképpen:

"policyDefinitions": [
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
        "policyDefinitionReferenceId": "allowedLocationsSQL",
        "parameters": {
            "sql_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
        "policyDefinitionReferenceId": "allowedLocationsVMs",
        "parameters": {
            "vm_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    }
]

Ez a minta a paramétertulajdonságokban bemutatott init_allowedLocations paraméterre hivatkozik.

strongType

A metadata tulajdonságon belül a strongType használatával több választási lehetőséget is megadhat a Azure portálon. A strongType lehet támogatott erőforrástípus vagy engedélyezett érték. Annak megállapításához, hogy egy erőforrástípus érvényes-e a strongType típusra, használja a Get-AzResourceProvider parancsot.

A Get-AzResourceProvider által nem visszaadott egyes erőforrástípusok támogatottak. Ezek az erőforrástípusok a következők:

  • Microsoft.RecoveryServices/vaults/backupPolicies

A strongType nem erőforrástípusra engedélyezett értékei a következők:

  • location
  • resourceTypes
  • storageSkus
  • vmSKUs
  • existingResourceGroups

Szabályzatdefiníciók

A policyDefinitions kezdeményezés definíciójának része egy tömb , amelynek meglévő szabályzatdefiníciói szerepelnek a kezdeményezésben. Amint azt a paraméterérték szabályzatdefiníciónak való átadása részben említettük, ezen a tulajdonságon keresztül kerülnek a kezdeményezési paraméterek a szabályzatdefinícióhoz.

Szabályzatdefiníció tulajdonságai

A szabályzatdefiníciót képviselő tömbelemek mindegyike a következő tulajdonságokkal rendelkezik:

  • policyDefinitionId (sztring): A belefoglalandó egyéni vagy beépített szabályzatdefiníció azonosítója.
  • policyDefinitionReferenceId (string): Az adott szabályzat definíciójának rövid neve.
  • parameters: (Nem kötelező) A kezdeményezési paraméternek a belefoglalt szabályzatdefiníciónak a szabályzatdefiníció tulajdonságaként való átadásához használt név/érték párok. További információ: Paraméterek.
  • definitionVersion : (Nem kötelező) A hivatkozni kívánt beépített definíció verziója. Ha nincs megadva, a hozzárendeléskor a legújabb főverzióra hivatkozik, és automatikusan betölti az esetleges kisebb frissítéseket. További információ: definícióverzió
  • groupNames (sztringek tömbje): (Nem kötelező) Annak a csoportnak a tagja, amelyhez a szabályzat definíció tartozik. További információ: Szabályzatcsoportok.

Íme egy példa policyDefinitions , amely két olyan szabályzatdefiníciót tartalmaz, amelyek mindegyike ugyanazt a kezdeményezési paramétert adja át:

"policyDefinitions": [
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
        "policyDefinitionReferenceId": "allowedLocationsSQL",
        "definitionVersion": "1.2.*"
        "parameters": {
            "sql_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
        "policyDefinitionReferenceId": "allowedLocationsVMs",
        "parameters": {
            "vm_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    }
]

Szabályzatdefiníciós csoportok

A kezdeményezési definíciók szabályzatdefiníciói csoportosíthatók és kategorizálhatók. Azure Policy Regulatory Compliance (előzetes verzió) funkciója ezt a tulajdonságot használja a definíciók controls és compliance tartományokba. Ez az információ a policyDefinitionGroupstömbtulajdonságban van definiálva. További csoportosítási részletek a Microsoft által létrehozott policyMetadata objektumban találhatók. További információkért tekintse meg a metaadat-objektumokat.

Szabályzatdefiníciós csoportok paraméterei

Minden tömbelemnek az alábbi két tulajdonsággal kell rendelkeznie:

  • name(sztring) [kötelező]: A csoport rövid neve. A jogszabályi megfelelőségben az ellenőrzés. Ennek a tulajdonságnak az értékét a groupNames használja a policyDefinitions-ben.

  • category (sztring): A csoport hierarchiája. A szabályozási megfelelőségben a vezérlő megfelelőségi tartománya .

  • displayName (név): A csoport vagy vezérlőelem barátságos neve. A portál által használt.

  • description(sztring): A csoport vagy vezérlő által lefedett elemek leírása.

  • additionalMetadataId(sztring): A policyMetadata objektum helye, amely további részleteket tartalmaz a vezérlési és megfelelőségi tartományról.

    Feljegyzés

    Az ügyfelek egy meglévő policyMetadata objektumra mutathatnak. Ezek az objektumok azonban read-only és csak Microsoft által lettek létrehozva.

Az NIST beépített kezdeményezés definíciójának egy tulajdonsága így néz ki: policyDefinitionGroups.

"policyDefinitionGroups": [
    {
        "name": "NIST_SP_800-53_R4_AC-1",
        "additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
    }
]

Metaadat-objektumok

A Microsoft által létrehozott szabályozási megfelelőségi beépített modulok további információkkal rendelkeznek az egyes vezérlőkről. Ez az információ a következő:

  • Megjelenik a Azure portálon egy szabályozási megfelelőségi kezdeményezés control áttekintésében.
  • A REST API-val érhető el. Lásd a Microsoft.PolicyInsights erőforrás-szolgáltatót és a policyMetadata műveletcsoportot.
  • Azure CLI keresztül érhető el. Lásd a policy metadata parancsot.

Fontos

Regulatory Compliance metaadat-objektumai írásvédettek, és ügyfelek nem hozhatják létre őket.

A szabályzatcsoportozás metaadatai a következő információkat tartalmaznak a properties csomópontban:

  • metadataId: A csoportosítás vezérlőazonosítója .
  • category (kötelező): Az a megfelelőségi tartomány , amelyhez a vezérlő tartozik.
  • title(kötelező): A vezérlőazonosító barátságos neve.
  • owner (kötelező): Azonosítja a Azure vezérléséért felelős személyeket: Customer, Microsoft, Shared.
  • description: További információ a vezérlőről.
  • requirements: Az ellenőrzés végrehajtásának felelősségével kapcsolatos részletek.
  • additionalContentUrl: A vezérlővel kapcsolatos további információkra mutató hivatkozás. Ez a tulajdonság általában a dokumentáció azon szakaszára mutató hivatkozás, amely a megfelelőségi szabványban fedi le ezt a vezérlőt.

Az alábbiakban egy példa látható a policyMetadata objektumra. Ez a példa metaadatok az NIST SP 800-53 R4 AC-1 vezérlőhöz tartoznak.

{
  "properties": {
    "metadataId": "NIST SP 800-53 R4 AC-1",
    "category": "Access Control",
    "title": "Access Control Policy and Procedures",
    "owner": "Shared",
    "description": "**The organization:**    \na. Develops, documents, and disseminates to [Assignment: organization-defined personnel or roles]:  \n1. An access control policy that addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance; and  \n2. Procedures to facilitate the implementation of the access control policy and associated access controls; and  \n
\nb. Reviews and updates the current:  \n1. Access control policy [Assignment: organization-defined frequency]; and  \n2. Access control procedures [Assignment: organization-defined frequency].",
    "requirements": "**a.**  The customer is responsible for developing, documenting, and disseminating access control policies and procedures. The customer access control policies and procedures address access to all customer-deployed resources and customer system access (e.g., access to customer-deployed virtual machines, access to customer-built applications).  \n**b.**  The customer is responsible for reviewing and updating access control policies and procedures in accordance with FedRAMP requirements.",
    "additionalContentUrl": "https://nvd.nist.gov/800-53/Rev4/control/AC-1"
  },
  "id": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1",
  "name": "NIST_SP_800-53_R4_AC-1",
  "type": "Microsoft.PolicyInsights/policyMetadata"
}

Következő lépések