Struktura definic iniciativy Azure Policy
Iniciativy umožňují seskupit několik souvisejících definic zásad, které zjednodušují přiřazení a správu, protože pracujete se skupinou jako s jednou položkou. Můžete například seskupit související definice zásad označování do jedné iniciativy. Místo individuálního přiřazování jednotlivých zásad použijete iniciativu.
K vytvoření definice iniciativy zásad použijete JSON. Definice iniciativy zásad obsahuje prvky pro:
- zobrazovaný název
- description
- metadata
- version
- parametry
- definice zásad
- skupiny zásad (tato vlastnost je součástí funkce Dodržování právních předpisů (Preview)
Následující příklad ukazuje, jak vytvořit iniciativu pro zpracování dvou značek: costCenter
a productName
. K použití výchozí hodnoty značky se používají dvě předdefinované zásady.
{
"properties": {
"displayName": "Billing Tags Policy",
"policyType": "Custom",
"description": "Specify cost Center tag and product name tag",
"version" : "1.0.0",
"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",
"definitionVersion": "1.*.*"
"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')]"
}
}
}
]
}
}
Předdefinované vzory a vzory služby Azure Policy jsou v ukázkách služby Azure Policy.
Metadata
Volitelná metadata
vlastnost ukládá informace o definici iniciativy zásad.
Zákazníci mohou definovat jakékoli vlastnosti a hodnoty užitečné pro svoji organizaci v metadata
. Existují ale některé běžné vlastnosti používané službou Azure Policy a integrované.
Běžné vlastnosti metadat
version
(řetězec): Sleduje podrobnosti o verzi obsahu definice iniciativy zásad. U předdefinovaných verzí metadat se tato verze metadat řídí vlastností verze předdefinované verze. U této verze metadat se doporučuje použít vlastnost verze.category
(řetězec): Určuje, ve které kategorii na webu Azure Portal se zobrazí definice zásady.Poznámka:
Pro iniciativu dodržování právních předpisů musí být dodržování právních předpisů.
category
preview
(logická hodnota): True nebo false flag for if the policy initiative definition is Preview.deprecated
(logická hodnota): True nebo false flag for if the policy initiative definition has been marked as deprecated.
Verze (Preview)
Předdefinované iniciativy zásad mohou hostovat více verzí se stejnými definitionID
verzemi . Pokud není zadáno číslo verze, zobrazí se ve všech prostředích nejnovější verze definice. Pokud chcete zobrazit konkrétní verzi předdefinované verze, musíte ji zadat v rozhraní API, sadě SDK nebo uživatelském rozhraní. Pokud chcete odkazovat na konkrétní verzi definice v rámci přiřazení, podívejte se na verzi definice v rámci přiřazení.
Služba Azure Policy používá version
preview
a deprecated
vlastnosti ke sdělení stavu a úrovně změn v předdefinované definici nebo iniciativě zásad. Formát version
je: {Major}.{Minor}.{Patch}
. Pokud je definice zásady ve stavu Preview, připojí se k version
vlastnosti náhled přípony a považuje se za logickou hodnotu. Když je definice zásady zastaralá, vyřazení se zachytí jako logická hodnota v metadatech definice pomocí "deprecated": "true"
.
- Hlavní verze (příklad: 2.0.0): Zavádí zásadní změny, jako jsou změny logiky hlavního pravidla, odebrání parametrů a přidání efektu vynucení ve výchozím nastavení.
- Podverze (příklad: 2.1.0): zavádí změny, jako jsou změny logiky podverze, přidání nových povolených hodnot parametrů, změna id definice role, přidání nebo odebrání definic v rámci iniciativy.
- Verze opravy (příklad: 2.1.4): Zavedení změn řetězců nebo metadat a scénáře zabezpečení rozbitého skla (vzácné).
Předdefinované iniciativy jsou verze a na konkrétní verze předdefinovaných definic zásad lze odkazovat také v rámci předdefinovaných nebo vlastních iniciativ. Další informace najdete v referenčních definicích a verzích.
Při vytváření iniciativy prostřednictvím portálu ve verzi Preview nebudete moct určit verze pro předdefinované odkazy na definice zásad. Všechny předdefinované odkazy na zásady ve vlastních iniciativách vytvořených prostřednictvím portálu se místo toho nastaví na nejnovější verzi definice zásady.
Další informace o předdefinovaných verzích Služby Azure Policy najdete v tématu Integrovaná správa verzí. Další informace o tom, co znamená, že zásady jsou zastaralé nebo ve verzi Preview, najdete v tématu Preview a zastaralé zásady.
Parametry
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í stejným způsobem při sestavování iniciativ zásad. Zahrnutím parametrů do definice iniciativy zásad můžete tento parametr znovu použít v zahrnutých zásadách.
Poznámka:
Po přiřazení iniciativy nelze změnit parametry na úrovni iniciativy. Z tohoto důvodu doporučujeme nastavit výchozí Hodnotu při definování parametru.
Vlastnosti parametru
Parametr má následující vlastnosti, které se používají v definici iniciativy zásad:
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 řetězec, pole, objekt, logická hodnota, celé číslo, float nebo datetime.metadata
: Definuje dílčí výhody, které primárně používá Azure Portal k zobrazení uživatelsky přívětivých informací:description
: (Volitelné) 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.
defaultValue
: (Volitelné) Nastaví hodnotu parametru v přiřazení, pokud není udělena žádná hodnota.allowedValues
: (Volitelné) Poskytuje pole hodnot, které parametr přijímá během přiřazení.
Můžete například definovat definici iniciativy zásad, která omezí umístění prostředků v různých definicích zahrnutých zásad. Parametr pro tuto definici iniciativy zásad může být allowedLocations. Parametr je pak k dispozici pro každou definici zahrnuté zásady a definovaný během přiřazení iniciativy zásad.
"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"
]
}
}
Předání hodnoty parametru definici zásady
Deklarujete parametry iniciativy, kterým předáte definice zásad v poli policyDefinitions definice iniciativy. I když název parametru může být stejný, použití různých názvů v iniciativách než v definicích zásad zjednodušuje čitelnost kódu.
Například parametr iniciativy init_allowedLocations definovaný dříve lze předat několika zahrnutým definicům zásad a jejich parametrům, sql_locations a vm_locations, například takto:
"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')]"
}
}
}
]
Tato ukázka odkazuje na parametr init_allowedLocations , který byl ukázaný ve vlastnostech parametru.
strongType
V rámci metadata
vlastnosti můžete pomocí strongType zadat vícenásobný seznam možností na webu Azure Portal. strongType může být podporovaný typ prostředku nebo povolená hodnota. Pokud chcete zjistit, jestli je typ prostředku platný pro strongType, použijte Get-AzResourceProvider.
Některé typy prostředků, které nevrátí Get-AzResourceProvider , jsou podporovány. Mezi tyto typy prostředků patří:
Microsoft.RecoveryServices/vaults/backupPolicies
Povolené hodnoty typu mimo prostředek pro strongType jsou:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
Definice zásad
Část policyDefinitions
definice iniciativy je pole , jehož existující definice zásad jsou součástí iniciativy. Jak je uvedeno v předávání hodnoty parametru do definice zásady, tato vlastnost je místo, kde parametry iniciativy jsou předány definici zásady.
Vlastnosti definice zásad
Každý prvek pole , který představuje definici zásady, má následující vlastnosti:
policyDefinitionId
(řetězec): ID vlastní nebo předdefinované definice zásady, která se má zahrnout.policyDefinitionReferenceId
(řetězec): Krátký název zahrnuté definice zásady.parameters
: (Volitelné) Páry name/value pro předání parametru iniciativy do zahrnuté definice zásady jako vlastnost v této definici zásady. Další informace najdete v tématu Parametry.definitionVersion
: (Volitelné) Verze předdefinované definice, na které se má odkazovat. Pokud není zadán žádný, odkazuje na nejnovější hlavní verzi v době přiřazení a automaticky ingestuje všechny dílčí aktualizace. Další informace najdete v tématu verze definice.groupNames
(pole řetězců): (Volitelné) Skupina, ve které je definice zásady členem. Další informace najdete v tématu Skupiny zásad.
Tady je příklad policyDefinitions
, který obsahuje dvě zahrnuté definice zásad, které se předávají stejnému parametru iniciativy:
"policyDefinitions": [
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
"policyDefinitionReferenceId": "allowedLocationsSQL",
"definitionVersion": "1.2.*"
"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')]"
}
}
}
]
Skupiny definic zásad
Definice zásad v definici iniciativy je možné seskupit a zařadit do kategorií. Funkce dodržování právních předpisů azure Policy (Preview) používá tuto vlastnost k seskupení definic do ovládacích prvků a domén dodržování předpisů. Tyto informace jsou definovány v maticové policyDefinitionGroups
vlastnosti. Další podrobnosti seskupení můžou být nalezeny v objektu policyMetadata vytvořeném Microsoftem. Informace najdete v tématu objekty metadat.
Parametry skupin definic zásad
Každý prvek policyDefinitionGroups
pole musí mít obě následující vlastnosti:
name
(řetězec) [povinné]: Krátký název skupiny. V dodržování právních předpisů řízení. Hodnota této vlastnosti je použitagroupNames
vpolicyDefinitions
.category
(řetězec): Hierarchie, do které skupina patří. V dodržování právních předpisů je doména dodržování předpisů ovládacího prvku.displayName
(řetězec): Popisný název skupiny nebo ovládacího prvku. Používá se portálem.description
(řetězec): Popis toho, co skupina nebo ovládací prvek pokrývá.additionalMetadataId
(řetězec): Umístění objektu policyMetadata , který obsahuje další podrobnosti o kontrole a dodržování předpisů domény.Poznámka:
Zákazníci mohou odkazovat na existující objekt policyMetadata . Tyto objekty jsou však jen pro čtení a jsou vytvořeny pouze společností Microsoft.
policyDefinitionGroups
Příklad vlastnosti z integrované definice iniciativy NIST vypadá takto:
"policyDefinitionGroups": [
{
"name": "NIST_SP_800-53_R4_AC-1",
"additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
}
]
Objekty metadat
Předdefinované dodržování právních předpisů vytvořené Microsoftem mají další informace o jednotlivých kontrolách. Tyto informace jsou:
- Na webu Azure Portal se zobrazuje přehled ovládacího prvku iniciativy dodržování právních předpisů.
- K dispozici prostřednictvím rozhraní REST API. Podívejte se na
Microsoft.PolicyInsights
poskytovatele prostředků a skupinu operací policyMetadata. - K dispozici prostřednictvím Azure CLI. Viz příkaz az policy metadata.
Důležité
Objekty metadat pro dodržování právních předpisů jsou jen pro čtení a nedají se vytvářet zákazníky.
Metadata pro seskupení zásad mají v properties
uzlu následující informace:
metadataId
: ID ovládacího prvku, ke které se seskupení vztahuje.category
(povinné): Doména dodržování předpisů, do které ovládací prvek patří.title
(povinné): Popisný název ID ovládacího prvku.owner
(povinné): Určuje, kdo má odpovědnost za řízení v Azure: Zákazník, Microsoft, Shared.description
: Další informace o ovládacím prvku.requirements
: Podrobnosti o odpovědnosti za provádění kontroly.additionalContentUrl
: Odkaz na další informace o ovládacím prvku. Tato vlastnost je obvykle odkazem na část dokumentace, která se vztahuje na tento ovládací prvek ve standardu dodržování předpisů.
Níže je příklad objektu policyMetadata . Tato ukázková metadata patří do ovládacího prvku AC-1 NIST SP 800-53 R4.
{
"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"
}
Další kroky
- Zobrazit strukturu definic
- 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.