New-AzPolicyAssignment
Cria ou atualiza uma atribuição de política.
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>]
Description
O cmdlet New-AzPolicyAssignment cria ou atualiza uma atribuição de política com o escopo e o nome fornecidos. As atribuições de política se aplicam a todos os recursos contidos em seu escopo. Por exemplo, quando você atribui uma política no escopo do grupo de recursos, essa diretiva se aplica a todos os recursos do grupo.
Exemplos
Exemplo 1: Atribuição de política no nível da assinatura
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)"
O primeiro comando obtém uma assinatura chamada Subscription01 usando o cmdlet Get-AzSubscription e a armazena na variável $Subscription. O segundo comando obtém a definição de política chamada VirtualMachinePolicy usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O comando final atribui a política em $Policy no nível da assinatura identificada pela cadeia de caracteres de escopo da assinatura.
Exemplo 2: Atribuição de política no nível do grupo de recursos
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId
O primeiro comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup e o armazena na variável $ResourceGroup. O segundo comando obtém a definição de política chamada VirtualMachinePolicy usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O comando final atribui a política em $Policy no nível do grupo de recursos identificado pela propriedade ResourceId de $ResourceGroup.
Exemplo 3: Atribuição de política no nível do grupo de recursos com objeto de parâmetro de política
$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
O primeiro comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup. O comando armazena esse objeto na variável $ResourceGroup. O segundo comando obtém a definição de política interna para locais permitidos usando o cmdlet Get-AzPolicyDefinition. O comando armazena esse objeto na variável $Policy. O terceiro e quarto comandos criam um objeto contendo todas as regiões do Azure com "leste" no nome. Os comandos armazenam esse objeto na variável $AllowedLocations. O comando final atribui a política em $Policy no nível de um grupo de recursos usando o objeto de parâmetro de política em $AllowedLocations. A propriedade ResourceId de $ResourceGroup identifica o grupo de recursos.
Exemplo 4: Atribuição de política no nível do grupo de recursos com arquivo de parâmetro de política
{
"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
O primeiro comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup e o armazena na variável $ResourceGroup. O segundo comando obtém a definição de política interna para locais permitidos usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O comando final atribui a diretiva em $Policy no grupo de recursos identificado pela propriedade ResourceId de $ResourceGroup usando o arquivo de parâmetro de política AllowedLocations.json do diretório de trabalho local.
Exemplo 5: Atribuição de política com uma identidade gerenciada atribuída ao sistema
$ResourceGroup = Get-AzResourceGroup -Name 'ResourceGroup11'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope $ResourceGroup.ResourceId -Location 'eastus' -IdentityType 'SystemAssigned'
O primeiro comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup e o armazena na variável $ResourceGroup. O segundo comando obtém a definição de política chamada VirtualMachinePolicy usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O comando final atribui a política em $Policy ao grupo de recursos. Uma identidade gerenciada atribuída ao sistema é automaticamente criada e atribuída à atribuição de política.
Exemplo 6: Atribuição de política com uma identidade gerenciada atribuída ao usuário
$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
O primeiro comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup e o armazena na variável $ResourceGroup. O segundo comando obtém a definição de política chamada VirtualMachinePolicy usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O terceiro comando obtém a identidade gerenciada atribuída ao usuário chamada UserAssignedIdentity1 usando o cmdlet Get-AzUserAssignedIdentity e a armazena na variável $UserAssignedIdentity. O comando final atribui a política em $Policy ao grupo de recursos. A identidade gerenciada atribuída ao usuário identificada pela propriedade Id de $UserAssignedIdentity é atribuída à atribuição de política passando a propriedade Id* para o parâmetro IdentityId.
Exemplo 7: Atribuição de política com uma propriedade de modo de imposição
$Subscription = Get-AzSubscription -SubscriptionName 'Subscription01'
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -Scope "/subscriptions/$($Subscription.Id)" -EnforcementMode DoNotEnforce
O primeiro comando obtém uma assinatura chamada Subscription01 usando o cmdlet Get-AzSubscription e a armazena na variável $Subscription. O segundo comando obtém a definição de política chamada VirtualMachinePolicy usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O comando final atribui a política em $Policy no nível da assinatura identificada pela cadeia de caracteres de escopo da assinatura.
A atribuição é definida com um valor EnforcementMode de DoNotEnforce , ou seja, o efeito da política não é imposto durante a criação ou atualização de recursos.
Exemplo 8: Atribuição de política com mensagens de não conformidade
$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
O primeiro comando obtém a definição do conjunto de políticas chamado VirtualMachinePolicySet usando o cmdlet Get-AzPolicySetDefinition e o armazena na variável $PolicySet. O segundo comando cria uma matriz de mensagens de não conformidade. Uma mensagem de propósito geral para toda a atribuição e uma mensagem específica para uma diretiva de restrição de SKU dentro da definição do conjunto de políticas atribuído. O comando final atribui a definição do conjunto de políticas em $PolicySet à assinatura com duas mensagens de não conformidade que serão mostradas se um recurso for negado pela política.
Exemplo 9: [Backcompat] Atribuição de política no nível do grupo de recursos com objeto de parâmetro de política
$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
O primeiro comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup. O comando armazena esse objeto na variável $ResourceGroup. O segundo comando obtém a definição de política interna para locais permitidos usando o cmdlet Get-AzPolicyDefinition. O comando armazena esse objeto na variável $Policy. O terceiro e quarto comandos criam um objeto contendo todas as regiões do Azure com "leste" no nome. Os comandos armazenam esse objeto na variável $AllowedLocations. O comando final atribui a política em $Policy no nível de um grupo de recursos usando o objeto de parâmetro de política em $AllowedLocations. A propriedade ResourceId de $ResourceGroup identifica o grupo de recursos.
Exemplo 10: [Backcompat] Atribuição de política no nível do grupo de recursos com arquivo de parâmetro de política
{
"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
O primeiro comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup e o armazena na variável $ResourceGroup. O segundo comando obtém a definição de política interna para locais permitidos usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O comando final atribui a diretiva em $Policy no grupo de recursos identificado pela propriedade ResourceId de $ResourceGroup usando o arquivo de parâmetro de política AllowedLocations.json do diretório de trabalho local.
Parâmetros
-BackwardCompatible
Faz com que o cmdlet retorne artefatos usando o formato herdado colocando propriedades específicas da política em um objeto do pacote de propriedades.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Solicita sua confirmação antes de executar o cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
O parâmetro DefaultProfile não está funcional. Use o parâmetro SubscriptionId quando disponível se estiver executando o cmdlet em uma assinatura diferente.
Type: | PSObject |
Aliases: | AzureRMContext, AzureCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Esta mensagem fará parte da resposta em caso de violação da política.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DisplayName
O nome para exibição da atribuição de política.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnforcementMode
O modo de imposição de atribuição de política. Os valores possíveis são Default e DoNotEnforce.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IdentityId
A identidade do usuário associada à política. As referências de chave do dicionário de identidade do usuário serão ids de recurso ARM no 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
O tipo de identidade. Este é o único campo obrigatório ao adicionar uma identidade atribuída ao sistema ou usuário a um recurso.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Location
O local da atribuição de política. Necessário apenas ao utilizar a identidade gerenciada.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Metadata
Os metadados de atribuição de política. Os metadados são um objeto aberto e normalmente são uma coleção de pares de valores de chave.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
O nome da atribuição de política.
Type: | String |
Aliases: | PolicyAssignmentName |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NonComplianceMessage
As mensagens que descrevem por que um recurso não está em conformidade com a política. Para construir, consulte a seção NOTAS para propriedades NONCOMPLIANCEMESSAGE e crie uma tabela de hash.
Type: | PSObject[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NotScope
Os escopos excluídos da política.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyDefinition
Aceitar definição de política ou objeto de definição de conjunto de políticas
Type: | PSObject |
Aliases: | PolicySetDefinition |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PolicyParameter
Os valores de parâmetro para a regra de política atribuída. As chaves são os nomes dos parâmetros.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PolicyParameterObject
Os valores de parâmetro para a regra de política atribuída. As chaves são os nomes dos parâmetros.
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
O escopo da atribuição de política. Os escopos válidos são: grupo de gerenciamento (formato: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), assinatura (formato: '/subscriptions/{subscriptionId}'), grupo de recursos (formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' ou recurso (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 o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
PSObject[]
String[]
Saídas
Azure PowerShell
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de