Condividi tramite


New-AzPolicyAssignment

Crea o aggiorna un'assegnazione di criteri.

Sintassi

New-AzPolicyAssignment
   -Name <String>
   [-Scope <String>]
   [-NotScope <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-Metadata <String>]
   [-EnforcementMode <String>]
   [-IdentityType <String>]
   [-IdentityId <String>]
   [-Location <String>]
   [-NonComplianceMessage <PSObject[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-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[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-BackwardCompatible]
   [-PolicyDefinition <PSObject>]
   [-DefinitionVersion <String>]
   -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[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-BackwardCompatible]
   [-PolicyDefinition <PSObject>]
   [-DefinitionVersion <String>]
   -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[]>]
   [-Override <IOverride[]>]
   [-ResourceSelector <IResourceSelector[]>]
   [-BackwardCompatible]
   -PolicyDefinition <PSObject>
   [-DefinitionVersion <String>]
   [-DefaultProfile <PSObject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Descrizione

Il cmdlet New-AzPolicyAssignment crea o aggiorna un'assegnazione di criteri con l'ambito e il nome specificati. Le assegnazioni di criteri si applicano a tutte le risorse contenute all'interno dell'ambito. Ad esempio, quando si assegna un criterio nell'ambito del gruppo di risorse, tale criterio si applica a tutte le risorse del gruppo.

Esempio

Esempio 1: Assegnazione di criteri a livello di sottoscrizione

$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"

Il primo comando ottiene una sottoscrizione denominata Subscription01 usando il cmdlet Get-AzSubscription e la archivia nella variabile $Subscription. Il secondo comando ottiene la definizione di criteri denominata VirtualMachinePolicy usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il comando finale assegna i criteri in $Policy al livello della sottoscrizione identificata dalla stringa di ambito della sottoscrizione.

Esempio 2: Assegnazione di criteri a livello di gruppo di risorse

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId

Il primo comando ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup e lo archivia nella variabile $ResourceGroup. Il secondo comando ottiene la definizione di criteri denominata VirtualMachinePolicy usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il comando finale assegna i criteri in $Policy al livello del gruppo di risorse identificato dalla proprietà ResourceId di $ResourceGroup.

Esempio 3: Assegnazione di criteri a livello di gruppo di risorse con oggetto parametro criteri

$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

Il primo comando ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup. Il comando archivia l'oggetto nella variabile $ResourceGroup. Il secondo comando ottiene la definizione predefinita dei criteri per i percorsi consentiti usando il cmdlet Get-AzPolicyDefinition. Il comando archivia l'oggetto nella variabile $Policy. Il terzo e il quarto comando creano un oggetto contenente tutte le aree di Azure con "east" nel nome. I comandi archiviano l'oggetto nella variabile $AllowedLocations. Il comando finale assegna i criteri in $Policy al livello di un gruppo di risorse usando l'oggetto parametro criteri in $AllowedLocations. La proprietà ResourceId di $ResourceGroup identifica il gruppo di risorse.

Esempio 4: Assegnazione di criteri a livello di gruppo di risorse con il file dei parametri dei criteri

'{
    "listOfAllowedLocations":  {
      "value": [
        "westus",
        "westeurope",
        "japanwest"
      ]
    }
}' > .\AllowedLocations.json

$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

Il primo comando crea un file di parametri denominato AllowedLocations.json nella directory di lavoro locale. Il secondo comando ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup e lo archivia nella variabile $ResourceGroup. Il terzo comando ottiene la definizione predefinita dei criteri per le posizioni consentite usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il comando finale assegna i criteri in $Policy nel gruppo di risorse identificato dalla proprietà ResourceId di $ResourceGroup usando il file dei parametri dei criteri AllowedLocations.json dalla directory di lavoro locale.

Esempio 5: Assegnazione di criteri con un'identità gestita assegnata dal sistema

$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'

Il primo comando ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup e lo archivia nella variabile $ResourceGroup. Il secondo comando ottiene la definizione di criteri denominata VirtualMachinePolicy usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il comando finale assegna i criteri in $Policy al gruppo di risorse. Un'identità gestita assegnata dal sistema viene creata e assegnata automaticamente all'assegnazione dei criteri.

Esempio 6: Assegnazione di criteri con un'identità gestita assegnata dall'utente

$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

Il primo comando ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup e lo archivia nella variabile $ResourceGroup. Il secondo comando ottiene la definizione di criteri denominata VirtualMachinePolicy usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il terzo comando ottiene l'identità gestita assegnata dall'utente denominata UserAssignedIdentity1 usando il cmdlet Get-AzUserAssignedIdentity e lo archivia nella variabile $UserAssignedIdentity. Il comando finale assegna i criteri in $Policy al gruppo di risorse. L'identità gestita assegnata dall'utente identificata dalla proprietà Id di $UserAssignedIdentity viene assegnata all'assegnazione dei criteri passando la proprietà Id* al parametro IdentityId.

Esempio 7: Assegnazione di criteri con una proprietà della modalità di imposizione

$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce

Il primo comando ottiene una sottoscrizione denominata Subscription01 usando il cmdlet Get-AzSubscription e la archivia nella variabile $Subscription. Il secondo comando ottiene la definizione di criteri denominata VirtualMachinePolicy usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il comando finale assegna i criteri in $Policy al livello della sottoscrizione identificata dalla stringa di ambito della sottoscrizione.

L'assegnazione viene impostata con un valore EnforcementMode di DoNotEnforce , ad esempio l'effetto dei criteri non viene applicato durante la creazione o l'aggiornamento delle risorse.

Esempio 8: Assegnazione di criteri con messaggi di non conformità

$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

Il primo comando ottiene la definizione del set di criteri denominata VirtualMachinePolicySet usando il cmdlet Get-AzPolicySetDefinition e la archivia nella variabile $PolicySet. Il secondo comando crea una matrice di messaggi di non conformità. Un messaggio per utilizzo generico per l'intera assegnazione e un messaggio specifico per un criterio di restrizione SKU all'interno della definizione del set di criteri assegnato. Il comando finale assegna la definizione del set di criteri in $PolicySet alla sottoscrizione con due messaggi di non conformità che verranno visualizzati se una risorsa viene negata dai criteri.

Esempio 9: Assegnazione di criteri con selettore di risorse

$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$ResourceSelector = @{Name = "MyLocationSelector"; Selector = @(@{Kind = "resourceLocation"; In = @("eastus", "eastus2")})}
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -ResourceSelector $ResourceSelector

Il primo comando ottiene la definizione di criteri denominata VirtualMachinePolicy usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il secondo comando crea un oggetto selettore di risorse che verrà usato per specificare l'assegnazione deve essere applicato solo alle risorse situate negli Stati Uniti orientali o stati Uniti orientali 2 e le archivia nella variabile $ResourceSelector. Il comando finale assegna la definizione dei criteri in $Policy alla sottoscrizione con il selettore di risorse specificato da $ResourceSelector.

Esempio 10: Assegnazione di criteri con override

$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$Selector = @{Kind = "resourceLocation"; In = @("eastus", "eastus2")}
$Override = @(@{Kind = "policyEffect"; Value = 'Disabled'; Selector = @($Selector)})
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Override $Override

Il primo comando ottiene la definizione di criteri denominata VirtualMachinePolicy usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il secondo comando crea un selettore di posizione che specifica stati Uniti orientali o Stati Uniti orientali 2 e lo archivia nella variabile $Selector. Il terzo comando crea un oggetto override che verrà usato per specificare che la definizione assegnata deve avere un effetto Disabled nelle posizioni identificate dall'oggetto $Selector e lo archivia nella variabile $Override. Il comando finale assegna la definizione dei criteri in $Policy alla sottoscrizione con l'override specificato da $Override.

Esempio 11: [Backcompat] Assegnazione di criteri a livello di gruppo di risorse con oggetto parametro criteri

$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

Il primo comando ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup. Il comando archivia l'oggetto nella variabile $ResourceGroup. Il secondo comando ottiene la definizione predefinita dei criteri per i percorsi consentiti usando il cmdlet Get-AzPolicyDefinition. Il comando archivia l'oggetto nella variabile $Policy. Il terzo e il quarto comando creano un oggetto contenente tutte le aree di Azure con "east" nel nome. I comandi archiviano l'oggetto nella variabile $AllowedLocations. Il comando finale assegna i criteri in $Policy al livello di un gruppo di risorse usando l'oggetto parametro criteri in $AllowedLocations. La proprietà ResourceId di $ResourceGroup identifica il gruppo di risorse.

Esempio 12: [Backcompat] Assegnazione di criteri a livello di gruppo di risorse con il file di parametri dei criteri

'{
    "listOfAllowedLocations":  {
      "value": [
        "westus",
        "westeurope",
        "japanwest"
      ]
    }
}' > .\AllowedLocations.json

