Tilldelningsstruktur i Azure Policy
Principtilldelningar används av Azure Policy för att definiera vilka resurser som tilldelas vilka principer eller initiativ. Principtilldelningen kan fastställa värdena för parametrarna för den resursgruppen vid tilldelningen, vilket gör det möjligt att återanvända principdefinitioner som adresserar samma resursegenskaper med olika efterlevnadsbehov.
Du använder JSON för att skapa en principtilldelning. Principtilldelningen innehåller element för:
- visningsnamn
- beskrivning
- metadata
- tvingande läge
- exkluderade omfång
- principdefinition
- meddelanden om bristande efterlevnad
- parametrar
Följande JSON visar till exempel en principtilldelning i DoNotEnforce-läge med dynamiska parametrar:
{
"properties": {
"displayName": "Enforce resource naming rules",
"description": "Force resource names to begin with DeptA and end with -LC",
"metadata": {
"assignedBy": "Cloud Center of Excellence"
},
"enforcementMode": "DoNotEnforce",
"notScopes": [],
"policyDefinitionId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
"nonComplianceMessages": [
{
"message": "Resource names must start with 'DeptA' and end with '-LC'."
}
],
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
}
}
}
Alla Azure Policy exempel finns på Azure Policy exempel.
Visningsnamn och beskrivning
Du använder displayName och description för att identifiera principtilldelningen och ange kontext för dess användning med den specifika uppsättningen resurser. displayName har en maximal längd på 128 tecken och en beskrivning på högst 512 tecken.
Metadata
Den metadata valfria egenskapen lagrar information om principtilldelningen. Kunder kan definiera egenskaper och värden som är användbara för organisationen i metadata . Det finns dock några vanliga egenskaper som används av Azure Policy. Varje metadata egenskap har en gräns på 1 024 tecken.
Vanliga metadataegenskaper
assignedBy(sträng): Det egna namnet på säkerhetsobjekt som skapade tilldelningen.createdBy(sträng): GUID för säkerhetsobjekt som skapade tilldelningen.createdOn(sträng): Universal ISO 8601 DateTime-formatet för tilldelningstiden.parameterScopes(objekt): En samling nyckel/värde-par där nyckeln matchar ett strongType-konfigurerat parameternamn och värdet definierar det resursomfång som används i portalen för att tillhandahålla listan över tillgängliga resurser genom att matcha strongType. Portalen anger det här värdet om omfånget skiljer sig från tilldelningsomfånget. Om detta anges anger en redigering av principtilldelningen i portalen automatiskt omfånget för parametern till det här värdet. Omfånget är dock inte låst till värdet och kan ändras till ett annat omfång.Följande exempel på är
parameterScopesför en strongType-parameter med namnet backupPolicyId som anger ett omfång för resursval när tilldelningen redigeras i portalen."metadata": { "parameterScopes": { "backupPolicyId": "/subscriptions/{SubscriptionID}/resourcegroups/{ResourceGroupName}" } }updatedBy(sträng): Det egna namnet på säkerhetsobjekt som uppdaterade tilldelningen, om det finns någon.updatedOn(sträng): Universal ISO 8601 DateTime-formatet för tilldelningsuppdateringstiden, om det finns någon.
Tvingande läge
Egenskapen enforcementMode ger kunderna möjlighet att testa resultatet av en princip på befintliga resurser utan att initiera principeffekten eller utlösa poster i Azure-aktivitetsloggen. Det här scenariot kallas ofta "What If" och överensstämmer med säkra distributionsmetoder. enforcementMode skiljer sig från den inaktiverade effekten eftersom den här effekten förhindrar att resursutvärderingen sker alls.
Den här egenskapen har följande värden:
| Läge | JSON-värde | Typ | Åtgärda manuellt | Aktivitetsloggpost | Description |
|---|---|---|---|---|---|
| Enabled | Standardvärde | sträng | Ja | Ja | Principeffekten tillämpas när resursen skapas eller uppdateras. |
| Inaktiverad | DoNotEnforce | sträng | Ja | Inga | Principeffekten tillämpas inte när resursen skapas eller uppdateras. |
Om enforcementMode inte anges i en princip- eller initiativdefinition används värdet Default. Reparationsåtgärder kan startas för deployIfNotExists-principer, även om enforcementMode är inställt på DoNotEnforce.
Exkluderade omfång
Tilldelningsomfånget omfattar alla underordnade resurscontainrar och underordnade resurser. Om en underordnad resurscontainer eller underordnad resurs inte ska ha definitionen tillämpad kan var och en undantas från utvärderingen genom att ange notScopes. Den här egenskapen är en matris som gör det möjligt att exkludera en eller flera resurscontainrar eller resurser från utvärderingen. notScopes kan läggas till eller uppdateras när den första tilldelningen har skapats.
Anteckning
En undantagen resurs skiljer sig från en undantagen resurs. Mer information finns i Förstå omfånget i Azure Policy.
Principdefinitions-ID
Det här fältet måste vara det fullständiga sökvägsnamnet för antingen en principdefinition eller en initiativdefinition.
policyDefinitionId är en sträng och inte en matris. Vi rekommenderar att du använder ett initiativ i stället om flera principer ofta tilldelas tillsammans.
Meddelanden om bristande efterlevnad
Om du vill ange ett anpassat meddelande som beskriver varför en resurs inte är kompatibel med princip- eller initiativdefinitionen anger nonComplianceMessages du i tilldelningsdefinitionen. Den här noden är en matris message med poster. Det här anpassade meddelandet är utöver standardfelmeddelandet vid in kompatibilitet och är valfritt.
Viktigt
Anpassade meddelanden för in kompatibilitet stöds endast för definitioner eller initiativ med Resource Manager definitionslägen.
"nonComplianceMessages": [
{
"message": "Default message"
}
]
Om tilldelningen är för ett initiativ kan olika meddelanden konfigureras för varje principdefinition i initiativet. Meddelandena använder det policyDefinitionReferenceId värde som konfigureras i initiativdefinitionen. Mer information finns i egenskaper för principdefinitioner.
"nonComplianceMessages": [
{
"message": "Default message"
},
{
"message": "Message for just this policy definition by reference ID",
"policyDefinitionReferenceId": "10420126870854049575"
}
]
Parametrar
Det här segmentet av principtilldelningen tillhandahåller värdena för de parametrar som definieras i principdefinitionen eller initiativdefinitionen. Den här designen gör det möjligt att återanvända en princip- eller initiativdefinition med olika resurser, men kontrollera om det finns olika affärsvärden eller affärsresultat.
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
}
I det här exemplet är de parametrar som tidigare definierades i principdefinitionen prefix och suffix . Den här specifika principtilldelningen prefix anger till DeptA suffix och till -LC. Samma principdefinition kan återanvändas med en annan uppsättning parametrar för en annan avdelning, vilket minskar dupliceringen och komplexiteten för principdefinitioner samtidigt som den ger flexibilitet.
Nästa steg
- Lär dig mer om principdefinitionsstrukturen.
- Förstå hur du skapar principer programmatiskt.
- Lär dig hur du hämtar efterlevnadsdata.
- Lär dig hur du åtgärdar icke-kompatibla resurser.
- Granska vad en hanteringsgrupp är med Organisera dina resurser med Azure-hanteringsgrupper.