New-AzPolicyAssignment
Erstellt oder aktualisiert eine Richtlinienzuweisung.
Syntax
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-BackwardCompatible]
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-BackwardCompatible]
[-PolicyDefinition <PSObject>]
-PolicyParameterObject <Hashtable>
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-BackwardCompatible]
[-PolicyDefinition <PSObject>]
-PolicyParameter <String>
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-Metadata <String>]
[-EnforcementMode <String>]
[-IdentityType <String>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PSObject[]>]
[-BackwardCompatible]
-PolicyDefinition <PSObject>
[-DefaultProfile <PSObject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Cmdlet New-AzPolicyAssignment erstellt oder aktualisiert eine Richtlinienzuweisung mit dem angegebenen Bereich und Namen. Richtlinienzuweisungen gelten für alle Ressourcen, die in ihrem Bereich enthalten sind. Wenn Sie beispielsweise eine Richtlinie im Ressourcengruppenbereich zuweisen, gilt diese Richtlinie für alle Ressourcen in der Gruppe.
Beispiele
Beispiel 1: Richtlinienzuweisung auf Abonnementebene
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"
Der erste Befehl ruft ein Abonnement namens "Subscription01" mithilfe des Cmdlets "Get-AzSubscription" ab und speichert es in der variablen $Subscription. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets "Get-AzPolicyDefinition" ab und speichert sie in der variablen $Policy. Der letzte Befehl weist die Richtlinie in $Policy auf der Ebene des Abonnements zu, das durch die Abonnementbereichszeichenfolge identifiziert wird.
Beispiel 2: Richtlinienzuweisung auf Ressourcengruppenebene
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId
Der erste Befehl ruft eine Ressourcengruppe namens ResourceGroup11 mithilfe des Cmdlets "Get-AzResourceGroup" ab und speichert sie in der variablen $ResourceGroup. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets "Get-AzPolicyDefinition" ab und speichert sie in der variablen $Policy. Der letzte Befehl weist die Richtlinie in $Policy auf der Ebene der Ressourcengruppe zu, die durch die ResourceId-Eigenschaft von $ResourceGroup identifiziert wird.
Beispiel 3: Richtlinienzuweisung auf Ressourcengruppenebene mit Richtlinienparameterobjekt
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.DisplayName -eq 'Allowed locations'}
$Locations = Get-AzLocation | Where-Object displayname -like '*east*'
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameterObject $AllowedLocations
Der erste Befehl ruft eine Ressourcengruppe namens ResourceGroup11 mithilfe des Cmdlets "Get-AzResourceGroup" ab. Der Befehl speichert dieses Objekt in der $ResourceGroup Variablen. Der zweite Befehl ruft die integrierte Richtliniendefinition für zulässige Speicherorte mithilfe des Cmdlets "Get-AzPolicyDefinition" ab. Der Befehl speichert dieses Objekt in der $Policy Variablen. Mit den dritten und vierten Befehlen wird ein Objekt erstellt, das alle Azure-Regionen mit "east" im Namen enthält. Die Befehle speichern dieses Objekt in der $AllowedLocations Variablen. Der letzte Befehl weist die Richtlinie in $Policy auf der Ebene einer Ressourcengruppe mithilfe des Richtlinienparameterobjekts in $AllowedLocations zu. Die ResourceId-Eigenschaft von $ResourceGroup identifiziert die Ressourcengruppe.
Beispiel 4: Richtlinienzuweisung auf Ressourcengruppenebene mit Richtlinienparameterdatei
{
"listOfAllowedLocations": {
"value": [
"westus",
"westeurope",
"japanwest"
]
}
}
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.DisplayName -eq 'Allowed locations'}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameter .\AllowedLocations.json
Der erste Befehl ruft eine Ressourcengruppe namens ResourceGroup11 mithilfe des Cmdlets "Get-AzResourceGroup" ab und speichert sie in der variablen $ResourceGroup. Der zweite Befehl ruft die integrierte Richtliniendefinition für zulässige Speicherorte mithilfe des Cmdlets "Get-AzPolicyDefinition" ab und speichert sie in der variablen $Policy. Der letzte Befehl weist die Richtlinie in $Policy an der Ressourcengruppe zu, die durch die ResourceId-Eigenschaft von $ResourceGroup mithilfe der Richtlinienparameterdatei AllowedLocations.json aus dem lokalen Arbeitsverzeichnis identifiziert wird.
Beispiel 5: Richtlinienzuweisung mit einer vom System zugewiesenen verwalteten Identität
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'
Der erste Befehl ruft eine Ressourcengruppe namens ResourceGroup11 mithilfe des Cmdlets "Get-AzResourceGroup" ab und speichert sie in der variablen $ResourceGroup. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets "Get-AzPolicyDefinition" ab und speichert sie in der variablen $Policy. Der letzte Befehl weist die Richtlinie in $Policy der Ressourcengruppe zu. Eine vom System zugewiesene verwaltete Identität wird automatisch erstellt und der Richtlinienzuweisung zugewiesen.
Beispiel 6: Richtlinienzuweisung mit einer vom Benutzer zugewiesenen verwalteten Identität
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$UserAssignedIdentity = Get-AzUserAssignedIdentity -ResourceGroupName 'ResourceGroup1' -Name 'UserAssignedIdentity1'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'UserAssigned' -IdentityId $UserAssignedIdentity.Id
Der erste Befehl ruft eine Ressourcengruppe namens ResourceGroup11 mithilfe des Cmdlets "Get-AzResourceGroup" ab und speichert sie in der variablen $ResourceGroup. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets "Get-AzPolicyDefinition" ab und speichert sie in der variablen $Policy. Der dritte Befehl ruft die vom Benutzer zugewiesene verwaltete Identität "UserAssignedIdentity1" mithilfe des Cmdlets "Get-AzUserAssignedIdentity" ab und speichert sie in der variablen $UserAssignedIdentity. Der letzte Befehl weist die Richtlinie in $Policy der Ressourcengruppe zu. Der durch die Id-Eigenschaft von $UserAssignedIdentity identifizierte verwaltete Identität des Benutzers wird der Richtlinienzuweisung zugewiesen, indem die Id*-Eigenschaft an den IdentityId-Parameter übergeben wird.
Beispiel 7: Richtlinienzuweisung mit einer Erzwingungsmoduseigenschaft
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce
Der erste Befehl ruft ein Abonnement namens "Subscription01" mithilfe des Cmdlets "Get-AzSubscription" ab und speichert es in der variablen $Subscription. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets "Get-AzPolicyDefinition" ab und speichert sie in der variablen $Policy. Der letzte Befehl weist die Richtlinie in $Policy auf der Ebene des Abonnements zu, das durch die Abonnementbereichszeichenfolge identifiziert wird.
Die Zuweisung wird mit einem EnforcementMode-Wert von DoNotEnforce festgelegt, d. h. der Richtlinieneffekt wird während der Ressourcenerstellung oder -aktualisierung nicht erzwungen.
Beispiel 8: Richtlinienzuweisung mit Nicht-Compliance-Nachrichten
$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
Der erste Befehl ruft die Richtliniensatzdefinition mit dem Namen "VirtualMachinePolicySet" mithilfe des Cmdlets "Get-AzPolicySetDefinition" ab und speichert sie in der variablen $PolicySet. Der zweite Befehl erstellt ein Array von Nicht-Compliance-Nachrichten. Eine allgemeine Nachricht für die gesamte Zuweisung und eine Nachricht, die für eine SKU-Einschränkungsrichtlinie innerhalb der zugewiesenen Richtliniensatzdefinition spezifisch ist. Mit dem letzten Befehl wird die Richtliniensatzdefinition in $PolicySet dem Abonnement mit zwei Nicht-Compliance-Meldungen zugewiesen, die angezeigt werden, wenn eine Ressource von der Richtlinie verweigert wird.
Beispiel 9: [Backcompat] Richtlinienzuweisung auf Ressourcengruppenebene mit Richtlinienparameterobjekt
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.Properties.DisplayName -eq 'Allowed locations'}
$Locations = Get-AzLocation | Where-Object displayname -like '*east*'
$AllowedLocations = @{'listOfAllowedLocations'=($Locations.location)}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameterObject $AllowedLocations
Der erste Befehl ruft eine Ressourcengruppe namens ResourceGroup11 mithilfe des Cmdlets "Get-AzResourceGroup" ab. Der Befehl speichert dieses Objekt in der $ResourceGroup Variablen. Der zweite Befehl ruft die integrierte Richtliniendefinition für zulässige Speicherorte mithilfe des Cmdlets "Get-AzPolicyDefinition" ab. Der Befehl speichert dieses Objekt in der $Policy Variablen. Mit den dritten und vierten Befehlen wird ein Objekt erstellt, das alle Azure-Regionen mit "east" im Namen enthält. Die Befehle speichern dieses Objekt in der $AllowedLocations Variablen. Der letzte Befehl weist die Richtlinie in $Policy auf der Ebene einer Ressourcengruppe mithilfe des Richtlinienparameterobjekts in $AllowedLocations zu. Die ResourceId-Eigenschaft von $ResourceGroup identifiziert die Ressourcengruppe.
Beispiel 10: [Backcompat] Richtlinienzuweisung auf Ressourcengruppenebene mit Richtlinienparameterdatei
{
"listOfAllowedLocations": {
"value": [
"westus",
"westeurope",
"japanwest"
]
}
}
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -BuiltIn | Where-Object {$_.Properties.DisplayName -eq 'Allowed locations'}
New-AzPolicyAssignment -Name 'RestrictLocationPolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -PolicyParameter .\AllowedLocations.json
Der erste Befehl ruft eine Ressourcengruppe namens ResourceGroup11 mithilfe des Cmdlets "Get-AzResourceGroup" ab und speichert sie in der variablen $ResourceGroup. Der zweite Befehl ruft die integrierte Richtliniendefinition für zulässige Speicherorte mithilfe des Cmdlets "Get-AzPolicyDefinition" ab und speichert sie in der variablen $Policy. Der letzte Befehl weist die Richtlinie in $Policy an der Ressourcengruppe zu, die durch die ResourceId-Eigenschaft von $ResourceGroup mithilfe der Richtlinienparameterdatei AllowedLocations.json aus dem lokalen Arbeitsverzeichnis identifiziert wird.
Parameter
-BackwardCompatible
Bewirkt, dass cmdlet Artefakte mithilfe von richtlinienspezifischen Eigenschaften im Legacyformat in einem Eigenschaftenbehälterobjekt zurückgibt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Der Parameter DefaultProfile ist nicht funktionsfähig. Verwenden Sie den Parameter "SubscriptionId", wenn sie verfügbar ist, wenn Sie das Cmdlet für ein anderes Abonnement ausführen.
Typ: | PSObject |
Aliases: | AzureRMContext, AzureCredential |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Diese Nachricht wird teil der Antwort im Falle eines Richtlinienverstoßes sein.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DisplayName
Der Anzeigename der Richtlinienzuweisung.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnforcementMode
Der Erzwingungsmodus für die Richtlinienzuweisung. Mögliche Werte sind Default und DoNotEnforce.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IdentityId
Die Benutzeridentität, die der Richtlinie zugeordnet ist. Die Benutzeridentitätswörterbuchschlüsselverweise sind ARM-Ressourcen-IDs im Formular: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IdentityType
Der Identitätstyp. Dies ist das einzige erforderliche Feld beim Hinzufügen einer System- oder Benutzeridentität zu einer Ressource.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Location
Der Speicherort der Richtlinienzuweisung. Nur erforderlich, wenn verwaltete Identität verwendet wird.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Metadata
Die Metadaten der Richtlinienzuweisung. Metadaten sind ein offenes beendetes Objekt und sind in der Regel eine Sammlung von Schlüsselwertpaaren.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Der Name der Richtlinienzuweisung.
Typ: | String |
Aliases: | PolicyAssignmentName |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NonComplianceMessage
Die Nachrichten, die beschreiben, warum eine Ressource nicht mit der Richtlinie kompatibel ist. Informationen zum Erstellen finden Sie im ABSCHNITT "NOTES" für NONCOMPLIANCEMESSAGE-Eigenschaften und erstellen eine Hashtabelle.
Typ: | PSObject[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NotScope
Die ausgeschlossenen Bereiche der Richtlinie.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyDefinition
Akzeptieren von Richtliniendefinitions- oder Richtliniensatzdefinitionsobjekten
Typ: | PSObject |
Aliases: | PolicySetDefinition |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameter
Die Parameterwerte für die zugewiesene Richtlinienregel. Die Schlüssel sind die Parameternamen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PolicyParameterObject
Die Parameterwerte für die zugewiesene Richtlinienregel. Die Schlüssel sind die Parameternamen.
Typ: | Hashtable |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Der Bereich der Richtlinienzuweisung. Gültige Bereiche sind: Verwaltungsgruppe (Format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), Abonnement (Format: '/subscriptions/{subscriptionId}'), Ressourcengruppe (Format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', oder Ressource (Format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
PSObject[]
String[]
Ausgaben
Azure PowerShell
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für