$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

Il primo comando crea un file di parametri denominato AllowedLocations.json nella directory di lavoro locale. Il secondo comando ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup e lo archivia nella variabile $ResourceGroup. Il terzo comando ottiene la definizione predefinita dei criteri per le posizioni consentite usando il cmdlet Get-AzPolicyDefinition e la archivia nella variabile $Policy. Il comando finale assegna i criteri in $Policy nel gruppo di risorse identificato dalla proprietà ResourceId di $ResourceGroup usando il file dei parametri dei criteri AllowedLocations.json dalla directory di lavoro locale.

Parametri

-BackwardCompatible

Fa sì che il cmdlet restituisca artefatti usando il formato legacy inserendo proprietà specifiche dei criteri in un oggetto contenitore delle proprietà.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DefaultProfile

Il parametro DefaultProfile non è funzionale. Usare il parametro SubscriptionId quando disponibile se si esegue il cmdlet su una sottoscrizione diversa.

Tipo:PSObject
Alias:AzureRMContext, AzureCredential
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DefinitionVersion

Indicare la versione della definizione dei criteri o la definizione del set di criteri

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Description

Questo messaggio farà parte della risposta in caso di violazione dei criteri.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-DisplayName

Nome visualizzato dell'assegnazione dei criteri.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-EnforcementMode

