Az Azure Policy kezdeményezésdefiníciós struktúrája

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

Az Azure Policy beépített és mintái az Azure Policy-mintákban 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: . Az Azure Policy és a beépített szolgáltatások azonban gyakran használnak tulajdonságokat.

Gyakori metaadat-tulajdonságok

  • version (sztring): Nyomon követi a házirend-kezdeményezés definíciójának tartalmával kapcsolatos részleteket.

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

    Megjegyzés:

    Szabályozási megfelelőségi kezdeményezés esetén a category jogszabályi 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.

Megjegyzés:

Az Azure Policy szolgáltatás a , previewés deprecated tulajdonságok használatával versionközvetíti a változás szintjét egy beépített szabályzatdefinícióra vagy kezdeményezésre és állapotra. A formátum a version következő: {Major}.{Minor}.{Patch}. Bizonyos állapotok, például elavult vagy előzetes verzió, logikai értékként vannak hozzáfűzve a version tulajdonsághoz vagy egy másik tulajdonsághoz. Az Azure Policy beépített verzióival kapcsolatos további információkért lásd a beépített verziószámozást.

Parameters

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.

Megjegyzé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 házirendszabályon belüli üzembehelyezési függvény használja parameters . 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 datetime.
  • metadata: Az Azure Portal á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ő rövid 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 szabályzatkezdeményezés definíciójának paramétere lehet a 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

Deklarálja, hogy mely kezdeményezési paramétereket adja át, amelyekbe a kezdeményezés definíciójának PolicyDefinitions tömbje tartalmazott szabályzatdefiníciókat . 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 kezdeményezési paraméter például több belefoglalt szabályzatdefiníciónak és azok paramétereinek, sql_locations és vm_locations is átadható, például a következőhöz:

"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 tulajdonságon belül a metadata strongType használatával több választási lehetőséget is megadhat az Azure Portalon. 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 során említettük, ez a tulajdonság adja át a kezdeményezési paramétereket a szabályzatdefiníciónak.

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 (sztring): A belefoglalt szabályzatdefiníció 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.
  • groupNames (sztringek tömbje): (Nem kötelező) Az a csoport, amelynek a szabályzatdefiníciója tagja. 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",
        "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. Az Azure Policy szabályozási megfelelőség (előzetes verzió) funkciója ezt a tulajdonságot használja a definíciók vezérlőkbe és megfelelőségi tartományokba való csoportosításához. 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 policyDefinitionGroups az alábbi tulajdonságok egyikével 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 rendszer a groupNames következőben policyDefinitionshasználja: .

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

  • displayName(sztring): A csoport vagy vezérlőelem rövid neve. A portál használja.

  • 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.

    Megjegyzés:

    Az ügyfelek egy meglévő policyMetadata objektumra mutathatnak. Ezek az objektumok azonban írásvédettek, és csak a Microsoft által lettek létrehozva.

Az NIST beépített kezdeményezési definíciójának tulajdonságára policyDefinitionGroups a következő példa látható:

"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 az Azure Portalon egy szabályozási megfelelőségi kezdeményezés vezérlőjének áttekintésén.
  • A REST API-val érhető el. Tekintse meg az Microsoft.PolicyInsights erőforrás-szolgáltatót és a policyMetadata műveleti csoportot.
  • Elérhető az Azure CLI-vel. Tekintse meg az az policy metadata parancsot.

Fontos

A jogszabályi megfelelőség metaadat-objektumai írásvédettek , és az ügyfelek nem hozhatják létre.

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ó rövid neve.
  • owner (kötelező): Azonosítja, hogy ki felelős az Azure-ban az irányításért: Ügyfél, Microsoft, Megosztott.
  • 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"
}

További lépések