Compartilhar via


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. Por fim, use este comando para criar uma função personalizada usando a definição de função.

Aviso

O módulo PowerShell do AzureRM 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 do Az PowerShell para garantir o suporte e as atualizações contínuas.

Embora o módulo AzureRM ainda possa funcionar, ele não tem suporte ou será mantido, colocando qualquer uso contínuo a critério e risco do usuário. Consulte nossos recursos de migração para obter diretrizes sobre a transição para o módulo Az.

Sintaxe

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 de 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 às 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 apenas 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": disponibiliza a função para atribuição somente 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 do 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. Veja a seguir um exemplo de definição de função json que pode ser fornecida como input { "Name": "Função atualizada", "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-xxxxxxxxxxxx"] }

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 arquivo JSON

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

Parâmetros

-DefaultProfile

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

Tipo:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputFile

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

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Role

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

Tipo:PSRoleDefinition
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

None

Saídas

PSRoleDefinition

Observações

Palavras-chave: azure, azurerm, arm, recurso, gerenciamento, gerente, recurso, grupo, modelo, implantação