New-AzureRmRoleDefinition

Cria uma função personalizada no RBAC do Azure. Forneça um arquivo de definição de função JSON ou um objeto PSRoleDefinition como entrada. Primeiro, use o comando Get-AzureRmRoleDefinition para gerar um objeto de definição de função de linha de base. Em seguida, modifique suas propriedades conforme necessário. Finalmente, use este comando para criar uma função personalizada usando a definição de função.

Aviso

O módulo AzureRM PowerShell foi oficialmente preterido a partir de 29 de fevereiro de 2024. Os usuários são aconselhados a migrar do AzureRM para o módulo Az PowerShell para garantir suporte e atualizações contínuos.

Embora o módulo AzureRM ainda possa funcionar, ele não é mais mantido ou suportado, colocando qualquer uso continuado a critério e risco do usuário. Consulte nossos recursos de migração para obter orientação sobre a transição para o módulo Az.

Syntax

New-AzureRmRoleDefinition
   [-InputFile] <String>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzureRmRoleDefinition
   [-Role] <PSRoleDefinition>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

O cmdlet New-AzureRmRoleDefinition cria uma função personalizada no Controle de Acesso Baseado em Função do Azure. Forneça uma definição de função como uma entrada para o comando como um arquivo JSON ou um objeto PSRoleDefinition. A definição da função de entrada DEVE conter as seguintes propriedades:

  1. DisplayName: o nome da função personalizada
  2. Descrição: uma breve descrição da função que resume o acesso que a função concede.
  3. Ações: o conjunto de operações às quais a função personalizada concede acesso. Use Get-AzureRmProviderOperation para obter a operação para provedores de recursos do Azure que podem ser protegidos usando o RBAC do Azure. A seguir estão algumas cadeias de caracteres de operação válidas:
  • "*/read" concede acesso a operações de leitura de todos os provedores de recursos do Azure.
  • "Microsoft.Network/*/read" concede acesso a operações de leitura para todos os tipos de recursos no provedor de recursos Microsoft.Network do Azure.
  • "Microsoft.Compute/virtualMachines/*" concede acesso a todas as operações de máquinas virtuais e seus tipos de recursos filho.
  1. AssignableScopes: o conjunto de escopos (assinaturas do Azure ou grupos de recursos) no qual a função personalizada estará disponível para atribuição. Usando AssignableScopes, você pode disponibilizar a função personalizada para atribuição somente nas assinaturas ou grupos de recursos que precisam dela, e não sobrecarregar a experiência do usuário para o restante das assinaturas ou grupos de recursos. A seguir estão alguns escopos atribuíveis válidos:
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": disponibiliza a função para atribuição em duas assinaturas.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": disponibiliza a função para atribuição em uma única assinatura.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": torna a função disponível para atribuição apenas no grupo de recursos de rede. A definição de função de entrada PODE conter as seguintes propriedades:
  1. NotActions: o conjunto de operações que devem ser excluídas das Ações para determinar as ações efetivas para a função personalizada. Se houver uma operação específica à qual você não deseja conceder acesso em uma função personalizada, é conveniente usar NotActions para excluí-la, em vez de especificar todas as operações diferentes dessa operação específica em Ações.
  2. DataActions: o conjunto de operações de dados às quais a função personalizada concede acesso.
  3. NotDataActions: o conjunto de operações que devem ser excluídas das DataActions para determinar as ações de dados efetivas para a função personalizada. Se houver uma operação de dados específica à qual você não deseja conceder acesso em uma função personalizada, é conveniente usar NotDataActions para excluí-la, em vez de especificar todas as operações diferentes dessa operação específica em Ações. NOTA: Se um usuário receber uma função que especifica uma operação em NotActions e também atribuir outra função conceder acesso à mesma operação - o usuário poderá executar essa operação. NotActions não é uma regra de negação - é simplesmente uma maneira conveniente de criar um conjunto de operações permitidas quando operações específicas precisam ser excluídas. A seguir está um exemplo de definição de função json que pode ser fornecida como entrada { "Name": "Updated Role", "Description": "Pode monitorar todos os recursos e iniciar e reiniciar máquinas virtuais", "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ "/write" ], "DataActions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" ], "NotDataActions": [ "Microsoft. Storage/storageAccounts/blobServices/containers/blobs/write" ], "AssignableScopes": ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"] }

Exemplos

Criar usando PSRoleDefinitionObject

PS C:\> $role = Get-AzureRmRoleDefinition -Name "Virtual Machine Contributor"
          PS C:\> $role.Id = $null
          PS C:\> $role.Name = "Virtual Machine Operator"
          PS C:\> $role.Description = "Can monitor, start, and restart virtual machines."
          PS C:\> $role.Actions.RemoveRange(0,$role.Actions.Count)
          PS C:\> $role.Actions.Add("Microsoft.Compute/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/start/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
          PS C:\> $role.Actions.Add("Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action")
          PS C:\> $role.Actions.Add("Microsoft.Network/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Storage/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Authorization/*/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/read")
          PS C:\> $role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/resources/read")
          PS C:\> $role.Actions.Add("Microsoft.Insights/alertRules/*")
          PS C:\> $role.Actions.Add("Microsoft.Support/*")
          PS C:\> $role.AssignableScopes.Clear()
          PS C:\> $role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

          PS C:\> New-AzureRmRoleDefinition -Role $role

Criar usando o arquivo JSON

PS C:\> New-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json

Parâmetros

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usados para comunicação com o azure

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

-InputFile

Nome do arquivo contendo uma única definição de função json.

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

-Role

Objeto de definição de função.

Type:PSRoleDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

Saídas

PSRoleDefinition

Notas

Palavras-chave: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment