New-AzPolicyAssignment
Cria ou atualiza uma atribuição de política.
Sintaxe
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>]
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 aplicam-se a todos os recursos contidos em seu escopo. Por exemplo, quando você atribui uma política no escopo do grupo de recursos, essa política se aplica a todos os recursos do grupo.
Exemplos
Exemplo 1: Atribuição de política ao nível da subscrição
$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 identificado pela cadeia de caracteres do escopo da assinatura.
Exemplo 2: Atribuição de política ao 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 "east" 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"
]
}
}' > .\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
O primeiro comando cria um arquivo de parâmetro chamado AllowedLocations.json no diretório de trabalho local. O segundo comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup e o armazena na variável $ResourceGroup. O terceiro 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 política 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 é criada automaticamente 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. O usuário atribuído identidade gerenciada identificado pela propriedade Id de $UserAssignedIdentity é atribuído à 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 identificado pela cadeia de caracteres do 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 chamada VirtualMachinePolicySet usando o cmdlet Get-AzPolicySetDefinition e a armazena na variável $PolicySet. O segundo comando cria uma matriz de mensagens de não conformidade. Uma mensagem de finalidade geral para toda a atribuição e uma mensagem específica para uma política 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: Atribuição de política com seletor de recursos
$Policy = Get-AzPolicyDefinition -Name 'VirtualMachinePolicy'
$ResourceSelector = @{Name = "MyLocationSelector"; Selector = @(@{Kind = "resourceLocation"; In = @("eastus", "eastus2")})}
New-AzPolicyAssignment -Name 'VirtualMachinePolicyAssignment' -PolicyDefinition $Policy -ResourceSelector $ResourceSelector
O primeiro comando obtém a definição de política chamada VirtualMachinePolicy usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O segundo comando cria um objeto seletor de recursos que será usado para especificar que a atribuição só deve ser aplicada a recursos localizados no Leste dos EUA ou Leste dos EUA 2 e armazena-o na variável $ResourceSelector. O comando final atribui a definição de política em $Policy à assinatura com o seletor de recursos especificado por $ResourceSelector.
Exemplo 10: Atribuição de política com substituição
$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
O primeiro comando obtém a definição de política chamada VirtualMachinePolicy usando o cmdlet Get-AzPolicyDefinition e a armazena na variável $Policy. O segundo comando cria um seletor de local especificando locais do Leste dos EUA ou Leste dos EUA 2 e o armazena na variável $Seletor. O terceiro comando cria um objeto de substituição que será usado para especificar que a definição atribuída deve ter um efeito Disabled nos locais identificados pelo objeto $Seletor e o armazena na variável $Override. O comando final atribui a definição de política em $Policy à assinatura com a substituição especificada por $Override.
Exemplo 11: [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 "east" 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 12: [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"
]
}
}' > .\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
O primeiro comando cria um arquivo de parâmetro chamado AllowedLocations.json no diretório de trabalho local. O segundo comando obtém um grupo de recursos chamado ResourceGroup11 usando o cmdlet Get-AzResourceGroup e o armazena na variável $ResourceGroup. O terceiro 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 política 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 de pacote de propriedades.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Confirm
Solicita a sua confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-DefaultProfile
O parâmetro DefaultProfile não é funcional. Use o parâmetro SubscriptionId quando disponível se estiver executando o cmdlet em uma assinatura diferente.
Tipo: | PSObject |
Aliases: | AzureRMContext, AzureCredential |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-DefinitionVersion
Indicar a versão da definição de política ou a definição do conjunto de políticas
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Description
Esta mensagem fará parte da resposta em caso de violação da política.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-DisplayName
O nome para exibição da atribuição de política.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-EnforcementMode
O modo de imposição de atribuição de política. Os valores possíveis são Default e DoNotEnforce.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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}'.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Location
O local da atribuição da política. Necessário apenas ao utilizar a identidade gerenciada.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-Name
O nome da atribuição de política.
Tipo: | String |
Aliases: | PolicyAssignmentName |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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.
Tipo: | PSObject[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-NotScope
Os escopos excluídos da política.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-Override
A substituição do valor da propriedade da política.
Tipo: | IOverride[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-PolicyDefinition
Aceitar definição de política ou objeto de definição de conjunto de políticas
Tipo: | PSObject |
Aliases: | PolicySetDefinition |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-PolicyParameter
Os valores de parâmetro para a regra de política atribuída. As chaves são os nomes dos parâmetros.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-PolicyParameterObject
Os valores de parâmetro para a regra de política atribuída. As chaves são os nomes dos parâmetros.
Tipo: | Hashtable |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-ResourceSelector
A lista de seletores de recursos para filtrar políticas por propriedades de recursos.
Tipo: | IResourceSelector[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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: '/subscriptionId}/resourceGroups/{resourceGroupName}', ou recurso (formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-WhatIf
Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
PSObject[]
String[]
Saídas
Azure PowerShell