O blog da segurança de dentro para fora Blog   /     /  

Identidades gerenciadas do Azure: definição, tipos, benefícios e demonstração

Identidades gerenciadas do Azure: definição, tipos, benefícios e demonstração

O Azure Key Vault é uma solução alternativa para armazenar e gerenciar os segredos e credenciais de um aplicativo. Nesse caso, as informações são armazenadas no cofre de chaves. No entanto, o aplicativo ainda precisará se autenticar no Azure Key Vault para recuperar as chaves e outros segredos, o que significa que ele ainda abrigará informações importantes diretamente no código. 

As identidades gerenciadas para recursos do Azure – o novo nome do serviço anteriormente conhecido como Managed Service Identity (MSI) – são extremamente poderosas e reduzem a carga de trabalho associada à supervisão manual. O código permanece limpo e, se estiver usando o Azure Key Vault, suas configurações não precisam ser mantidas no código. Também é possível acessar outros recursos do Azure que dão suporte à autenticação do AD sem armazenar suas respectivas cadeias e conexão e outros detalhes de configuração no aplicativo. É possível realizar operações em identidades gerenciadas usando o portal do Azure, um modelo ARM, CLI do Azure, PowerShell e APIs REST. 

Tipos de identidades gerenciadas e suas diferenças

Existem dois tipos de identidades gerenciadas: 

  • Identidades gerenciadas atribuídas pelo sistema 
  • Identidades gerenciadas atribuídas pelo usuário 

Ambas têm seus próprios detalhes, e cada uma vem com seus próprios prós e contras. 

Identidades gerenciadas atribuídas pelo sistema

Você pode habilitar identidades gerenciadas atribuídas pelo sistema em alguns dos serviços do Azure mais usados. Ao habilitar na instância de serviço do Azure, uma identidade é criada no Azure Active Directory - a entidade de serviço para essa instância. 

A identidade também está vinculada ao ciclo de vida da instância de serviço, o que significa que será removida automaticamente quando a instância for excluída ou desativada. Quanto a identidade é excluída, a entidade de serviço correspondente também é excluída no Azure AD. 

Identidades gerenciadas atribuídas pelo usuário

Outra maneira de usar a identidade gerenciada para recursos do Azure é criar uma identidade gerenciada atribuída ao usuário separadamente e atribuí-la como um recurso autônomo do Azure. A melhor parte desse método é que você pode atribuir a mesma identidade gerenciada a mais de um serviço do Azure ou a mais de uma instância do serviço. Como a identidade gerenciada atribuída pelo usuário é criada separadamente, ela não é excluída quando o recurso do Azure associado a ela é excluído ou desativado. 

Diferenças entre identidades gerenciadas atribuídas pelo sistema e pelo usuário

Atribuídas pelo sistema: 

  • Criação de identidade gerenciada: criada como parte do desenvolvimento de recursos do Azure 
  • Ciclo de vida da identidade gerenciada: os ciclos de vida dependem do recurso com o qual são criados e são removidos à medida que o recurso é excluído 
  • Atribuição de recursos: anexado a uma única instância de serviço do Azure 
  • Caso de uso: cargas de trabalho que exigem entidades independentes, como um aplicativo executado em uma única máquina virtual 

Atribuído pelo usuário: 

  • Criação de identidade gerenciada: criada como um recurso autônomo e, em seguida, anexada aos serviços 
  • Ciclo de vida da identidade gerenciada: esgotados separadamente, pois são recursos independentes do Azure 
  • Atribuição de recursos: pode ser anexado a várias instâncias de serviço do Azure 
  • Casos de uso: cargas de trabalho úteis executadas em vários recursos do Azure ou cargas de trabalho que podem compartilhar uma única identidade, como quando a persistência de sessão é necessária e várias VMs executando os mesmos aplicativos podem receber a mesma identidade gerenciada 

Para obter a lista completa de serviços do Azure que dão suporte a identidades gerenciadas, clique aqui. 

Um ponto importante a ser lembrado é que uma identidade gerenciada, seja ela atribuída pelo sistema ou pelo usuário, é um tipo especial de entidade de serviço usada apenas com recursos do Azure. 

Como estão em sincronia, as modificações de um podem afetar o outro. Por exemplo, a entidade de serviço é removida quando a identidade gerenciada correspondente é excluída. 

Três benefícios de usar identidades gerenciadas: 

  1. As identidades gerenciadas eliminam o processo de armazenamento das credenciais no código do aplicativo. Além disso, a segurança é aprimorada, pois não há chances de vazamento de senha. As identidades gerenciadas atribuídas pelo sistema nem sequer são acessíveis. 
  2. As identidades gerenciadas podem ser usadas para autenticar quaisquer recursos do Azure que dão suporte à autenticação do AD. A única ação necessária é atribuir uma função correta à identidade no recurso necessário usando o IAM. 
  3. Não há cobranças adicionais pelo uso de identidades gerenciadas. 

