Gerir funções personalizadas do Azure

Concluído

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.

Captura de ecrã que mostra a opção Adicionar função personalizada por baixo do botão Adicionar.

Pode optar por clonar uma função existente ou começar uma de raiz.

Captura de ecrã do botão de opção Clonar uma função selecionado e Contribuidor de Máquina Virtual como função a clonar.

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.

Captura de ecrã a mostrar as funções personalizadas selecionadas na lista pendente.

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

Verifique o seu conhecimento

1.

Qual é o cmdlet do Azure PowerShell para atualizar uma função personalizada?

2.

Quais são os passos para remover uma função personalizada?