Cmdleten New-AzPolicyAssignment skapar eller uppdaterar en principtilldelning med angivet omfång och namn.
Principtilldelningar gäller för alla resurser som ingår i deras omfång.
När du till exempel tilldelar en princip i resursgruppens omfång gäller den principen för alla resurser i gruppen.
Exempel
Exempel 1: Principtilldelning på prenumerationsnivå
Det första kommandot hämtar en prenumeration med namnet Subscription01 med hjälp av cmdleten Get-AzSubscription och lagrar den i variabeln $Subscription.
Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det sista kommandot tilldelar principen i $Policy på den prenumerationsnivå som identifieras av prenumerationsomfångssträngen.
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup.
Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det sista kommandot tilldelar principen i $Policy på nivån för resursgruppen som identifieras av egenskapen ResourceId för $ResourceGroup.
Exempel 3: Principtilldelning på resursgruppsnivå med principparameterobjekt
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup.
Kommandot lagrar objektet i variabeln $ResourceGroup.
Det andra kommandot hämtar den inbyggda principdefinitionen för tillåtna platser med hjälp av cmdleten Get-AzPolicyDefinition.
Kommandot lagrar objektet i variabeln $Policy.
De tredje och fjärde kommandona skapar ett objekt som innehåller alla Azure-regioner med "öst" i namnet.
Kommandona lagrar objektet i variabeln $AllowedLocations.
Det sista kommandot tilldelar principen i $Policy på nivån för en resursgrupp med hjälp av principparameterobjektet i $AllowedLocations.
Egenskapen ResourceId för $ResourceGroup identifierar resursgruppen.
Exempel 4: Principtilldelning på resursgruppsnivå med principparameterfil
Det första kommandot skapar en parameterfil med namnet AllowedLocations.json i den lokala arbetskatalogen.
Det andra kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup.
Det tredje kommandot hämtar den inbyggda principdefinitionen för tillåtna platser med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det sista kommandot tilldelar principen i $Policy i resursgruppen som identifieras av egenskapen ResourceId för $ResourceGroup med hjälp av principparameterfilen AllowedLocations.json från den lokala arbetskatalogen.
Exempel 5: Principtilldelning med en systemtilldelad hanterad identitet
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup.
Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det sista kommandot tilldelar principen i $Policy till resursgruppen.
En systemtilldelad hanterad identitet skapas automatiskt och tilldelas till principtilldelningen.
Exempel 6: Principtilldelning med en användartilldelad hanterad identitet
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup.
Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det tredje kommandot hämtar den användartilldelade hanterade identiteten med namnet UserAssignedIdentity1 med hjälp av cmdleten Get-AzUserAssignedIdentity och lagrar den i variabeln $UserAssignedIdentity.
Det sista kommandot tilldelar principen i $Policy till resursgruppen.
Den användartilldelade hanterade identiteten som identifieras av ID-egenskapen för $UserAssignedIdentity tilldelas till principtilldelningen genom att egenskapen Id* skickas till parametern IdentityId.
Exempel 7: Principtilldelning med en egenskap för tvingande läge
Det första kommandot hämtar en prenumeration med namnet Subscription01 med hjälp av cmdleten Get-AzSubscription och lagrar den i variabeln $Subscription.
Det andra kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det sista kommandot tilldelar principen i $Policy på den prenumerationsnivå som identifieras av prenumerationsomfångssträngen.
Tilldelningen anges med värdet EnforcementMode för DoNotEnforce , dvs. principeffekten tillämpas inte när resursen skapas eller uppdateras.
Exempel 8: Principtilldelning med icke-efterlevnadsmeddelanden
$PolicySet = Get-AzPolicySetDefinition -Name 'VirtualMachinePolicySet'
$NonComplianceMessages = @(@{Message="Only DsV2 SKUs are allowed."; PolicyDefinitionReferenceId="DefRef1"}, @{Message="Virtual machines must follow cost management best practices."})
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicySetDefinition $PolicySet -NonComplianceMessage $NonComplianceMessages
Det första kommandot hämtar principuppsättningsdefinitionen med namnet VirtualMachinePolicySet med hjälp av cmdleten Get-AzPolicySetDefinition och lagrar den i variabeln $PolicySet.
Det andra kommandot skapar en matris med icke-efterlevnadsmeddelanden.
Ett allmänt syftesmeddelande för hela tilldelningen och ett meddelande som är specifikt för en SKU-begränsningsprincip i den tilldelade principuppsättningsdefinitionen.
Det sista kommandot tilldelar principuppsättningsdefinitionen i $PolicySet till prenumerationen med två icke-efterlevnadsmeddelanden som visas om en resurs nekas av principen.
Det första kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det andra kommandot skapar ett resursväljareobjekt som ska användas för att ange att tilldelningen endast ska gälla för resurser i USA, östra eller USA, östra 2 och lagrar det i variabeln $ResourceSelector.
Det sista kommandot tilldelar principdefinitionen i $Policy till prenumerationen med resursväljaren som anges av $ResourceSelector.
Det första kommandot hämtar principdefinitionen med namnet VirtualMachinePolicy med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det andra kommandot skapar en platsväljare som anger platser i USA, östra eller USA, östra 2 och lagrar den i variabeln $Selector.
Det tredje kommandot skapar ett åsidosättningsobjekt som ska användas för att ange att den tilldelade definitionen ska ha en inaktiverad effekt på de platser som identifieras av $Selector-objektet och lagrar det i variabeln $Override.
Det sista kommandot tilldelar principdefinitionen i $Policy till prenumerationen med den åsidosättning som anges av $Override.
Exempel 11: [Backcompat] Principtilldelning på resursgruppsnivå med principparameterobjekt
Det första kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup.
Kommandot lagrar objektet i variabeln $ResourceGroup.
Det andra kommandot hämtar den inbyggda principdefinitionen för tillåtna platser med hjälp av cmdleten Get-AzPolicyDefinition.
Kommandot lagrar objektet i variabeln $Policy.
De tredje och fjärde kommandona skapar ett objekt som innehåller alla Azure-regioner med "öst" i namnet.
Kommandona lagrar objektet i variabeln $AllowedLocations.
Det sista kommandot tilldelar principen i $Policy på nivån för en resursgrupp med hjälp av principparameterobjektet i $AllowedLocations.
Egenskapen ResourceId för $ResourceGroup identifierar resursgruppen.
Exempel 12: [Backcompat] Principtilldelning på resursgruppsnivå med principparameterfil
Det första kommandot skapar en parameterfil med namnet AllowedLocations.json i den lokala arbetskatalogen.
Det andra kommandot hämtar en resursgrupp med namnet ResourceGroup11 med hjälp av cmdleten Get-AzResourceGroup och lagrar den i variabeln $ResourceGroup.
Det tredje kommandot hämtar den inbyggda principdefinitionen för tillåtna platser med hjälp av cmdleten Get-AzPolicyDefinition och lagrar den i variabeln $Policy.
Det sista kommandot tilldelar principen i $Policy i resursgruppen som identifieras av egenskapen ResourceId för $ResourceGroup med hjälp av principparameterfilen AllowedLocations.json från den lokala arbetskatalogen.
Parametrar
-BackwardCompatible
Gör att cmdleten returnerar artefakter med äldre format som placerar principspecifika egenskaper i ett egenskapspåseobjekt.
Användaridentiteten som är associerad med principen.
Nyckelreferenserna för användaridentitetsordlistan är ARM-resurs-ID:er i formuläret: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
Meddelandena som beskriver varför en resurs inte är kompatibel med principen.
Information om hur du skapar finns i AVSNITTET ANTECKNINGAR för NONCOMPLIANCEMESSAGE-egenskaper och skapa en hash-tabell.
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.