Modalità di imposizione dell'assegnazione dei criteri. I valori possibili sono Default e DoNotEnforce.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-IdentityId

Identità utente associata al criterio. I riferimenti alla chiave del dizionario delle identità utente saranno id risorsa ARM nel formato :'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-IdentityType

Tipo di identità. Questo è l'unico campo obbligatorio quando si aggiunge un'identità assegnata dal sistema o dall'utente a una risorsa.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Location

Posizione dell'assegnazione dei criteri. Obbligatorio solo quando si usa l'identità gestita.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Metadata

Metadati dell'assegnazione dei criteri. I metadati sono un oggetto aperto terminato ed è in genere una raccolta di coppie chiave-valore.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Name

Nome dell'assegnazione dei criteri.

Tipo:String
Alias:PolicyAssignmentName
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-NonComplianceMessage

Messaggi che descrivono il motivo per cui una risorsa non è conforme ai criteri. Per costruire, vedere la sezione NOTES per le proprietà NONCOMPLIANCEMESSAGE e creare una tabella hash.

Tipo:PSObject[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-NotScope

Ambiti esclusi dai criteri.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Override

Override del valore della proprietà dei criteri.

Tipo:IOverride[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-PolicyDefinition

Accettare la definizione di criteri o l'oggetto definizione del set di criteri

Tipo:PSObject
Alias:PolicySetDefinition
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-PolicyParameter

Valori dei parametri per la regola dei criteri assegnata. Le chiavi sono i nomi dei parametri.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-PolicyParameterObject

Valori dei parametri per la regola dei criteri assegnata. Le chiavi sono i nomi dei parametri.

Tipo:Hashtable
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ResourceSelector

Elenco di selettore di risorse per filtrare i criteri in base alle proprietà delle risorse.

Tipo:IResourceSelector[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Scope

Ambito dell'assegnazione dei criteri. Gli ambiti validi sono: gruppo di gestione (formato: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), sottoscrizione (formato: '/subscriptions/{subscriptionId}'), gruppo di risorse (formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', o risorsa (formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

PSObject

PSObject[]

String

String[]

Output

IPolicyAssignment