Azure Policy-minta: paraméterek
A szabályzatdefiníciók dinamikussá tehetők a paraméterek használatával szükséges szabályzatdefiníciók számának csökkentése érdekében. A paraméter a szabályzat-hozzárendelés során van definiálva. A paraméterek előre definiált tulajdonságokkal rendelkeznek, amelyek leírják a paramétert és annak használatát.
1. minta: Sztringparaméterek
Ez a szabályzatdefiníció két paramétert ( tagName és tagValue) használ annak beállításához, hogy a szabályzat-hozzárendelés mit keres az erőforrásokon. Ez a formátum lehetővé teszi, hogy a szabályzatdefiníció tetszőleges számú címkenévhez és címkeérték-kombinációhoz használható legyen, de csak egyetlen szabályzatdefiníciót tartson fenn.
Feljegyzés
Az Összes módot használó és egy erőforráscsoporttal együttműködő címkemintát a Minta: Címkék – 1. minta című témakörben talál.
{
"properties": {
"displayName": "Require tag and its value",
"policyType": "BuiltIn",
"mode": "Indexed",
"description": "Enforces a required tag and its value. Does not apply to resource groups.",
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"description": "Name of the tag, such as costCenter"
}
},
"tagValue": {
"type": "String",
"metadata": {
"description": "Value of the tag, such as headquarter"
}
}
},
"policyRule": {
"if": {
"not": {
"field": "[concat('tags[', parameters('tagName'), ']')]",
"equals": "[parameters('tagValue')]"
}
},
"then": {
"effect": "deny"
}
}
}
}
1. minta: Magyarázat
"tagName": {
"type": "String",
"metadata": {
"description": "Name of the tag, such as costCenter"
}
},
A szabályzatdefiníció ezen részében a tagName paraméter sztringként van definiálva, és leírást ad a használatához.
Ezután a rendszer a policyRule.if blokkban használja a paramétert, hogy dinamikussá tegye a szabályzatot. Itt a kiértékelt mező definiálására szolgál, amely egy tagName értékkel rendelkező címke.
"if": {
"not": {
"field": "[concat('tags[', parameters('tagName'), ']')]",
"equals": "[parameters('tagValue')]"
}
},
2. minta: Tömbparaméterek
Ez a szabályzatdefiníció egyetlen paramétert ( listOfBandwidthinMbps) használ annak ellenőrzésére, hogy az Express Route Circuit erőforrása konfigurálta-e a sávszélesség-beállítást az egyik jóváhagyott értékre. Ha nem egyezik, a rendszer megtagadja az erőforrás létrehozását vagy frissítését.
{
"properties": {
"displayName": "Allowed Express Route bandwidth",
"description": "This policy enables you to specify a set of express route bandwidths that your organization can deploy.",
"parameters": {
"listOfBandwidthinMbps": {
"type": "Array",
"metadata": {
"description": "The list of SKUs that can be specified for express route.",
"displayName": "Allowed Bandwidth"
}
}
},
"policyRule": {
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.Network/expressRouteCircuits"
},
{
"not": {
"field": "Microsoft.Network/expressRouteCircuits/serviceProvider.bandwidthInMbps",
"in": "[parameters('listOfBandwidthinMbps')]"
}
}
]
},
"then": {
"effect": "Deny"
}
}
}
}
2. minta: Magyarázat
"listOfBandwidthinMbps": {
"type": "Array",
"metadata": {
"description": "The list of SKUs that can be specified for express route.",
"displayName": "Allowed Bandwidth"
}
}
A szabályzatdefiníció ezen részében a listOfBandwidthinMbps paraméter tömbként van definiálva, és leírást ad a használatához. Tömbként több egyező értékkel rendelkezik.
A paraméter ezután a policyRule.if blokkban lesz használva. Tömbparaméterként tömbfeltételt kell használni. Itt a serviceProvider.bandwidthInMbps aliason használja a rendszer a definiált értékek egyikeként.
"not": {
"field": "Microsoft.Network/expressRouteCircuits/serviceProvider.bandwidthInMbps",
"in": "[parameters('listOfBandwidthinMbps')]"
}
3. minta: Paraméteres effektus
A szabályzatdefiníciók újrafelhasználhatóvá léptetésének gyakori módja az effektus paraméterezése. Ez a példa egyetlen paramétert, effektust használ. Az effektus paraméterezésével ugyanazt a definíciót különböző hatókörökhöz rendelheti különböző effektusokkal.
{
"properties": {
"displayName": "All authorization rules except RootManageSharedAccessKey should be removed from Service Bus namespace",
"policyType": "BuiltIn",
"mode": "All",
"description": "Service Bus clients should not use a namespace level access policy that provides access to all queues and topics in a namespace. To align with the least privilege security model, you should create access policies at the entity level for queues and topics to provide access to only the specific entity",
"metadata": {
"version": "1.0.1",
"category": "Service Bus"
},
"parameters": {
"effect": {
"type": "string",
"defaultValue": "Audit",
"allowedValues": [
"Audit",
"Deny",
"Disabled"
],
"metadata": {
"displayName": "Effect",
"description": "The effect determines what happens when the policy rule is evaluated to match"
}
}
},
"policyRule": {
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.ServiceBus/namespaces/authorizationRules"
},
{
"field": "name",
"notEquals": "RootManageSharedAccessKey"
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
}
}
}
3. minta: Magyarázat
"parameters": {
"effect": {
"type": "string",
"defaultValue": "Audit",
"allowedValues": [
"Audit",
"Deny",
"Disabled"
],
"metadata": {
"displayName": "Effect",
"description": "The effect determines what happens when the policy rule is evaluated to match"
}
}
},
A szabályzatdefiníció ezen részében az effektusparaméter sztringként van definiálva. A szabályzatdefiníció beállítja a hozzárendelés alapértelmezett értékét a naplózáshoz, és korlátozza a többi beállítást a letiltásra és a megtagadásra.
A paraméter ezután a policyRule.then blokkban lesz használva az effektushoz.
"then": {
"effect": "[parameters('effect')]"
}
Következő lépések
- Tekintse át az egyéb mintákat és a beépített definíciókat.
- Tekintse meg az Azure szabályzatdefiníciók struktúrája szakaszt.
- A Szabályzatok hatásainak ismertetése.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: