Parametry struktury definic Azure Policy
Parametry pomáhají zjednodušit správu zásad tím, že snižují počet definic zásad. Parametry si můžete představit jako pole ve formuláři: name
, address
, city
, state
. Tyto parametry vždy zůstávají stejné, ale jejich hodnoty se mění na základě individuálního vyplňování formuláře. Parametry fungují při sestavování zásad stejným způsobem. Zahrnutím parametrů do definice zásad můžete tuto zásadu znovu použít pro různé scénáře pomocí jiných hodnot.
Přidání nebo odebrání parametrů
Parametry mohou být přidány do existující a přiřazené definice. Nový parametr musí obsahovat defaultValue
vlastnost. Tato vlastnost zabraňuje tomu, aby se stávající přiřazení zásad nebo iniciativy nepřímo zneplatnilo.
Parametry nelze z definice zásady odebrat, protože může existovat přiřazení, které nastaví hodnotu parametru a tento odkaz by se přerušil. Některé předdefinované definice zásad vyřazují parametry pomocí metadat "deprecated": true
, která parametr při přiřazování definice na webu Azure Portal skryje. I když tato metoda není podporována pro definice vlastních zásad, další možností je duplikovat a vytvořit novou definici vlastní zásady bez parametru.
Vlastnosti parametru
Parametr používá v definici zásady následující vlastnosti:
name
: Název parametru. Používá separameters
funkcí nasazení v rámci pravidla zásad. Další informace najdete v tématu použití hodnoty parametru.type
: Určuje, zda je parametr ,string
array
,object
,boolean
integer
, ,float
nebodateTime
.metadata
: Definuje dílčí výhody, které primárně používá Azure Portal k zobrazení uživatelsky přívětivých informací:description
: Vysvětlení, k čemu se parametr používá. Dá se použít k poskytnutí příkladů přijatelných hodnot.displayName
: Popisný název zobrazený na portálu pro parametr.strongType
: (Volitelné) Používá se při přiřazování definice zásady prostřednictvím portálu. Poskytuje seznam s podporou kontextu. Další informace naleznete v tématu strongType.assignPermissions
: (Volitelné) Nastavte jako true , aby azure Portal během přiřazení zásad vytvářelo přiřazení rolí. Tato vlastnost je užitečná v případě, že chcete přiřadit oprávnění mimo obor přiřazení. V zásadě existuje jedno přiřazení role na definici role (nebo na definici role ve všech zásadách iniciativy). Hodnota parametru musí být platným prostředkem nebo oborem.deprecated
: Logický příznak označující, jestli je parametr zastaralý v předdefinované definici.
defaultValue
: (Volitelné) Nastaví hodnotu parametru v přiřazení, pokud není udělena žádná hodnota. Vyžaduje se při aktualizaci existující definice zásady, která je přiřazena. U parametrů typu objektu musí hodnota odpovídat příslušnému schématu.allowedValues
: (Volitelné) Poskytuje pole hodnot, které parametr přijímá během přiřazení.- Citlivost malá a velká písmena: Při přiřazování zásad rozlišují povolená porovnání hodnot malá a velká písmena, což znamená, že vybrané hodnoty parametrů v přiřazení musí odpovídat velikosti písmen hodnot v
allowedValues
poli v definici. Jakmile jsou však pro přiřazení vybrány hodnoty, vyhodnocení porovnání řetězců může v závislosti na použité podmínce nerozlišovat malá a velká písmena. Pokud například parametr určujeDev
jako povolenou hodnotu značky v přiřazení a tato hodnota se porovná se vstupním řetězcem používajícím podmínkuequals
, azure Policy později vyhodnotí hodnotudev
značky jako shodu, i když je malá písmena, protoženotEquals
nerozlišuje malá písmena. - U parametrů typu objektu musí hodnoty odpovídat příslušnému schématu.
- Citlivost malá a velká písmena: Při přiřazování zásad rozlišují povolená porovnání hodnot malá a velká písmena, což znamená, že vybrané hodnoty parametrů v přiřazení musí odpovídat velikosti písmen hodnot v
schema
: (Volitelné) Poskytuje ověřování vstupů parametrů během přiřazení pomocí samodefinované schéma JSON. Tato vlastnost je podporována pouze pro parametry typu objekt a řídí se implementací Json.NET Schema 2019-09. Další informace o použití schémat a https://json-schema.org/ testování konceptů schémat na adrese https://www.jsonschemavalidator.net/.
Ukázkové parametry
Příklad 1
Můžete například definovat definici zásady, která omezí umístění, kde je možné nasadit prostředky. Parametr pro definici zásady může být allowedLocations
a používán každým přiřazením definice zásady k omezení přijatých hodnot. Použití strongType
poskytuje vylepšené prostředí při dokončování přiřazení prostřednictvím portálu:
"parameters": {
"allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [
"westus2"
],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
Ukázkový vstup pro tento parametr typu pole (bez strongType
) v době přiřazení může být ["westus", "eastus2"]
.
Příklad 2
V pokročilejším scénáři můžete definovat zásadu, která vyžaduje, aby pody clusteru Kubernetes používaly zadané popisky. Parametr pro tuto definici zásady může být labelSelector
a používán každým přiřazením definice zásady k určení prostředků Kubernetes na základě klíčů a hodnot popisku:
"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
}
},
}
Ukázkový vstup pro tento parametr typu objektu v době přiřazení by byl ve formátu JSON, ověřen zadaným schématem a může být následující:
{
"matchLabels": {
"poolID": "abc123",
"nodeGroup": "Group1",
"region": "southcentralus"
},
"matchExpressions": [
{
"key": "name",
"operator": "In",
"values": [
"payroll",
"web"
]
},
{
"key": "environment",
"operator": "NotIn",
"values": [
"dev"
]
}
]
}
Použití hodnoty parametru
V pravidle zásad odkazujete na parametry s následující parameters
syntaxí funkce:
{
"field": "location",
"in": "[parameters('allowedLocations')]"
}
Tato ukázka odkazuje na allowedLocations
parametr, který byl ukázaný ve vlastnostech parametru.
strongType
V rámci metadata
této vlastnosti můžete na strongType
webu Azure Portal zadat seznam možností s vícenásobným výběrem. strongType
může být podporovaný typ prostředku nebo povolená hodnota. Chcete-li zjistit, zda je typ prostředku platný pro strongType
, použijte Get-AzResourceProvider. Formát typu strongType
prostředku je .<Resource Provider>/<Resource Type>
Například Microsoft.Network/virtualNetworks/subnets
.
Některé typy prostředků, které nejsou vráceny, jsou podporovány Get-AzResourceProvider
. Mezi tyto typy patří:
Microsoft.RecoveryServices/vaults/backupPolicies
Povolené hodnoty strongType
jiného typu než prostředku jsou:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
Další kroky
- Další informace o struktuře definic zásad najdete v základních informacích, pravidlech zásad a aliasu.
- V případě iniciativ přejděte ke struktuře definic iniciativ.
- Projděte si příklady v ukázkách azure Policy.
- Projděte si Vysvětlení efektů zásad.
- Seznamte se s programovým vytvářením zásad.
- Zjistěte, jak získat data dodržování předpisů.
- Zjistěte, jak napravit nevyhovující prostředky.
- Zkontrolujte, co je skupina pro správu pomocí uspořádání prostředků pomocí skupin pro správu Azure.