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

-ApiVersion

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
-AssignIdentity

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
-DefaultProfile

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
-Description

Die Beschreibung für die Richtlinienzuweisung

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

Gibt einen Anzeigenamen für die Richtlinienzuweisung an.

Type:String
Position:Named
Default value:None
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
Accept pipeline input:True
Accept wildcard characters:False
-IdentityId

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
-IdentityType

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
-Location

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
-Metadata

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
-Name

Gibt einen Namen für die Richtlinienzuweisung an.

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

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
-NotScope

Die Nichtbereiche für die Richtlinienzuweisung.

Type:String[]
Position:Named
Default value:None
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
Accept pipeline input:True
Accept wildcard characters:False
-PolicyParameter

Der Richtlinienparameterdateipfad oder die Richtlinienparameterzeichenfolge.

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

Das Richtlinienparameterobjekt.

Type:Hashtable
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-PolicySetDefinition

Das Richtliniensatzdefinitionsobjekt.

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

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
-Scope

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

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