Como funcionam as identidades gerenciadas?

Por meio de identidades gerenciadas, você pode solicitar tokens de acesso para os recursos que dão suporte à autenticação do Azure AD. 

Os tokens de acesso são recebidos com base no RBAC atribuído a eles no recurso. Assim que o recurso recebe o token de acesso, ele pode ser acessado. A melhor parte é que o Azure se encarrega de rolar as credenciais que a instância de serviço usa, eliminando a menor possibilidade de vazamento de senha. 

Sete etapas para implementar identidades gerenciadas do Azure 

Etapa 1: A solicitação é enviada para o Azure Resource Manager para habilitar (no caso de uma identidade gerenciada atribuída pelo sistema) ou criar (no caso de uma identidade gerenciada atribuída pelo usuário) uma identidade gerenciada. 

Etapa 2: No caso da identidade gerenciada atribuída pelo sistema, quando o Azure Resource Manager recebe uma solicitação para habilitar uma identidade gerenciada na VM, ele cria uma entidade de serviço para a identidade gerenciada no AD. O locatário confiável do Azure AD hospedará a nova entidade de serviço. 

Para identidades gerenciadas atribuídas pelo usuário, o Azure Resource Manager recebe a solicitação para criar a identidade gerenciada como um recurso separado. Quando a identidade gerenciada atribuída pelo usuário é criada, uma entidade de serviço correspondente também é criada pelo gerenciador de recursos no locatário confiável do Azure AD. 

Etapa 3: Para identidades gerenciadas atribuídas pelo sistema, o gerenciador de recursos atualiza a identidade da máquina virtual usando o ponto de extremidade de identidade do Serviço de Metadados de Instância do Azure (IMDS). Essa configuração fornece ao ponto de extremidade o certificado e a ID do cliente da entidade de serviço. 

No caso de identidades gerenciadas atribuídas pelo usuário, quanto o gerenciador de recursos recebe a solicitação para configurar a identidade gerenciada atribuída pelo usuário em máquinas virtuais, o Azure Resource Manager atualiza posteriormente o ponto de extremidade de identidades IMDS com a ID do cliente principal do serviço de identidade gerenciada atribuída pelo usuário e certificado. 

Etapa 4: Depois de criar a entidade de serviço e habilitar ou atribuir a identidade da máquina virtual, você precisa usar as informações da entidade de serviço para atribuir um RBA apropriado ao recurso do Azure. 

Etapa 5: O código do aplicativo em execução na VM solicita um token do ponto de extremidade IMDS, acessível apenas de dentro da máquina virtual. Certos parâmetros são enviados para solicitações de token:  

  • Parâmetro de recurso: representa o serviço para o qual o token é enviado para autenticação 
  • Parâmetro de versão da API: representa a versão do IMDS. Use api-version=2018-02-01 ou superior 
  • Parâmetro de ID do cliente: a entidade de serviço para a identidade solicitada pelo token. Isso é aplicável apenas a identidades gerenciadas atribuídas pelo usuário, pois essa é a única opção para atribuir mais de uma identidade a uma única máquina virtual. 

Etapa 6: a solicitação do token de acesso é enviada ao Azure AD usando a ID do cliente e o certificado. O Azure AD retorna um token de acesso JSON Web Token (JWT). 

Etapa 7: o código agora envia o token do Azure AD para acessar o serviço do Azure desejado, desde que ele dê suporte à autenticação do Azure AD. 

Criando e configurando identidades gerenciadas: demonstração

Abaixo estão as etapas para criar, configurar e atribuir RBAC e identidades gerenciadas. 

Configurando o cenário: objetivos do laboratório

Você pode escolher entre configurar a identidade gerenciada atribuída pelo sistema ou pelo usuário para seus projetos com base em seus requisitos e objetivos. No entanto, para fins de demonstração, este laboratório tem duas seções diferentes. 

Na primeira seção, habilitaremos a identidade atribuída pelo sistema para uma máquina virtual no Azure e forneceremos essa entidade de serviço, função de colaborador na conta de armazenamento. 

Na segunda parte do laboratório, criaremos uma identidade gerenciada atribuída pelo usuário como um recurso separado, atribuindo essa identidade à máquina virtual e atribuindo um RBAC a essa identidade na conta de armazenamento. 

Pré-requisitos para o laboratório 

  • É necessária uma assinatura do Azure 
  • Uma rede virtual 
  • Uma máquina virtual dentro da rede virtual 
  • Uma conta de armazenamento para atribuir o RBAC 

