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 "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 {$_.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 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 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.

Parameter

-ApiVersion

Gibt die version der zu verwendenden Ressourcenanbieter-API an. Wenn Sie keine Version angeben, verwendet dieses Cmdlet die neueste verfügbare Version.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AssignIdentity

Generieren und Zuweisen einer vom System zugewiesenen verwalteten Identität für diese Richtlinienzuweisung. Die Identität wird verwendet, wenn Bereitstellungen für "deployIfNotExists" und "Modify"-Richtlinien ausgeführt werden. Der Speicherort ist beim Zuweisen einer Identität erforderlich.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Anmeldeinformationen, Konto, Mandant und Abonnement für die Kommunikation mit Azure

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Die Beschreibung für die Richtlinienzuweisung

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DisplayName

Gibt einen Anzeigenamen für die Richtlinienzuweisung an.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnforcementMode

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
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-IdentityId

Gibt die ID der vom Benutzer zugewiesenen verwalteten Identität an, die dieser Richtlinienzuweisung zugewiesen werden soll. Dieser Wert ist erforderlich, wenn der Wert "UserAssigned" an den Parameter "-IdentityType" übergeben wird.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IdentityType

Gibt den Typ der verwalteten Identität an, die dieser Richtlinienzuweisung zugewiesen werden soll. Wenn der Wert "SystemAssigned" angegeben wird, wird eine vom System zugewiesene verwaltete Identität generiert und dieser Richtlinienzuweisung zugewiesen. Wenn der Wert "UserAssigned" angegeben wird, wird der benutzer zugewiesene Identität, die über seine ID an den Parameter "-IdentityId" übergeben wird, dieser Richtlinienzuweisung zugewiesen. Die Identität wird verwendet, wenn Bereitstellungen für "deployIfNotExists" und "Modify"-Richtlinien ausgeführt werden. Der Speicherort ist beim Zuweisen einer Identität erforderlich. Berechtigungen müssen der Identität mithilfe von New-AzRoleAssignment erteilt werden, nachdem die vom System zugewiesene Identität erstellt wurde. Der IdentityType-Parameter erhält Vorrang, wenn sowohl der Parameter AssignIdentity als auch der IdentityType-Parameter verwendet werden.

Type:Nullable<T>[ManagedIdentityType]
Accepted values:SystemAssigned, UserAssigned, None
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

Der Speicherort der Ressourcenidentität der Richtlinienzuweisung. Dies ist erforderlich, wenn der -IdentityType-Wert bereitgestellt wird.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Metadata

Die Metadaten für die neue Richtlinienzuweisung. Dies kann ein Pfad zu einem Dateinamen sein, der die Metadaten enthält, oder die Metadaten als Zeichenfolge.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Gibt einen Namen für die Richtlinienzuweisung an.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NonComplianceMessage

Die Nicht-Compliance-Meldungen, die beschreiben, warum eine Ressource nicht mit der Richtlinie kompatibel ist.

Type:PsNonComplianceMessage[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-NotScope

Die nicht für die Richtlinienzuweisung vorgesehenen Bereiche.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PolicyDefinition

Gibt eine Richtlinie als PsPolicyDefinition -Objekt an, das die Richtlinienregel enthält.

Type:PsPolicyDefinition
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PolicyParameter

Die Datei- oder Richtlinienparameterzeichenfolge des Richtlinienparameters.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PolicyParameterObject

Das Richtlinienparameterobjekt.

Type:Hashtable
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PolicySetDefinition

Das Richtliniensatzdefinitionsobjekt.

Type:PsPolicySetDefinition
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Pre

Gibt an, dass dieses Cmdlet vorab veröffentlichte API-Versionen berücksichtigt, wenn es automatisch bestimmt, welche Version verwendet werden soll.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

Gibt den Bereich an, in dem die Richtlinie zugewiesen werden soll. Wenn Sie beispielsweise einer Ressourcengruppe eine Richtlinie zuweisen möchten, geben Sie Folgendes an: /subscriptions/Name der Abonnement-ID-Ressourcengruppe/resourcegroups/

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Eingaben

String

String[]

PsPolicyDefinition

PsPolicySetDefinition

Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]

PsNonComplianceMessage[]

Ausgaben

PsPolicyAssignment