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:
- megjelenítendő név
- leírás
- metaadatok
- parameters
- szabályzatdefiníciók
- szabályzatcsoportok (ez a tulajdonság a szabályozási megfelelőség (előzetes verzió) szolgáltatás része)
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 version
kö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áljaparameters
. 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 policyDefinitionGroups
tö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 agroupNames
következőbenpolicyDefinitions
haszná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
- A definíció struktúrájának megtekintése
- Tekintse át az Azure Policy-minták példáit.
- A Szabályzatok hatásainak ismertetése.
- Megtudhatja, hogyan hozhat létre programozott módon szabályzatokat.
- Megtudhatja, hogyan kérhet le megfelelőségi adatokat.
- Megtudhatja, hogyan orvosolhatja a nem megfelelő erőforrásokat.
- Tekintse át, hogy mi az a felügyeleti csoport az erőforrások azure-beli felügyeleti csoportokkal való rendszerezésével.