Fase um: trabalhando com identidades gerenciadas atribuídas pelo sistema 

  1. Entre no portal do Azure a abra a página de máquinas virtuais.
    1-Oct-28-2022-04-15-31-3649-PM
  2. No menu à esquerda, clique em “identidade” em configurações.
    2-4
  3. Quando estiver na página Identidade, você notará duas guias: uma para a identidade do usuário atribuída pelo sistema e outra para a identidade atribuída pelo usuário.
  4. Na guia atribuída pelo sistema, alterne o botão de status para “ativado”. Feito isso, clique no botão “salvar”.
    4-1
  5. Levará alguns segundos para que a identidade gerenciada atribuída pelo sistema seja provisionada.
    5
  6. Agora, abra a página da conta de armazenamento e clique em “controle de acesso (IAM) na navegação à esquerda.
    6
  7. Na página de controle de acesso, clique no botão “adicionar” na navegação superior e clique em “adicionar atribuição de função”.
    7
  8. Na página “adicionar atribuição de função”, escolha uma função que deseja atribuir à entidade de serviço criada e clique no botão “próximo” na parte inferior da página.
    8
  9. Selecione a opção “identidade gerenciada” em “atribuir acesso a” e clique no link “selecionar membros”.
    9
  10. Um pop-up aparecerá o do lado direito. Escolha “máquina virtual” na lista suspensa “identidade gerenciada”. A entidade de serviço recém-criada para a máquina virtual aparecerá para seleção.
    10
  11. Selecione o correto serviço principal que aparece e clique no botão “selecionar”.
    11
  12. Agora clique no botão “revisar + atribuir”.
  13. Quando estiver na página de confirmação, clique novamente no botão “revisar + atribuir”.
  14. A função atribuída posteriormente ficará visível na página de atribuições de função.
    14

Fase dois: trabalhando com identidades gerenciadas atribuídas pelo usuário

  1. Na página da máquina virtual, clique na barra de pesquisa e procure por “identidade gerenciada”.
    1.1
  2. Selecione a primeira opção para identidades gerenciadas. Quando estiver na página de identidades gerenciadas, clique no botão “criar” na navegação superior.
    1.2
  3. Na página “criar identidade gerenciada atribuída pelo usuário” selecione a assinatura, o grupo de recursos e o local. Por fim, dê um nome à identidade gerenciada (identity “vmidentity” neste caso). Uma fez feito, clique no botão “revisar + criar”.
    1.3
  4. Após a validação, clique no botão “criar” para provisionar a identidade gerenciada.
    1.4
  5. Volte para a página da máquina virtual e em configurações clique em “identidade”. Na página de identidade, clique na guia atribuída pelo usuário.
    1.5
  6. Na guia atribuída ao usuário, clique em “adicionar” na navegação superior. Um pop-up aparecerá no lado direito. Selecione a identidade gerenciada recém-criada (identity “vrmdentity” neste caso) e clique em adicionar.
    1.6
  7. A identidade aparecerá agora na página “identidade gerenciada atribuída pelo usuário”.
  8. Agora, volte para a conta de armazenamento e clique em “controle de acesso (IAM)”. Uma vez na página de controle de acesso, clique em “adicionar” na navegação superior e selecione “adicionar atribuição de função”.
    1.8
  9. Na página “adicionar atribuição de função”, atribua a função à identidade gerenciada atribuída pelo usuário recém-criada.
    1.9
  10. Selecione "identidade gerenciada" em "atribuir acesso a" e clique em "selecionar membros". Um pop-up aparecerá no lado direito. Selecione a identidade gerenciada atribuída pelo usuário recém-criada e clique no botão “selecionar”.
    1.10
  11. Agora, clique no botão “revisar + atribuir” na página principal. Após a validação, clique novamente no botão “revisar + atribuir”.
    1.11
  12. Levará alguns segundos para que a identidade gerenciada atribuída pelo usuário seja provisionada para a conta de armazenamento.
    1.12

Agora que você atribuiu uma função às identidades gerenciadas na conta de armazenamento, já pode acessar os recursos de armazenamento da máquina virtual.

Conclusão
As identidades gerenciadas são úteis devido ao gerenciamento automático de identidades de carga de trabalho que se autenticam no Azure Active Directory – os aplicativos obtêm tokens do Azure AD sem a necessidade de gerenciar as credenciais e segredos no código do aplicativo. Você pode atribuir essas funções de identidade em outros recursos que dão suporte à autenticação do Azure AD para obter acesso a esse recurso.

Para desenvolvedores e administradores, isso remove a tarefa manual de gerenciar as credenciais no código do aplicativo ou nas cargas de trabalho, reduzindo a possibilidade de vazamento de segurança ou senhas.

We're Varonis.

We've been keeping the world's most valuable data out of enemy hands since 2005 with our market-leading data security platform.

How it works