New-AzPolicyAssignment
Crea un'assegnazione di criteri.
Sintassi
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>]
Descrizione
Il cmdlet New-AzPolicyAssignment crea un'assegnazione di criteri. Specificare un criterio e un ambito.
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 {$_.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 4: Assegnazione di criteri a livello di gruppo di risorse con il file dei parametri dei criteri
Creare un file denominato AllowedLocations.json nella directory di lavoro locale con il contenuto seguente.
<#{
"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.
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.
Parametri
-ApiVersion
Specifica la versione dell'API del provider di risorse da usare. Se non si specifica una versione, questo cmdlet usa la versione più recente disponibile.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-AssignIdentity
Generare e assegnare un'identità gestita assegnata dal sistema per questa assegnazione di criteri. L'identità verrà usata durante l'esecuzione delle distribuzioni per i criteri 'deployIfNotExists' e 'modify'. La posizione è obbligatoria quando si assegna un'identità.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-DefaultProfile
Credenziali, account, tenant e sottoscrizione usati per la comunicazione con Azure
Tipo: | IAzureContextContainer |
Alias: | AzContext, AzureRmContext, AzureCredential |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Description
Descrizione per l'assegnazione dei criteri
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-DisplayName
Specifica un nome visualizzato per l'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 per l'assegnazione dei criteri. Attualmente, i valori validi sono Default, DoNotEnforce.
Tipo: | Nullable<T>[PolicyAssignmentEnforcementMode] |
Valori accettati: | Default, DoNotEnforce |
Posizione: | Named |
Valore predefinito: | Default |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-IdentityId
Specifica l'ID dell'identità gestita assegnata dall'utente da assegnare a questa assegnazione di criteri. Questo valore è obbligatorio se il valore 'UserAssigned' viene passato al parametro -IdentityType.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-IdentityType
Specifica il tipo di identità gestita da assegnare a questa assegnazione di criteri. Se viene specificato il valore "SystemAssigned", viene generata un'identità gestita assegnata dal sistema e assegnata a questa assegnazione di criteri. Se viene specificato il valore 'UserAssigned', l'identità assegnata dall'utente passata tramite il relativo ID al parametro -IdentityId viene assegnata a questa assegnazione di criteri. L'identità verrà usata durante l'esecuzione delle distribuzioni per i criteri 'deployIfNotExists' e 'modify'. La posizione è obbligatoria quando si assegna un'identità. Le autorizzazioni devono essere concesse all'identità usando New-AzRoleAssignment dopo la creazione dell'identità assegnata dal sistema. Il parametro IdentityType avrà la precedenza se vengono usati sia Il parametro AssignIdentity che il parametro IdentityType.
Tipo: | Nullable<T>[ManagedIdentityType] |
Valori accettati: | SystemAssigned, UserAssigned, None |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Location
Posizione dell'identità della risorsa dell'assegnazione dei criteri. Questa operazione è necessaria quando viene specificato il valore -IdentityType.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Metadata
Metadati per la nuova assegnazione di criteri. Può trattarsi di un percorso di un nome file contenente i metadati o dei metadati come stringa.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Name
Specifica un nome per l'assegnazione dei criteri.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-NonComplianceMessage
Messaggi di non conformità che descrivono il motivo per cui una risorsa non è conforme ai criteri.
Tipo: | PsNonComplianceMessage[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-NotScope
L'oggetto non rientra nell'assegnazione dei criteri.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PolicyDefinition
Specifica un criterio, come oggetto PsPolicyDefinition che contiene la regola dei criteri.
Tipo: | PsPolicyDefinition |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PolicyParameter
Il percorso del file del parametro dei criteri o la stringa del parametro dei criteri.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PolicyParameterObject
Oggetto parametro del criterio.
Tipo: | Hashtable |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-PolicySetDefinition
Oggetto definizione del set di criteri.
Tipo: | PsPolicySetDefinition |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Pre
Indica che questo cmdlet considera le versioni api non definitive quando determina automaticamente la versione da usare.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Scope
Specifica l'ambito in corrispondenza del quale assegnare il criterio.
Ad esempio, per assegnare un criterio a un gruppo di risorse, specificare quanto segue: /subscriptions/
nome del gruppo di risorse ID/resourcegroups/
sottoscrizione
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
Input
String[]
Nullable<T>[[Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy.PolicyAssignmentEnforcementMode, Microsoft.Azure.PowerShell.Cmdlets.ResourceManager, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null]]