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
  • identity

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 parameterScopes 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 parameterScopes för en parameterScopes 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ågra.

  • 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 effekten Inaktiverad 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 icke-kompatibilitet stöds endast för definitioner eller initiativ med Resource Manager definitioner av lä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 söka efter 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 anges prefixsuffix och till suffix. 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.

Identitet

För principtilldelningar med effekt inställd på deployIfNotExisit eller ändra måstedet ha en identitetsegenskap för att åtgärda icke-kompatibla resurser. När du använder identitet måste användaren också ange en plats för tilldelningen.

# System assigned identity 
 "identity": {
    "type": "SystemAssigned"
  }
# User assigned identity 
  "identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/SubscriptionID/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {}
    }
  },

Nästa steg