Az Azure Policy definíciós struktúrájának paraméterei
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 ugyanazok maradnak, de az értékük az űrlapot kitöltő egyén alapján változik. A paraméterek a szabályzatok létrehozásakor is ugyanígy működnek. Ha paramétereket használ egy szabályzatdefinícióban, akkor a szabályzat különböző forgatókönyvekben alkalmazható más értékek megadásával.
Paraméterek hozzáadása vagy eltávolítása
Paramétereket lehet hozzáadni egy meglévő és hozzárendelt definícióhoz. Az új paraméternek tartalmaznia kell a tulajdonságot defaultValue
. Ez a tulajdonság megakadályozza, hogy a szabályzat vagy kezdeményezés meglévő hozzárendelései közvetetten érvénytelenek legyenek.
A paraméterek nem távolíthatók el a szabályzatdefiníciókból, mert előfordulhat, hogy egy hozzárendelés beállítja a paraméter értékét, és a hivatkozás megszakad. Egyes beépített szabályzatdefiníciók metaadatokkal "deprecated": true
elavultatják a paramétereket, ami elrejti a paramétert a definíció Azure Portalon való hozzárendelésekor. Bár ez a módszer nem támogatott az egyéni szabályzatdefiníciók esetében, egy másik lehetőség egy új egyéni szabályzatdefiníció paraméter nélküli duplikálása és létrehozása.
Paramétertulajdonságok
Egy paraméter a következő tulajdonságokat használja egy szabályzatdefinícióban:
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 egystring
,array
,object
,boolean
,integer
,float
vagydateTime
.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
: 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.assignPermissions
: (Nem kötelező) Állítsa igazként, hogy az Azure Portal szerepkör-hozzárendeléseket hozzon létre a szabályzat-hozzárendelés során. Ez a tulajdonság akkor hasznos, ha a hozzárendelés hatókörén kívül szeretne engedélyeket hozzárendelni. A szabályzatban szerepkör-definíciónként egy szerepkör-hozzárendelés található (vagy szerepkör-definíciónként a kezdeményezés összes szabályzatában). A paraméter értékének érvényes erőforrásnak vagy hatókörnek kell lennie.deprecated
: Logikai jelző, amely jelzi, hogy egy paraméter elavult-e egy beépített definícióban.
defaultValue
: (Nem kötelező) Beállítja a paraméter értékét egy hozzárendelésben, ha nincs megadva érték. A hozzárendelt meglévő szabályzatdefiníciók frissítésekor szükséges. Az oject típusú paraméterek esetében az értéknek meg kell egyeznie a megfelelő sémával.allowedValues
: (Nem kötelező) A paraméter által a hozzárendelés során elfogadott értékek tömbje.- Kis- és nagybetűk érzékenysége: Az engedélyezett érték-összehasonlítások megkülönböztetik a kis- és nagybetűket a szabályzatok hozzárendelésekor, ami azt jelenti, hogy a hozzárendelésben kiválasztott paraméterértékeknek meg kell egyezniük a
allowedValues
tömb értékeinek a definícióban szereplő tömbön belüli elrendezésével. Ha azonban a hozzárendeléshez értékeket választ ki, a sztring-összehasonlítások kiértékelése a használt feltételtől függően érzéketlen lehet. Ha például a paraméter engedélyezett címkeértékként van megadvaDev
egy hozzárendelésben, és ezt az értéket összehasonlítja egy bemeneti sztringgel aequals
feltétel használatával, akkor az Azure Policy később egyezésként értékel ki egy címkeértéketdev
, annak ellenére, hogy kisbetűs, mertnotEquals
a kis- és nagybetűk érzéketlenek. - Objektumtípus-paraméterek esetén az értékeknek meg kell egyeznie a megfelelő sémával.
- Kis- és nagybetűk érzékenysége: Az engedélyezett érték-összehasonlítások megkülönböztetik a kis- és nagybetűket a szabályzatok hozzárendelésekor, ami azt jelenti, hogy a hozzárendelésben kiválasztott paraméterértékeknek meg kell egyezniük a
schema
: (Nem kötelező) A paraméterbemenetek ellenőrzését biztosítja a hozzárendelés során egy ön által definiált JSON-séma használatával. Ez a tulajdonság csak objektum típusú paraméterek esetén támogatott, és a Json.NET Schema 2019-09 implementációt követi. A sémák használatáról és a vázlatsémák https://json-schema.org/ https://www.jsonschemavalidator.net/teszteléséről itt tudhat meg többet.
Mintaparaméterek
1. példa
Definiálhat például egy szabályzatdefiníciót, amely korlátozza az erőforrások üzembe helyezésének helyét. A szabályzatdefiníció paraméterét a allowedLocations
szabályzatdefiníció minden hozzárendelése használhatja az elfogadott értékek korlátozására. A feladat portálon keresztüli strongType
végrehajtása során a használat továbbfejlesztett élményt nyújt:
"parameters": {
"allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [
"westus2"
],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
Ennek a tömbtípus-paraméternek a hozzárendelési időpontban (anélkül strongType
) mintabemenete lehet ["westus", "eastus2"]
.
2. példa
Egy fejlettebb forgatókönyvben meghatározhat egy szabályzatot, amely megköveteli, hogy a Kubernetes-fürt podjai megadott címkéket használjanak. A szabályzatdefiníció paraméterét a szabályzatdefiníció labelSelector
minden hozzárendelése használhatja a kérdéses Kubernetes-erőforrások címkekulcsok és értékek alapján történő megadásához:
"parameters": {
"labelSelector": {
"type": "Object",
"metadata": {
"displayName": "Kubernetes label selector",
"description": "Label query to select Kubernetes resources for policy evaluation. An empty label selector matches all Kubernetes resources."
},
"defaultValue": {},
"schema": {
"description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all resources.",
"type": "object",
"properties": {
"matchLabels": {
"description": "matchLabels is a map of {key,value} pairs.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"minProperties": 1
},
"matchExpressions": {
"description": "matchExpressions is a list of values, a key, and an operator.",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"description": "key is the label key that the selector applies to.",
"type": "string"
},
"operator": {
"description": "operator represents a key's relationship to a set of values.",
"type": "string",
"enum": [
"In",
"NotIn",
"Exists",
"DoesNotExist"
]
},
"values": {
"description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"key",
"operator"
],
"additionalProperties": false
},
"minItems": 1
}
},
"additionalProperties": false
}
},
}
Az objektumtípus paraméter mintabemenete a hozzárendelés időpontjában JSON formátumú lenne, amelyet a megadott séma ellenőrizne, és a következő lehet:
{
"matchLabels": {
"poolID": "abc123",
"nodeGroup": "Group1",
"region": "southcentralus"
},
"matchExpressions": [
{
"key": "name",
"operator": "In",
"values": [
"payroll",
"web"
]
},
{
"key": "environment",
"operator": "NotIn",
"values": [
"dev"
]
}
]
}
Paraméterérték használata
A szabályzatszabályban a következő parameters
függvényszintaxissal rendelkező paraméterekre kell hivatkozni:
{
"field": "location",
"in": "[parameters('allowedLocations')]"
}
Ez a minta a allowedLocations
paramétertulajdonságokban bemutatott paraméterre hivatkozik.
strongType
A tulajdonságon metadata
strongType
belül több választási lehetőséget is megadhat az Azure Portalon. 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, strongType
használja a Get-AzResourceProvider parancsot. Az erőforrástípus strongType
formátuma: <Resource Provider>/<Resource Type>
. Például: Microsoft.Network/virtualNetworks/subnets
.
Egyes nem visszaadott Get-AzResourceProvider
erőforrástípusok támogatottak. Ezek a típusok a következők:
Microsoft.RecoveryServices/vaults/backupPolicies
A nem erőforrástípus által megengedett értékek a strongType
következők:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
Következő lépések
- A szabályzatdefiníció szerkezetéről további információt az alapismeretek, a szabályzatszabály és az alias című témakörben talál.
- A kezdeményezésekhez keresse fel a kezdeményezésdefiníciós struktúrát.
- 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.