Freigeben über


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

PSObject[]

String

String[]

Ausgaben

IPolicyAssignment