Basisbeginselen van Azure Policy-definitiestructuur
Azure Policy-definities beschrijven nalevingsvoorwaarden voor resources en het effect dat moet worden uitgevoerd als aan een voorwaarde wordt voldaan. Een voorwaarde vergelijkt een resource-eigenschapsveld of waarde met een vereiste waarde. Resource-eigenschapsvelden worden geopend met behulp van aliassen. Wanneer een resource-eigenschapsveld een matrix is, kan een speciale matrixalias worden gebruikt om waarden te selecteren uit alle matrixleden en een voorwaarde toe te passen op elk veld. Meer informatie over voorwaarden.
Met behulp van beleidstoewijzingen kunt u de kosten beheren en uw resources beheren. U kunt bijvoorbeeld opgeven dat alleen bepaalde typen virtuele machines zijn toegestaan. U kunt ook vereisen dat resources een bepaalde tag hebben. Toewijzingen in een bereik zijn van toepassing op alle resources binnen dat bereik en hieronder. Als een beleidstoewijzing wordt toegepast op een resourcegroep, is dit beleid ook van toepassing op alle resources in deze resourcegroep.
U gebruikt JSON om een beleidsdefinitie te maken die elementen bevat voor:
displayName
description
mode
version
metadata
parameters
policyRule
- logische evaluaties
effect
In de volgende JSON wordt bijvoorbeeld een beleid weergegeven dat beperkt waar resources worden geïmplementeerd:
{
"properties": {
"displayName": "Allowed locations",
"description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
"mode": "Indexed",
"metadata": {
"version": "1.0.0",
"category": "Locations"
},
"parameters": {
"allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of locations that can be specified when deploying resources",
"strongType": "location",
"displayName": "Allowed locations"
},
"defaultValue": [
"westus2"
]
}
},
"policyRule": {
"if": {
"not": {
"field": "location",
"in": "[parameters('allowedLocations')]"
}
},
"then": {
"effect": "deny"
}
}
}
}
Ga naar het schema voor beleidsdefinities voor meer informatie. Ingebouwde Azure Policy-functies en -patronen bevinden zich in Azure Policy-voorbeelden.
Schermnaam en -beschrijving
U gebruikt displayName
en description
identificeert de beleidsdefinitie en geeft context op wanneer de definitie wordt gebruikt. De displayName
waarde heeft een maximale lengte van 128 tekens en description
een maximumlengte van 512 tekens.
Notitie
Tijdens het maken of bijwerken van een beleidsdefinitie, id
type
en name
worden gedefinieerd door eigenschappen buiten de JSON en zijn ze niet nodig in het JSON-bestand. Als u de beleidsdefinitie via SDK ophaalt, worden de id
, type
en name
eigenschappen geretourneerd als onderdeel van de JSON, maar elk zijn alleen-lezen informatie met betrekking tot de beleidsdefinitie.
Beleidstype
Hoewel de policyType
eigenschap niet kan worden ingesteld, worden er drie waarden geretourneerd door SDK en zichtbaar in de portal:
Builtin
: Microsoft biedt en onderhoudt deze beleidsdefinities.Custom
: Alle beleidsdefinities die door klanten zijn gemaakt, hebben deze waarde.Static
: Geeft een definitie van het nalevingsbeleid voor regelgeving aan met Microsoft-eigendom. De nalevingsresultaten voor deze beleidsdefinities zijn de resultaten van niet-Microsoft-controles van de Microsoft-infrastructuur. In Azure Portal wordt deze waarde soms weergegeven als Door Microsoft beheerd. Zie Gedeelde verantwoordelijkheid in de cloud voor meer informatie.
Modus
Het mode
is geconfigureerd, afhankelijk van of het beleid is gericht op een Azure Resource Manager-eigenschap of een resourceprovidereigenschap.
Resource Manager-modi
De mode
bepaalt welke resourcetypen worden geëvalueerd voor een beleidsdefinitie. De ondersteunde modi zijn:
all
: resourcegroepen, abonnementen en alle resourcetypen evaluerenindexed
: alleen resourcetypen evalueren die ondersteuning bieden voor tags en locatie
Resource ondersteunt bijvoorbeeld Microsoft.Network/routeTables
tags en locatie en wordt geëvalueerd in beide modi. Microsoft.Network/routeTables/routes
Resource kan echter niet worden gelabeld en wordt niet geëvalueerd in indexed
de modus.
In de meeste gevallen wordt u aangeraden dit in te all
stellenmode
. Alle beleidsdefinities die via de portal zijn gemaakt, gebruiken de all
modus. Als u PowerShell of Azure CLI gebruikt, kunt u de mode
parameter handmatig opgeven. Als de beleidsdefinitie geen waarde bevat mode
, wordt deze standaard ingesteld all
in Azure PowerShell en null
in Azure CLI. Een null
modus is hetzelfde als het gebruik indexed
om compatibiliteit met eerdere versies te ondersteunen.
indexed
moet worden gebruikt bij het maken van beleid waarmee tags of locaties worden afgedwongen. Hoewel dit niet vereist is, voorkomt u dat resources die geen ondersteuning bieden voor tags en locaties, worden weergegeven als niet-compatibel in de nalevingsresultaten. De uitzondering is resourcegroepen en abonnementen. Beleidsdefinities die locatie of tags afdwingen voor een resourcegroep of abonnement, moeten zijn ingesteld mode
all
op en specifiek gericht zijn op het Microsoft.Resources/subscriptions/resourceGroups
of Microsoft.Resources/subscriptions
type. Zie Patroon: Tags - Voorbeeld 1 voor een voorbeeld. Zie Tag-ondersteuning voor Azure-resources voor een lijst met resources die tags ondersteunen.
Resourceprovidermodi
De volgende resourceprovidermodi worden volledig ondersteund:
Microsoft.Kubernetes.Data
voor het beheren van Kubernetes-clusters en -onderdelen, zoals pods, containers en ingresses. Ondersteund voor Azure Kubernetes Service-clusters en Kubernetes-clusters met Azure Arc. Definities die deze resourceprovidermodus gebruiken, gebruiken de effecten controleren, weigeren en uitgeschakeld.Microsoft.KeyVault.Data
voor het beheren van kluizen en certificaten in Azure Key Vault. Zie Azure Key Vault integreren met Azure Policy voor meer informatie over deze beleidsdefinities.Microsoft.Network.Data
voor het beheren van aangepast lidmaatschapsbeleid van Azure Virtual Network Manager met behulp van Azure Policy.
De volgende resourceprovidermodi worden momenteel ondersteund als preview:
Microsoft.ManagedHSM.Data
voor het beheren van HSM-sleutels (Managed Hardware Security Module) met behulp van Azure Policy.Microsoft.DataFactory.Data
voor het gebruik van Azure Policy voor het weigeren van uitgaande verkeer van Azure Data Factory-domeinnamen die niet zijn opgegeven in een acceptatielijst. Deze resourceprovidermodus wordt alleen afgedwongen en rapporteert geen naleving in openbare preview.Microsoft.MachineLearningServices.v2.Data
voor het beheren van Azure Machine Learning-modelimplementaties . Deze resourceprovidermodus rapporteert naleving voor nieuw gemaakte en bijgewerkte onderdelen. Tijdens de openbare preview blijven nalevingsrecords 24 uur bestaan. Modelimplementaties die bestaan voordat deze beleidsdefinities worden toegewezen, rapporteren geen naleving.
Notitie
Tenzij expliciet vermeld, ondersteunen resourceprovidermodi alleen ingebouwde beleidsdefinities en worden uitzonderingen niet ondersteund op onderdeelniveau.
Wanneer versiebeheer van Azure Policy wordt uitgebracht, bieden de volgende resourceprovidermodi geen ondersteuning voor ingebouwde versiebeheer:
Microsoft.DataFactory.Data
Microsoft.MachineLearningServices.v2.Data
Microsoft.ManagedHSM.Data
Versie (preview)
Ingebouwde beleidsdefinities kunnen meerdere versies met hetzelfde definitionID
hosten. Als er geen versienummer is opgegeven, worden in alle ervaringen de nieuwste versie van de definitie weergegeven. Als u een specifieke versie van een ingebouwde versie wilt zien, moet deze worden opgegeven in api, SDK of gebruikersinterface. Als u wilt verwijzen naar een specifieke versie van een definitie binnen een toewijzing, raadpleegt u de definitieversie binnen de toewijzing
De Azure Policy-service maakt gebruik version
van , preview
en deprecated
eigenschappen om de status en het wijzigingsniveau over te brengen in een ingebouwde beleidsdefinitie of -initiatief. De notatie version
is: {Major}.{Minor}.{Patch}
. Wanneer een beleidsdefinitie de preview-status heeft, wordt het achtervoegselvoorbeeld toegevoegd aan de version
eigenschap en behandeld als een Booleaanse waarde. Wanneer een beleidsdefinitie wordt afgeschaft, wordt de afschaffing vastgelegd als een Booleaanse waarde in de metagegevens van de definitie met behulp van "deprecated": "true"
.
- Primaire versie (voorbeeld: 2.0.0): introduceert belangrijke wijzigingen, zoals belangrijke regellogicawijzigingen, het verwijderen van parameters, het toevoegen van een afdwingingseffect standaard.
- Secundaire versie (voorbeeld: 2.1.0): introduceert wijzigingen zoals kleine regellogicawijzigingen, het toevoegen van nieuwe parameter toegestane waarden, wijzigen in
roleDefinitionIds
, toevoegen of verplaatsen van definities binnen een initiatief. - Patchversie (voorbeeld: 2.1.4): introduceert tekenreeks- of metagegevenswijzigingen en scenario's voor beveiliging van glas (zeldzaam).
Zie Ingebouwde versiebeheer voor meer informatie over ingebouwde Versies van Azure Policy. Zie Preview- en afgeschafte beleidsregels voor meer informatie over wat het betekent voor een beleid dat moet worden afgeschaft of als preview-versie wordt gebruikt.
Metagegevens
Met de optionele metadata
eigenschap wordt informatie over de beleidsdefinitie opgeslagen. 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. Elke metadata
eigenschap heeft een limiet van 1024 tekens.
Algemene eigenschappen van metagegevens
version
(tekenreeks): Houdt details bij over de versie van de inhoud van een beleidsdefinitie.category
(tekenreeks): Bepaalt onder welke categorie in Azure Portal de beleidsdefinitie wordt weergegeven.preview
(Booleaanse waarde): Waar of onwaar voor als de beleidsdefinitie een preview-versie is.deprecated
(Booleaanse waarde): Waar of onwaar voor als de beleidsdefinitie is gemarkeerd als afgeschaft.portalReview
(tekenreeks): bepaalt of parameters moeten worden gecontroleerd in de portal, ongeacht de vereiste invoer.
Definitielocatie
Tijdens het maken van een initiatief of beleid moet u de definitielocatie opgeven. De definitielocatie moet een beheergroep of een abonnement zijn. Deze locatie bepaalt het bereik waaraan het initiatief of beleid kan worden toegewezen. Resources moeten directe leden zijn van of onderliggende items in de hiërarchie van de definitielocatie die moeten worden gericht op toewijzing.
Als de definitielocatie een:
- Abonnement : alleen resources binnen dat abonnement kunnen worden toegewezen aan de beleidsdefinitie.
- Beheergroep : alleen resources binnen onderliggende beheergroepen en onderliggende abonnementen kunnen worden toegewezen aan de beleidsdefinitie. Als u van plan bent de beleidsdefinitie toe te passen op verschillende abonnementen, moet de locatie een beheergroep zijn die elk abonnement bevat.
Zie Bereik in Azure Policy begrijpen voor meer informatie.
Volgende stappen
- Ga naar parameters, beleidsregels en alias voor meer informatie over de structuur van beleidsdefinities.
- Ga voor initiatieven naar de structuur van initiatiefdefinities.
- Bekijk voorbeelden in Azure Policy-voorbeelden.
- Lees Informatie over de effecten van het beleid.
- Meer informatie over het programmatisch maken van beleid.
- 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.