New-AzPolicyAssignment
Erstellt eine Richtlinienzuweisung.
Syntax
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
[-PolicySetDefinition <PsPolicySetDefinition>]
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
-PolicyDefinition <PsPolicyDefinition>
[-PolicySetDefinition <PsPolicySetDefinition>]
-PolicyParameterObject <Hashtable>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
-PolicyDefinition <PsPolicyDefinition>
[-PolicySetDefinition <PsPolicySetDefinition>]
-PolicyParameter <String>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
-PolicySetDefinition <PsPolicySetDefinition>
-PolicyParameterObject <Hashtable>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzPolicyAssignment
-Name <String>
[-Scope <String>]
[-NotScope <String[]>]
[-DisplayName <String>]
[-Description <String>]
[-PolicyDefinition <PsPolicyDefinition>]
-PolicySetDefinition <PsPolicySetDefinition>
-PolicyParameter <String>
[-Metadata <String>]
[-EnforcementMode <PolicyAssignmentEnforcementMode>]
[-AssignIdentity]
[-IdentityType <ManagedIdentityType>]
[-IdentityId <String>]
[-Location <String>]
[-NonComplianceMessage <PsNonComplianceMessage[]>]
[-ApiVersion <String>]
[-Pre]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Beschreibung
Das Cmdlet "New-AzPolicyAssignment " erstellt eine Richtlinienzuweisung. Geben Sie eine Richtlinie und einen Bereich an.
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 Abonnement01 mithilfe des Cmdlets Get-AzSubscription ab und speichert es in der $Subscription Variablen. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets Get-AzPolicyDefinition ab und speichert sie in der $Policy Variablen. Der letzte Befehl weist die Richtlinie in $Policy auf ebene der vom Abonnementbereichszeichenfolge identifizierten Abonnement zu.
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 $ResourceGroup Variablen. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets Get-AzPolicyDefinition ab und speichert sie in der $Policy Variablen. Der letzte Befehl weist die Richtlinie in $Policy auf ebene der Ressourcengruppe zu, die von der ResourceId-Eigenschaft $ResourceGroup identifiziert wird.
Beispiel 3: 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. Die dritten und vierten Befehle erstellen ein Objekt, das alle Azure-Regionen mit "Ost" im Namen enthält. Die Befehle speichern dieses Objekt in der $AllowedLocations Variablen. Der endgültige Befehl weist die Richtlinie in $Policy auf Ebene einer Ressourcengruppe mit dem Richtlinienparameterobjekt in $AllowedLocations zu. Die ResourceId-Eigenschaft von $ResourceGroup identifiziert die Ressourcengruppe.
Beispiel 4: Richtlinienzuweisung auf Ressourcengruppenebene mit Richtlinienparameterdatei
Erstellen Sie eine Datei namens "AllowedLocations.json " im lokalen Arbeitsverzeichnis mit dem folgenden Inhalt.
<#{
"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 $ResourceGroup Variablen. Der zweite Befehl ruft die integrierte Richtliniendefinition für zulässige Speicherorte mithilfe des Cmdlets Get-AzPolicyDefinition ab und speichert sie in der $Policy Variablen. Der endgültige 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 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 $ResourceGroup Variablen. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets Get-AzPolicyDefinition ab und speichert sie in der $Policy Variablen. 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 $ResourceGroup Variablen. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets Get-AzPolicyDefinition ab und speichert sie in der $Policy Variablen. Der dritte Befehl ruft die verwaltete Identität namens UserAssignedIdentity1 mithilfe des Cmdlets Get-AzUserAssignedIdentity ab und speichert sie in der $UserAssignedIdentity Variable. Der letzte Befehl weist die Richtlinie in $Policy der Ressourcengruppe zu. Der benutzer zugewiesene verwaltete Identität, die durch die Id-Eigenschaft von $UserAssignedIdentity identifiziert wird, wird der Richtlinienzuweisung zugewiesen, indem die Id*-Eigenschaft an den IdentityId-Parameter übergeben wird.
Beispiel 7: Richtlinienzuweisung mit einer Durchsetzungsmoduseigenschaft
$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 Abonnement01 mithilfe des Cmdlets Get-AzSubscription ab und speichert es in der $Subscription Variablen. Der zweite Befehl ruft die Richtliniendefinition mit dem Namen VirtualMachinePolicy mithilfe des Cmdlets Get-AzPolicyDefinition ab und speichert sie in der $Policy Variablen. Der letzte Befehl weist die Richtlinie in $Policy auf ebene der vom Abonnementbereichszeichenfolge identifizierten Abonnement zu. Die Zuordnung 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 namens VirtualMachinePolicySet mithilfe des Cmdlets Get-AzPolicySetDefinition ab und speichert sie in der $PolicySet Variablen. Der zweite Befehl erstellt ein Array von Nicht-Compliance-Nachrichten. Eine allgemeine Nachricht für die gesamte Zuordnung und eine Nachricht, die für eine SKU-Einschränkungsrichtlinie innerhalb der zugewiesenen Richtliniendefinition spezifisch ist. Der letzte Befehl weist die Richtliniensatzdefinition in $PolicySet dem Abonnement mit zwei Nicht-Compliance-Nachrichten zu, die angezeigt werden, wenn eine Ressource von der Richtlinie verweigert wird.
Parameter
Gibt die zu verwendende Version der Ressourcenanbieter-API an. Wenn Sie keine Version angeben, verwendet dieses Cmdlet die neueste verfügbare Version.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Generieren und Zuweisen einer system zugewiesenen verwalteten Identität für diese Richtlinienzuweisung. Die Identität wird beim Ausführen von Bereitstellungen für "deployIfNotExists" und "Änderungsrichtlinien" verwendet. Der Speicherort ist beim Zuweisen einer Identität erforderlich.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Die Anmeldeinformationen, Konten, Mandanten und Abonnement, die für die Kommunikation mit Azure verwendet werden
| Type: | IAzureContextContainer |
| Aliases: | AzContext, AzureRmContext, AzureCredential |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Die Beschreibung für die Richtlinienzuweisung
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Gibt einen Anzeigenamen für die Richtlinienzuweisung an.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Der Erzwingungsmodus für die Richtlinienzuweisung. Derzeit sind gültige Werte Default, DoNotEnforce.
| Type: | Nullable<T>[PolicyAssignmentEnforcementMode] |
| Accepted values: | Default, DoNotEnforce |
| Position: | Named |
| Default value: | Default |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Gibt die ID des benutzers zugewiesenen verwalteten Identität an, um dieser Richtlinienzuweisung zuzuweisen. Dieser Wert ist erforderlich, wenn der Wert "UserAssigned" an den Parameter "-IdentityType" übergeben wird.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Gibt den Typ der verwalteten Identität an, die dieser Richtlinienzuweisung zugewiesen werden soll. Wenn der Wert "SystemAssigned" bereitgestellt wird, wird eine system zugewiesene verwaltete Identität generiert und dieser Richtlinienzuweisung zugewiesen. Wenn der Wert "UserAssigned" bereitgestellt wird, wird der benutzer zugewiesene Identität über seine ID an den Parameter "-IdentityId" dieser Richtlinienzuweisung zugewiesen. Die Identität wird beim Ausführen von Bereitstellungen für "deployIfNotExists" und "Änderungsrichtlinien" verwendet. Der Speicherort ist beim Zuweisen einer Identität erforderlich. Berechtigungen müssen der Identität mit New-AzRoleAssignment erteilt werden, nachdem die system zugewiesene Identität erstellt wurde. Der IdentityType-Parameter wird Vorrang erhalten, wenn sowohl die ZuweisenIdentity als auch der IdentityType-Parameter verwendet werden.
| Type: | Nullable<T>[ManagedIdentityType] |
| Accepted values: | SystemAssigned, UserAssigned, None |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Der Speicherort der Ressourcenidentität der Richtlinienzuweisung. Dies ist erforderlich, wenn der Wert "-IdentityType" bereitgestellt wird.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Die Metadaten für die neue Richtlinienzuweisung. Dies kann entweder ein Pfad zu einem Dateinamen sein, der die Metadaten enthält, oder die Metadaten als Zeichenfolge.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Gibt einen Namen für die Richtlinienzuweisung an.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Die Nicht-Compliance-Nachrichten, die beschreiben, warum eine Ressource nicht mit der Richtlinie kompatibel ist.
| Type: | PsNonComplianceMessage[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Die Nichtbereiche für die Richtlinienzuweisung.
| Type: | String[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Gibt eine Richtlinie als PsPolicyDefinition-Objekt an, das die Richtlinienregel enthält.
| Type: | PsPolicyDefinition |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Der Richtlinienparameterdateipfad oder die Richtlinienparameterzeichenfolge.
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Das Richtlinienparameterobjekt.
| Type: | Hashtable |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Das Richtliniensatzdefinitionsobjekt.
| Type: | PsPolicySetDefinition |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Gibt an, dass dieses Cmdlet Vorabversions-API-Versionen berücksichtigt, wenn sie automatisch bestimmt, welche Version verwendet werden soll.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Gibt den Bereich an, an dem die Richtlinie zugewiesen werden soll.
Wenn Sie beispielsweise einer Ressourcengruppe eine Richtlinie zuweisen möchten, geben Sie folgendes an: /subscriptions/Namen der Abonnement-ID-Ressourcengruppe/resourcegroups/
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Eingaben
String[]
Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]
Ausgaben
Ähnliche Themen
Feedback
Feedback senden und anzeigen für