Gerenciando Funções e Permissões do Azure AD com PowerShell

Gerenciando funções e permissões do Azure AD com o PowerShell. Você precisa de ajuda para gerenciar e automatizar funções e permissões do Azure AD com o Windows PowerShell? Este artigo explica os cenários típicos para automatizar o Controle de Acesso Baseado em Função do Azure usando o PowerShell.

Para lançar as bases e se preparar para gerenciar funções e permissões do Azure, começamos com uma visão geral do controle de acesso baseado em função do Azure (RBAC). Em seguida, explicamos os três elementos da atribuição de funções.

Também há uma seção que explica os pré-requisitos para gerenciar funções e permissões do Azure AD com o Windows PowerShell.

As próximas seções são dedicadas a explicar as etapas para atribuir funções do Azure AD usando o PowerShell.

Por fim, explicamos como listar as funções atribuídas a usuários e grupos usando o PowerShell.

O que é o Controle de Acesso Baseado em Função (RBAC) do Azure

O controle de acesso baseado em função (RBAC) do Azure permite que os administradores façam um controle de acesso de granularidade fina aos recursos. Em outras palavras, o RBAC do Azure permite que os administradores controlem quem tem acesso aos recursos.

Além disso, o RBAC controla o nível de acesso aos recursos no Azure.

No núcleo do RBAC estão as atribuições de função. O Azure possui centenas de funções internas com permissões pré-definidas que são atribuídas a usuários, grupos ou entidades de serviço.

A existência de funções internas com permissões pré-definidas facilita as atribuições de função, pois os administradores não precisam conceder permissões a objetos diretamente.

No entanto, há casos em que as funções internas podem não ser adequadas para as necessidades de uma organização. Nessa situação, são criadas funções personalizadas.

Este artigo aborda as etapas para atribuir funções existentes e também criar e atribuir funções personalizadas do Azure AD.

Elementos de Atribuição de Função do Azure

Atribuir atribuições de função envolve 3 elementos – principal de segurança, definição de função e escopo. O principal de segurança é o objeto do Azure Active Directory a ser atribuído a função.

Por outro lado, a definição de função é a função interna ou personalizada do Azure AD que está sendo atribuída, enquanto o escopo é o nível no qual a função é atribuída. Existem 4 escopos em que as funções são atribuídas no Azure.

Especificamente, os papéis do Azure são atribuídos a um recurso, um grupo de recursos, uma assinatura e um grupo de gerenciamento. Para atribuir um papel a um recurso, você precisa do ID do recurso.

No entanto, atribuir um papel ao escopo do grupo de recursos requer o nome do grupo de recursos. Executar o comando Get-AzResourceGroup retorna todos os grupos de recursos, incluindo seus nomes na assinatura atual.

Se você estiver atribuindo um papel no escopo da assinatura, precisará do ID da assinatura. Para listar todas as assinaturas no locatário, execute o comando Get-AzSubscription.

Finalmente, os papéis são atribuídos ao escopo de um grupo de gerenciamento, o que requer o nome do grupo de gerenciamento. Para obter o nome de um grupo de gerenciamento, execute o comando Get-AzManagementGroup.

Entender esses elementos é importante para gerenciar os papéis do Azure AD e permissões com o PowerShell. Na parte restante do artigo, exploramos como o principal de segurança, a definição de função e o escopo são usados para atribuir e gerenciar funções no Azure AD usando o PowerShell.

Pré-requisitos para gerenciar funções e permissões do Azure AD com o PowerShell

Antes que um administrador atribua funções, eles devem atender aos seguintes requisitos:

  1. O usuário deve ser atribuído com as permissões Microsoft.Authorization/roleAssignments/write. As únicas funções com essa permissão são Administrador de Acesso do Usuário, Proprietário, ou Administrador Global.
  2. Além disso, você precisa de acesso ao Cloud Shell do Azure ou ao Azure PowerShell.
  3. A conta de usuário que executar os comandos do PowerShell deve ter a permissão Directory.Read.All do Microsoft Graph.
  4. Por fim, para realizar algumas das tarefas neste artigo, sua conta requer uma licença Azure AD Premium P1 mínima.

Conforme avançamos neste artigo, explicaremos os passos para atribuir essas permissões conforme necessário.

Passos para Atribuir Funções Internas do Azure AD Usando o PowerShellSe você clicar no link do Cloud Shell acima e entrar com sua conta do Azure, será exibida uma tela como a da captura de tela abaixo. A vantagem do Azure Cloud Shell é que ele não requer a instalação de módulos do PowerShell em seu PC.

I’ll be running the PowerShell commands in this and subsequent sections from Azure Cloud Shell, a browser-based shell that allows running Azure CLI or PowerShell commands. However, I’ll be running the commands from my computer. 

