Gerir funções personalizadas do Azure
Nesta unidade, irá aprender quem e como pode gerir funções personalizadas do Azure.
Quem pode gerir funções personalizadas?
De modo geral, os administradores com funções de Proprietário ou Administrador de Acesso dos Utilizadores têm permissões para criar e gerir funções personalizadas. Por padrão, essas funções têm a permissão em todos os escopos Microsoft.Authorization/roleDefinitions/write
de atribuição de função. Esta permissão é necessária para criar, eliminar ou atualizar funções personalizadas.
Os escopos de atribuição de função são definidos na definição de função personalizada em AssignableScopes. Conforme abordado na unidade 2, AssignableScopes pode ser uma ou mais subscrições, grupos de recursos ou recursos.
A tabela a seguir lista a permissão necessária para criar, excluir, atualizar ou exibir funções personalizadas. Para gerenciar funções personalizadas, você precisa ser atribuído a uma função que tenha as Ações e AssignableScopes relacionados na definição de função.
Task | Ações | Description |
---|---|---|
Criar/Eliminar | Microsoft.Authorization/roleDefinitions/write |
Os utilizadores podem criar ou eliminar funções personalizadas para a utilização em âmbitos. Por exemplo: Proprietários e Administradores de Acesso de Usuário de assinaturas, grupos de recursos e recursos. |
Atualização | Microsoft.Authorization/roleDefinitions/write |
Os utilizadores podem atualizar funções personalizadas em âmbitos. Por exemplo: Proprietários e Administradores de Acesso de Usuário de assinaturas, grupos de recursos e recursos. |
Vista | Microsoft.Authorization/roleDefinitions/read |
Os utilizadores podem ver as funções personalizadas disponíveis para atribuição num âmbito. Todas as funções incorporadas permitem que as funções personalizadas estejam disponíveis para atribuição. |
Criar funções personalizadas
Na unidade anterior, você criou uma função personalizada usando a CLI do Azure. Também pode criar uma função personalizada com o portal do Azure ou o Azure PowerShell.
Criar funções personalizadas com o portal do Azure
No portal do Azure, vá para a assinatura ou grupo de recursos ao qual você deseja que o escopo da função personalizada se aplique e, em seguida, vá para Controle de acesso (IAM) e selecione Adicionar>Adicionar função personalizada.
Pode optar por clonar uma função existente ou começar uma de raiz.
Com qualquer uma das seleções, pode editar as permissões, âmbitos e o JSON resultante.
Criar uma função personalizada com o Azure PowerShell
As etapas envolvidas na criação de uma função usando o Azure PowerShell são semelhantes às que abordamos nas duas unidades anteriores. Depois de definir a função personalizada em um arquivo JSON, use o seguinte comando na CLI do Azure para criar a função personalizada:
az role definition create --role-definition vm-operator-role.json
Para criar a função no Azure PowerShell, execute o seguinte comando:
New-AzRoleDefinition -InputFile "vm-operator-role.json"
Atualizar funções personalizadas
Para atualizar uma função personalizada, você pode usar a CLI do Azure ou o Azure PowerShell. Você percorrerá as etapas específicas para atualizar sua definição de função personalizada na próxima unidade; mas, em geral, depois de atualizar o arquivo JSON com suas alterações, você executará um dos seguintes comandos.
Para atualizar a função personalizada usando a CLI do Azure, execute o seguinte comando com o caminho para o arquivo JSON que contém suas atualizações:
az role definition update --role-definition "<<path-to-json-file>>"
No Azure PowerShell, execute o seguinte comando com o caminho para o arquivo JSON atualizado:
Set-AzRoleDefinition -InputFile "<<path-to-json-file>>"
Ver funções personalizadas
Na próxima unidade, você aprenderá a exibir funções personalizadas no portal do Azure. Também pode obter uma lista de funções personalizadas com a CLI do Azure ou o PowerShell.
Para listar todas as funções personalizadas usando a CLI do Azure, use o seguinte comando:
az role definition list --custom-role-only true --output json | jq '.[] | {"roleName":.roleName, "roleType":.roleType}'
Repare que o comando apenas pede o nome e tipo de função. Isso facilita a visualização de muitas funções.
Para indicar todas as funções personalizadas com o Azure PowerShell, utilize o seguinte comando. Este comando lista as funções personalizadas que estão disponíveis para atribuição na assinatura. Se a subscrição não estiver na propriedade AssignableScopes da função, a função personalizada não será indicada.
Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
Ver definição de função
Para ver a definição completa de uma função específica, use o seguinte comando da CLI do Azure:
az role definition list --name "Virtual Machine Operator"
Para ver a definição no PowerShell, use o seguinte comando:
Get-AzRoleDefinition "Virtual Machine Operator"
Indicar a atribuição da função personalizada
O seguinte comando permite-lhe ver a quem foi atribuída a função personalizada que criou na CLI do Azure:
az role assignment list --role "Virtual Machine Operator"
Para o PowerShell, utilize o seguinte comando:
Get-AzRoleAssignment -RoleDefinitionName "Virtual Machine Operator"
Eliminar funções personalizadas
Você precisa da função personalizada criada na unidade anterior para os exercícios na próxima unidade, portanto, não exclua sua função personalizada ainda. Primeiro, vamos abordar como se elimina uma função personalizada.
Remover atribuições de funções
Se decidir que já não precisa da função personalizada, tem de remover as atribuições de funções antes de poder eliminar a função.
No portal do Azure, pode remover atribuições ao aceder à subscrição, grupo de recursos ou recurso a que o âmbito da função personalizada se aplica. Em seguida, aceda a Controlo de acesso (IAM)>Atribuições de funções. Filtre por nome da função, selecione todos os utilizadores a quem foi atribuída a função e selecione Remover.
Na CLI do Azure, use o seguinte comando com o nome da função personalizada:
az role assignment delete --role "role name"
No Azure PowerShell, utilize o cmdlet Remove-AzRoleAssignment
. O comando pode ter a seguinte aparência:
Remove-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName "role name" -Scope /subscriptions/<subscription_id>
ObjectID
é o Microsoft Entra ObjectId do usuário, grupo ou entidade de serviço.
Eliminar função personalizada
Pode eliminar uma função personalizada com o portal do Azure, CLI do Azure ou Azure PowerShell.
No portal do Azure, vá para a assinatura, grupo de recursos ou recurso ao qual o escopo da função personalizada se aplica e, em seguida, vá para Funções de controle de acesso (IAM).> Para localizar a função, selecione Tipo>CustomRole.
Selecione a função e, em seguida, selecione Remover.
Na próxima unidade, você usará o seguinte comando para excluir a função personalizada usando a CLI do Azure:
az role definition delete --name "role name"
No PowerShell, use o seguinte comando para excluir uma função:
Get-AzRoleDefinition "role name" | Remove-AzRoleDefinition