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[]
String[]