Se você clicar no link do Azure Cloud Shell acima e fizer login com sua conta do Azure, será exibida uma tela como a da captura de tela abaixo. A vantagem do Azure Cloud Shell é que ele não requer a instalação de nenhum módulo do PowerShell em seu PC.

Passo 1: Determinar a ID do Objeto

Você precisa obter a ID do objeto antes de atribuir uma função a um recurso do Azure. Siga estas etapas para determinar a ID do objeto de um usuário, grupo ou assinatura.

1. Abra o Azure Cloud Shell – shell.azure.com e faça login com sua conta do Azure.

Se você estiver abrindo o Azure Cloud Shell pela primeira vez, será necessário criar uma conta de armazenamento.

2. Execute os comandos abaixo para obter a ID do usuário ou grupo ao qual você precisa atribuir uma função. No primeiro comando, estou retornando a ID de um usuário que começa com

$userid = (Get-AzADUser -UserPrincipalName AnthonyRa@corp.itechguides.com).id
$groupid = (Get-AzADGroup -DisplayName "Helpdesk Admins (AAD)").id

O primeiro comando salva a ID do usuário na variável userid, enquanto o segundo salva a ID do grupo do grupo na variável grouped. Antes de executar os comandos, lembre-se de alterar o UserPrincipalName e o DisplayName.

Passo 2: Obter a função a ser atribuída

O próximo passo para gerenciar funções e permissões do Azure AD com PowerShell é determinar a função a atribuir. Comece listando todas as funções disponíveis no locatário do Azure AD usando o seguinte comando.

Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id

O comando exibe o Nome e Id de todas as funções no locatário. Além disso, retorna Verdadeiro ou Falso na coluna IsCustom

Para demonstrar, quero atribuir a função Administrador de Segurança ao usuário e grupo que determinei no Passo 1. Para exibir o nome da função, encaminho a saída do comando Get-AzRoleDefinition para Where-Object, conforme mostrado neste comando. 

$roleassignmentname = (Get-AzRoleDefinition | where-object {$_.name -eq "Security Admin"}).Name

Passo 3: Identificar o Escopo da Atribuição da Função

O comando abaixo retorna o ResourceID de uma conta de armazenamento (escopo do recurso) e o salva na variável ResourceID. 

Posteriormente, eu atribuo ao usuário no passo 1 a função “Administrador de Segurança” neste recurso de conta de armazenamento. 

$scoperesourceID = (Get-AzResource | Where-object {$_.name -eq "veeambackup21"}).ResourceID

Passo 4: Atribuir a Função do Azure

Usando as informações nos passos 1 a 3, execute o comando abaixo para atribuir a função ao usuário. Antes de executar o comando, a função não está atribuída a esta conta de armazenamento, como mostrado na captura de tela abaixo.

O primeiro comando atribui a função de “Administrador de Segurança” a um usuário salvo na variável $userid. Da mesma forma, o segundo comando atribui a mesma função a um grupo salvo na variável $groupid.

New-AzRoleAssignment -ObjectId $userid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID
New-AzRoleAssignment -ObjectId $groupid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID

Após executar os comandos acima, atualizar as contas de armazenamento exibe a função Administrador de Segurança, e o usuário e grupo atribuídos à função.

Exibir Atribuição de Função do Azure AD Usando o PowerShell

Anteriormente, atribuí a função de “Administrador de Segurança” a um usuário com UPN, [email protected]. Se você se lembra, o userId do usuário foi salvo na variável $userid.

Da mesma forma, o ID de escopo da conta de armazenamento foi salvo na variável $scoperesourceID. Para exibir a atribuição de função para o usuário, eu executo o comando abaixo.

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $userid

O comando exibe os detalhes da atribuição de função, incluindo o Nome da Atribuição de Função e o escopo.

Você exibe as mesmas informações para o grupo executando este comando.

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $groupid

Gerenciando Papéis e Permissões do Azure AD com PowerShell Conclusão

Administrar papéis do Azure requer conhecimento do modelo de controle de acesso baseado em função. Além disso, entender os elementos de atribuição de papel do Azure – principal de segurança, definição de papel e escopo – é essencial para gerenciar atribuições de papel com o PowerShell de forma eficaz. 

Não só isso, mas uma conta que atribui papéis tem que atender a alguns pré-requisitos como configurar o PowerShell com os módulos necessários e garantir privilégios administrativos apropriados.

O guia passo a passo fornecido neste artigo oferece um roteiro claro a seguir ao atribuir papéis AD do Azure incorporados usando o PowerShell. Desde determinar o ID do Objeto até identificar o escopo para atribuição de papel, cada etapa é meticulosamente delineada, facilitando um processo de alocação de papel controlado e sem problemas.

Source:
https://infrasos.com/managing-azure-ad-roles-and-permissions-with-powershell/