Share via


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

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"
      ]
    }
}

$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 ottiene un gruppo di risorse denominato ResourceGroup11 usando il cmdlet Get-AzResourceGroup e lo archivia nella variabile $ResourceGroup. Il secondo comando ottiene la definizione predefinita dei criteri per i percorsi consentiti 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: [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 10: [Backcompat] Assegnazione di criteri a livello di gruppo di risorse con il file di parametri dei criteri

{
    "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

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 predefinita dei criteri per i percorsi consentiti 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à.

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

-Confirm

Richiede conferma prima di eseguire il cmdlet.

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

-DefaultProfile

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

Type:PSObject
Aliases:AzureRMContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

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

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

-DisplayName

Nome visualizzato dell'assegnazione dei criteri.

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

-EnforcementMode

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

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

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

-IdentityType

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

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

-Location

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

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

-Metadata

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

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

-Name

Nome dell'assegnazione dei criteri.

Type:String
Aliases:PolicyAssignmentName
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

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

-NotScope

Ambiti esclusi dai criteri.

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

-PolicyDefinition

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

Type:PSObject
Aliases:PolicySetDefinition
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PolicyParameter

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

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

-PolicyParameterObject

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

Type:Hashtable
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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}'

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

-WhatIf

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

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

Input

PSObject

PSObject[]

String

String[]

Output

IPolicyAssignment