Azure Policy structuur van initiatiefdefinities
Met initiatieven kunt u verschillende gerelateerde beleidsdefinities groepeert om toewijzingen en beheer te vereenvoudigen, omdat u met een groep als één item werkt. U kunt bijvoorbeeld gerelateerde tagbeleidsdefinities in één initiatief groeperen. In plaats van elk beleid afzonderlijk toe te wijzen, past u het initiatief toe.
U gebruikt JSON om een beleidsinitiatiefdefinitie te maken. De definitie van het beleidsinitiatief bevat elementen voor:
- weergavenaam
- beschrijving
- metagegevens
- parameters
- beleidsdefinities
- beleidsgroepen (deze eigenschap maakt deel uit van de functie Naleving van regelgeving (preview) )
In het volgende voorbeeld ziet u hoe u een initiatief maakt voor het verwerken van twee tags: costCenter
en productName
. Er worden twee ingebouwde beleidsregels gebruikt om de standaardtagwaarde toe te passen.
{
"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')]"
}
}
}
]
}
}
Azure Policy ingebouwde functies en patronen zijn Azure Policy voorbeelden.
Metagegevens
De optionele metadata
eigenschap slaat informatie op over de definitie van het beleidsinitiatief.
Klanten kunnen eigenschappen en waarden definiëren die nuttig zijn voor hun organisatie in metadata
. Er zijn echter enkele algemene eigenschappen die door Azure Policy en in ingebouwde functies worden gebruikt.
Algemene eigenschappen van metagegevens
version
(tekenreeks): houdt details bij over de versie van de inhoud van een beleidsinitiatiefdefinitie.category
(tekenreeks): bepaalt onder welke categorie in de Azure Portal de beleidsdefinitie wordt weergegeven.Notitie
Voor een initiatief voor naleving van regelgeving moet de
category
naleving van regelgeving zijn.preview
(booleaanse waarde): vlag Waar of onwaar voor als de definitie van het beleidsinitiatief preview is.deprecated
(booleaanse waarde): de vlag Waar of onwaar voor als de definitie van het beleidsinitiatief is gemarkeerd als afgeschaft.
Notitie
De Azure Policy-service maakt gebruik version
van de eigenschappen , preview
en deprecated
om het wijzigingsniveau over te brengen naar een ingebouwde beleidsdefinitie of -initiatief en -status. De indeling van version
is: {Major}.{Minor}.{Patch}
. Specifieke statussen, zoals afgeschaft of voorbeeld, worden als booleaanse waarde toegevoegd aan de version
eigenschap of in een andere eigenschap. Zie Ingebouwd versiebeheer voor meer informatie over de manier Azure Policy ingebouwde versies.
Parameters
Parameters helpen uw beleidsbeheer te vereenvoudigen door het aantal beleidsdefinities te verminderen. Denk aan parameters zoals de velden in een formulier: name
, address
, city
, state
. Deze parameters blijven altijd hetzelfde, maar hun waarden veranderen op basis van het invullen van het formulier.
Parameters werken op dezelfde manier bij het bouwen van beleidsinitiatieven. Door parameters op te nemen in een beleidsinitiatiefdefinitie, kunt u die parameter opnieuw gebruiken in de opgenomen beleidsregels.
Notitie
Zodra een initiatief is toegewezen, kunnen parameters op initiatiefniveau niet meer worden gewijzigd. Daarom wordt aanbevolen om een standaardwaarde in te stellen bij het definiëren van de parameter.
Parametereigenschappen
Een parameter heeft de volgende eigenschappen die worden gebruikt in de definitie van het beleidsinitiatief:
name
: De naam van uw parameter. Wordt gebruikt door deparameters
implementatiefunctie in de beleidsregel. Zie Een parameterwaarde gebruiken voor meer informatie.type
: Bepaalt of de parameter een tekenreeks, matrix, object, booleaanse waarde, geheel getal, float of datum/tijd is.metadata
: Definieert subeigenschappen die voornamelijk door de Azure Portal worden gebruikt om gebruiksvriendelijke informatie weer te geven:description
: (Optioneel) De uitleg van waarvoor de parameter wordt gebruikt. Kan worden gebruikt om voorbeelden van acceptabele waarden op te geven.displayName
: De beschrijvende naam die wordt weergegeven in de portal voor de parameter .strongType
: (Optioneel) Wordt gebruikt bij het toewijzen van de beleidsdefinitie via de portal. Biedt een contextbewuste lijst. Zie strongType voor meer informatie.
defaultValue
: (Optioneel) Stelt de waarde van de parameter in een toewijzing in als er geen waarde wordt opgegeven.allowedValues
: (Optioneel) Biedt een matrix met waarden die de parameter accepteert tijdens de toewijzing.
U kunt bijvoorbeeld een definitie van een beleidsinitiatief definiëren om de locaties van resources in de verschillende opgenomen beleidsdefinities te beperken. Een parameter voor die beleidsinitiatiefdefinitie kan allowedLocations zijn. De parameter is vervolgens beschikbaar voor elke opgenomen beleidsdefinitie en gedefinieerd tijdens de toewijzing van het beleidsinitiatief.
"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"
]
}
}
Een parameterwaarde doorgeven aan een beleidsdefinitie
U geeft aan welke initiatiefparameters u doorgeeft aan welke beleidsdefinities zijn opgenomen in de matrix policyDefinitions van de initiatiefdefinitie. Hoewel de parameternaam hetzelfde kan zijn, vereenvoudigt het gebruik van andere namen in de initiatieven dan in de beleidsdefinities de leesbaarheid van code.
De eerder gedefinieerde init_allowedLocations initiatiefparameter kan bijvoorbeeld worden doorgegeven aan verschillende opgenomen beleidsdefinities en hun parameters, sql_locations en vm_locations, zoals:
"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')]"
}
}
}
]
Dit voorbeeld verwijst naar de init_allowedLocations parameter die is gedemonstreerd in parametereigenschappen.
strongType
Binnen de metadata
eigenschap kunt u strongType gebruiken om een lijst met meerdere opties in de Azure Portal op te geven. strongType kan een ondersteund resourcetype of een toegestane waarde zijn. Gebruik Get-AzResourceProvider om te bepalen of een resourcetype geldig is voor strongType.
Sommige resourcetypen die niet worden geretourneerd door Get-AzResourceProvider , worden ondersteund. Deze resourcetypen zijn:
Microsoft.RecoveryServices/vaults/backupPolicies
De toegestane waarden van het niet-resourcetype voor strongType zijn:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
Beleidsdefinities
Het policyDefinitions
gedeelte van de initiatiefdefinitie is een matrix waarvan bestaande beleidsdefinities in het initiatief zijn opgenomen. Zoals vermeld in Een parameterwaarde doorgeven aan een beleidsdefinitie, is deze eigenschap waar initiatiefparameters worden doorgegeven aan de beleidsdefinitie.
Eigenschappen van beleidsdefinities
Elk matrixelement dat een beleidsdefinitie vertegenwoordigt, heeft de volgende eigenschappen:
policyDefinitionId
(tekenreeks): de id van de aangepaste of ingebouwde beleidsdefinitie die moet worden opgenomen.policyDefinitionReferenceId
(tekenreeks): een korte naam voor de opgenomen beleidsdefinitie.parameters
: (Optioneel) De naam/waardeparen voor het doorgeven van een initiatiefparameter aan de opgenomen beleidsdefinitie als een eigenschap in die beleidsdefinitie. Zie Parameters voor meer informatie.groupNames
(matrix van tekenreeksen): (Optioneel) De groep waarvan de beleidsdefinitie lid is. Zie Beleidsgroepen voor meer informatie.
Hier volgt een voorbeeld van policyDefinitions
twee opgenomen beleidsdefinities die elk dezelfde initiatiefparameter hebben doorgegeven:
"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')]"
}
}
}
]
Beleidsdefinitiegroepen
Beleidsdefinities in een initiatiefdefinitie kunnen worden gegroepeerd en gecategoriseerd. De functie Naleving van regelgeving (preview) van Azure Policy maakt gebruik van deze eigenschap om definities te groepeert in besturingselementen en nalevingsdomeinen. Deze informatie wordt gedefinieerd in de policyDefinitionGroups
matrixeigenschap . Meer groeperingsdetails zijn te vinden in een policyMetadata-object dat door Microsoft is gemaakt. Zie metagegevensobjecten voor meer informatie.
Parameters voor beleidsdefinitiegroepen
Elk matrixelement in policyDefinitionGroups
moet beide van de volgende eigenschappen hebben:
name
(tekenreeks) [vereist]: de korte naam voor de groep. In Naleving van regelgeving, het besturingselement. De waarde van deze eigenschap wordt gebruikt doorgroupNames
inpolicyDefinitions
.category
(tekenreeks): de hiërarchie waartoe de groep behoort. In Naleving van regelgeving, het nalevingsdomein van de controle.displayName
(tekenreeks): de beschrijvende naam voor de groep of het besturingselement. Wordt gebruikt door de portal.description
(tekenreeks): een beschrijving van de inhoud van de groep of het besturingselement .additionalMetadataId
(tekenreeks): de locatie van het object policyMetadata met aanvullende informatie over het beheer- en nalevingsdomein.Notitie
Klanten kunnen verwijzen naar een bestaand policyMetadata-object . Deze objecten zijn echter alleen-lezen en alleen gemaakt door Microsoft.
Een voorbeeld van de policyDefinitionGroups
eigenschap uit de definitie van het ingebouwde NIST-initiatief ziet er als volgt uit:
"policyDefinitionGroups": [
{
"name": "NIST_SP_800-53_R4_AC-1",
"additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
}
]
Metagegevensobjecten
Ingebouwde naleving van regelgeving die door Microsoft is gemaakt, bevatten aanvullende informatie over elk besturingselement. Deze informatie is:
- Weergegeven in de Azure Portal op het overzicht van een controle op een initiatief voor naleving van regelgeving.
- Beschikbaar via REST API. Zie de
Microsoft.PolicyInsights
resourceprovider en de bewerkingsgroep policyMetadata. - Beschikbaar via Azure CLI. Zie de opdracht az policy metadata .
Belangrijk
Metagegevensobjecten voor naleving van regelgeving zijn alleen-lezen en kunnen niet door klanten worden gemaakt.
De metagegevens voor een beleidsgroepering bevatten de volgende informatie in het properties
knooppunt:
metadataId
: de besturingselement-id waarop de groepering betrekking heeft.category
(vereist): het nalevingsdomein waartoe het besturingselement behoort.title
(vereist): de beschrijvende naam van de besturingselement-id.owner
(vereist): identificeert wie verantwoordelijk is voor het beheer in Azure: Klant, Microsoft, Gedeeld.description
: aanvullende informatie over het besturingselement.requirements
: Details over de verantwoordelijkheid voor de uitvoering van de controle.additionalContentUrl
: Een koppeling naar meer informatie over het besturingselement. Deze eigenschap is doorgaans een koppeling naar de sectie van de documentatie waarin dit besturingselement in de nalevingsstandaard wordt behandeld.
Hieronder ziet u een voorbeeld van het object policyMetadata . Deze voorbeeldmetagegevens behoren tot het besturingselement NIST SP 800-53 R4 AC-1 .
{
"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"
}
Volgende stappen
- De definitiestructuur bekijken
- Bekijk voorbeelden in Azure Policy voorbeelden.
- Lees Informatie over de effecten van het beleid.
- Informatie over het programmatisch maken van beleidsregels.
- Meer informatie over het ophalen van nalevingsgegevens.
- Ontdek hoe u niet-compatibele resources kunt herstellen.
- Bekijk wat een beheergroep is met Uw resources organiseren met Azure-beheergroepen.