Gerenciar as funções personalizadas do Azure

Concluído

Nesta unidade, você aprenderá quem pode gerenciar as funções personalizadas do Azure e como fazer isso.

Quem pode gerenciar as funções personalizadas?

De modo geral, administradores com as funções Proprietário ou Administrador de Acesso do Usuário têm permissões para criar e gerenciar funções personalizadas. Por padrão, essas funções têm a permissão Microsoft.Authorization/roleDefinitions/write em todos os escopos de atribuição de função. Essa permissão é necessária para criar, excluir ou atualizar funções personalizadas.

Os escopos de atribuição de função são definidos na definição da função personalizada em AssignableScopes. Conforme discutido na unidade 2, AssignableScopes pode ser definido como uma ou mais assinaturas, grupos de recursos ou recursos.

A tabela a seguir lista a permissão que você precisa 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 Actions e AssignableScopes relacionadas na definição da função.

Tarefa Ações Descrição
Criar, excluir Microsoft.Authorization/roleDefinitions/write Os usuários podem criar ou excluir funções personalizadas para uso nos escopos. Por exemplo: proprietários e administradores de acesso do usuário de assinaturas, grupos de recursos e recursos.
Atualizar Microsoft.Authorization/roleDefinitions/write Os usuários podem atualizar funções personalizadas nos escopos. Por exemplo: proprietários e administradores de acesso do usuário de assinaturas, grupos de recursos e recursos.
Exibir Microsoft.Authorization/roleDefinitions/read Os usuários podem ver as funções personalizadas disponíveis para atribuição em um escopo. Todas as funções internas permitem que as funções personalizadas sejam disponibilizadas para atribuição.

Criar funções personalizadas

Na unidade anterior, você criou uma função personalizada usando a CLI do Azure. Você também pode criar uma função personalizada usando o portal do Azure ou o Azure PowerShell.

Criar funções personalizadas usando o portal do Azure

No portal do Microsoft Azure, acesse a assinatura ou o grupo de recursos ao qual você deseja aplicar o escopo da função personalizada, vá para Controle de acesso (IAM) e selecione Adicionar>Adicionar função personalizada.

Screenshot that shows Add custom role option under Add button.

Você pode optar por clonar uma função existente ou começar do zero.

Screenshot of clone role radio button selected and Virtual Machine Contributor as role to clone.

Com ambas as seleções, você pode editar as permissões, os escopos e o JSON resultante.

Criar uma função personalizada usando o Azure PowerShell

As etapas envolvidas na criação de uma função usando Azure PowerShell são semelhantes ao que abordamos nas duas unidades anteriores. Depois de definir a função personalizada em um arquivo JSON, utilize 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, use 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ê deve executar um dos seguintes comandos.

Para atualizar a função personalizada usando a CLI do Azure, execute o comando a seguir com o caminho para o arquivo JSON com as 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>>"

Exibir funções personalizadas

Na próxima unidade, você aprenderá como exibir funções personalizadas no portal do Azure. Você também pode obter uma lista de funções personalizadas usando a CLI do Azure ou o PowerShell.

Para listar todas as funções personalizadas usando a CLI do Azure, use o comando a seguir:

az role definition list --custom-role-only true --output json | jq '.[] | {"roleName":.roleName, "roleType":.roleType}'

Observe que o comando solicita apenas o nome e o tipo da função. Isso facilita a exibição de muitas funções.

Para listar todas as funções personalizadas usando o Azure PowerShell, use o comando a seguir. Esse comando lista as funções personalizadas disponíveis para atribuição na assinatura. Se a assinatura não estiver no AssignableScopes da função, a função personalizada não será listada.

Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom

Exibir a definição da função

Para ver a definição completa de uma função específica, use o comando a seguir da CLI do Azure:

az role definition list --name "Virtual Machine Operator"

Para ver a definição no PowerShell, use o comando a seguir:

Get-AzRoleDefinition "Virtual Machine Operator" 

Listar atribuição de função personalizada

O seguinte comando permite que você veja quem está atribuído à função personalizada que criou na CLI do Azure:

az role assignment list --role "Virtual Machine Operator"

Para o PowerShell, use o seguinte comando:

Get-AzRoleAssignment -RoleDefinitionName "Virtual Machine Operator"

Excluir 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 ainda sua função personalizada. Primeiro, vejamos como excluir uma função personalizada.

Remover atribuições de função

Se você decidir que não precisa mais da função personalizada, precisará remover as atribuições de função antes de poder excluí-la.

No portal do Azure, você pode remover as atribuições acessando a assinatura, o grupo de recursos ou o recurso a que o escopo da função personalizada se aplica. Em seguida, vá até Controle de acesso (IAM)>Atribuições de função. Filtre pelo nome da função, selecione todos os usuários atribuídos a ela e selecione Remover.

Na CLI do Azure, utilize o seguinte comando com o nome da função personalizada:

   az role assignment delete --role "role name"

No Azure PowerShell, use o cmdlet Remove-AzRoleAssignment. O comando pode ser parecido com o seguinte:

Remove-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName "role name" -Scope /subscriptions/<subscription_id>

ObjectID é o ObjectId do usuário, grupo ou entidade de serviço do Microsoft Entra.

Excluir função personalizada

Você pode excluir uma função personalizada usando o portal do Azure, a CLI do Azure ou o Azure PowerShell.

No portal do Azure, acesse a assinatura, o grupo de recursos ou o recurso ao qual o escopo da função personalizada se aplica e, em seguida, vá para Controle de acesso (IAM)>Funções. Para localizar a função, selecione Tipo>CustomRole.

Screenshot that shows custom roles selected from drop-down list.

Selecione a função e selecione Remover.

Na próxima unidade, você usará o comando a seguir para excluir a função personalizada usando a CLI do Azure:

az role definition delete --name "role name"

No PowerShell, utilize o seguinte comando para excluir uma função:

Get-AzRoleDefinition "role name" | Remove-AzRoleDefinition

Verificar seu conhecimento

1.

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

2.

Quais são as etapas necessárias para remover uma função personalizada?