Definitiestructuur van Azure Policy-initiatief

Met initiatieven kunt u verschillende gerelateerde beleidsdefinities groeperen om toewijzingen en beheer te vereenvoudigen, omdat u als één item met een groep werkt. U kunt gerelateerde tagbeleidsdefinities bijvoorbeeld groeperen in één initiatief. In plaats van elk beleid afzonderlijk toe te wijzen, past u het initiatief toe.

U gebruikt JSON om een beleidsinitiatiefdefinitie te maken. De beleidsinitiatiefdefinitie 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')]"
                    }
                }
            }
        ]
    }
}

Ingebouwde Azure Policy-functies en -patronen bevinden zich in 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 worden gebruikt door Azure Policy en ingebouwde functies.

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 Azure Portal de beleidsdefinitie wordt weergegeven.

    Notitie

    Voor een initiatief voor naleving van regelgeving moet dit category nalevingsbeleid zijn.

  • preview(Booleaanse waarde): Waar of onwaar voor als de definitie van het beleidsinitiatief een preview-versie is.

  • deprecated (Booleaanse waarde): Waar of onwaar voor als de definitie van het beleidsinitiatief is gemarkeerd als afgeschaft.

Notitie

De Azure Policy-service gebruikt version, previewen deprecated eigenschappen om het wijzigingsniveau over te brengen naar een ingebouwde beleidsdefinitie of initiatief en status. De notatie version is: {Major}.{Minor}.{Patch}. Specifieke statussen, zoals afgeschaft of preview, worden toegevoegd aan de version eigenschap of in een andere eigenschap als een Booleaanse waarde. Zie Ingebouwde versiebeheer voor meer informatie over de manier waarop ingebouwde Versies van Azure Policy worden gebruikt.

Parameters

Parameters helpen uw beleidsbeheer te vereenvoudigen door het aantal beleidsdefinities te verminderen. U kunt parameters zien zoals de velden in een formulier - , nameaddress, 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 het opgenomen beleid.

Notitie

Zodra een initiatief is toegewezen, kunnen parameters op initiatiefniveau niet meer worden gewijzigd. Daarom is het raadzaam om een defaultValue 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 de parameter. Wordt gebruikt door de parameters implementatiefunctie binnen de beleidsregel. Zie voor meer informatie het gebruik van een parameterwaarde.
  • type: bepaalt of de parameter een tekenreeks, matrix, object, booleaanse waarde, geheel getal, float of datum/ tijd is.
  • metadata: Definieert subproperties die voornamelijk worden gebruikt door Azure Portal om gebruiksvriendelijke informatie weer te geven:
    • description: (Optioneel) De uitleg van waarvoor de parameter wordt gebruikt. Kan worden gebruikt om voorbeelden van acceptabele waarden te bieden.
    • 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 beleidsinitiatiefdefinitie definiëren om de locaties van resources in de verschillende opgenomen beleidsdefinities te beperken. Een parameter voor die beleidsinitiatiefdefinitie kan worden toegestaanLocations. 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 declareert welke initiatiefparameters u doorgeeft waaraan beleidsdefinities zijn opgenomen in de matrix policyDefinitions van de initiatiefdefinitie. Hoewel de parameternaam hetzelfde kan zijn, vereenvoudigt het gebruik van verschillende namen in de initiatieven dan in de beleidsdefinities de leesbaarheid van code.

De eerder gedefinieerde initiatiefparameter init_allowedLocations 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 opties met meerdere selecties in Azure Portal te bieden. 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 zijn opgenomen in het initiatief. Zoals vermeld in Het doorgeven van een parameterwaarde 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 met 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 groeperen in besturingselementen en nalevingsdomeinen. Deze informatie wordt gedefinieerd in de policyDefinitionGroupsmatrixeigenschap . Meer groepeerdetails 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 in groupNamespolicyDefinitions.

  • category (tekenreeks): De hiërarchie waartoe de groep behoort. In Naleving van regelgeving, het nalevingsdomein van het besturingselement.

  • 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 eigenschap uit de definitie van het policyDefinitionGroups 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 ingebouwde instellingen voor naleving van regelgeving die door Microsoft zijn gemaakt, bevatten aanvullende informatie over elk besturingselement. Deze informatie is:

  • Weergegeven in Azure Portal in het overzicht van een controle over een nalevingsinitiatief voor regelgeving.
  • Beschikbaar via REST API. Zie de Microsoft.PolicyInsights resourceprovider en de operationgroep policyMetadata.
  • Beschikbaar via Azure CLI. Zie de opdracht az policy metadata .

Belangrijk

Metagegevensobjecten voor naleving van regelgeving zijn alleen-lezen en kunnen niet worden gemaakt door klanten.

De metagegevens voor een beleidsgroep bevatten de volgende informatie in het properties knooppunt:

  • metadataId: De control-id waarop de groepering betrekking heeft.
  • category (vereist): het nalevingsdomein waartoe het besturingselement behoort.
  • title (vereist): De beschrijvende naam van de besturings-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 van de uitvoering van de controle.
  • additionalContentUrl: Een koppeling naar meer informatie over het besturingselement. Deze eigenschap is doorgaans een koppeling naar de sectie met documentatie die dit besturingselement in de nalevingsstandaard behandelt.

Hieronder ziet u een voorbeeld van het object policyMetadata . Deze voorbeeldmetagegevens horen bij 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