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 do 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.
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 da função de entrada DEVE conter as seguintes propriedades:
- DisplayName: o nome da função personalizada
- Descrição: uma breve descrição da função que resume o acesso que a função concede.
- 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.
- 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:
- 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.
- DataActions: o conjunto de operações de dados às quais a função personalizada concede acesso.
- 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
Tipo: | IAzureContextContainer |
Aliases: | AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-InputFile
Nome do arquivo contendo uma única definição de função json.
Tipo: | String |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Role
Objeto de definição de função.
Tipo: | PSRoleDefinition |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
None
Saídas
Notas
Palavras-chave: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment