As identidades gerenciadas no Azure fornecem uma identidade do Azure AD para um recurso gerenciado do Azure. Depois que esse recurso tem uma identidade, ele pode funcionar com qualquer coisa que ofereça suporte à autenticação do Azure AD.
Isso é realmente poderoso porque, embora seu recurso do Azure agora tenha uma identidade, não há nenhuma das dores de cabeça geralmente associadas a essa identidade. Não há senha para gerenciar e você pode controlar as permissões ou revogar essa identidade centralmente. Esta identidade não polui seu código e não termina em arquivos de configuração. Cada vez mais, os recursos do Azure estão começando a oferecer suporte à identidade gerenciada.
Aqui estão alguns dos benefícios de usar identidades gerenciadas:
- Você não precisa gerenciar credenciais. As credenciais nem mesmo estão acessíveis a você.
- Você pode usar identidades gerenciadas para se autenticar em qualquer recurso que ofereça suporte à autenticação do Azure Active Directory, incluindo seus próprios aplicativos.
- As identidades gerenciadas podem ser usadas sem nenhum custo adicional.
Tipos de identidade gerenciada
Existem dois tipos de identidades gerenciadas:
- Atribuído pelo sistema Alguns serviços do Azure permitem que você habilite uma identidade gerenciada diretamente em uma instância de serviço. Quando você habilita uma identidade gerenciada atribuída pelo sistema, uma identidade é criada no Azure AD que está vinculada ao ciclo de vida dessa instância de serviço. Portanto, quando o recurso é excluído, o Azure exclui automaticamente a identidade para você. Por design, apenas esse recurso do Azure pode usar essa identidade para solicitar tokens do Azure AD.
- Atribuído pelo usuário Você também pode criar uma identidade gerenciada como um recurso autônomo do Azure. Você pode criar uma identidade gerenciada atribuída pelo usuário e atribuí-la a uma ou mais instâncias de um serviço do Azure. No caso de identidades gerenciadas atribuídas pelo usuário, a identidade é gerenciada separadamente dos recursos que a utilizam.
Como posso usar identidades gerenciadas para recursos do Azure?
Quais serviços do Azure oferecem suporte ao recurso?
As identidades gerenciadas para recursos do Azure podem ser usadas para autenticação em serviços que oferecem suporte à autenticação do Azure AD. Para obter uma lista de serviços do Azure que oferecem suporte às identidades gerenciadas para o recurso de recursos do Azure, consulte Serviços que oferecem suporte a identidades gerenciadas para recursos do Azure .
Passo a passo
Criar o storage account
O script abaixo cria um storage account e um container e envia um arquivo chamado sample.txt que está no servidor on-premise para o container no Azure.
OBSERVAÇÃO: Para executar o script é necessário que você já tenha instalado os módulo do Azure PowerShell no servidor, caso ainda não tenha instalado acesso o link abaixo.
https://docs.microsoft.com/pt-br/powershell/azure/install-az-ps?view=azps-6.3.0
O script de criação do storage account está disponível para download em meu GitHub, clique na imagem abaixo para conferir.
01 – Execute o PowerShell como administrator.
02 – Em seguida execute o script abaixo.
# Criar Storage Account do tipo StorageV2 com Locally-redudant storage (LRS)
# Conectar no portal do Azure
Connect-AzAccount
# Variáveis
$resourceGroup = “RG-sto”
$location = “East US”
$stoname = “appstoredev”
$sku = “Standard_LRS”
$containername = “data”
# Criar Resource Group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Criar Storage Account
New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $stoname `
-Location $location `
-SkuName $sku `
-Kind StorageV2
# Criar o Container
$sto=Get-AzStorageAccount $resourceGroup -Name $stoname
$sto=$sto.context
New-AzStorageContainer -Name $containername -Context $sto
# Enviar arquivos para o container
Set-AzStorageBlobContent -File C:\Users\cobaia\Documents\sample.txt -Container $containername -Blob sample.txt -Context $sto
Como podemos observar o storage account, container e o arquivo sample.txt foi enviado para o container.
03 – Como podemos observar no portal do Azure o recurso foi provisionado e o arquivo sample.txt foi enviado para o container.
Habilitar o Managed Identities
Vamos permitir que a máquina virtual VM-AD possa conectar no storage account e consumir o container que criamos.
04 – No portal do Azure pesquise por Azure Virtual machines.
05 – Na tela virtual machines, selecione a máquina virtual que deseja.
06 – Após selecionar a máquina virtual, em Settings clique em Identity.
07 – Na tela Identity, em System assigned em Status clique em On, Save e Yes.
08 – Como podemos observar o recurso foi habilitado.
Dar permissão a VM para o storage account
09 – No portal do Azure, pesquise por Storage accounts.
10 – Na tela Storage accounts selecione o storage account que criamos appstoredev.
11 – Após selecionar o storage account clique em Access Control (IAM)
12 – Na tela Access Control (IAM), clique em + Add –> Add role assignment.
13 – A tela Add role assignment será aberta, em Role selecione Reader, em Select pesquise por VM-AD, selecione o objeto e clique em Save.
14 – Clique novamente em + Add –> Add role assignment, na tela Add role em Role selecione Storage Blob Data Reader, em Select pesquise por VM-AD, selecione o objeto e clique em Save.
15 – Clique em role assignments e observe que temos a máquina virtual VM-AD com permissão de Reader e Storage Blob Data Reader no storage account.
16 – No storage account Em Settings, clique em Endpoints, copie o valor do blob service vamos precisar dessa informação para executar nossa aplicação de consulta no container do storage account.
Deploy aplicação .NET
Nessa etapa temos uma aplicação .NET que baixa o conteúdo do container para C:\tmp do servidor VM-AD.
Lembrando que configuramos a VM-AD como identidade gerenciada no Azure e demos permissão no storage account para a máquina virtual VM-AD, sendo assim não precisaremos de usuário e senha para acessar os recursos do container no storage accunt.
A aplicação .NET está disponível para download em meu GitHub, clique na imagem abaixo para conferir.
17 – Connect na máquina virtual VM-AD.
18 – Para executar a aplicação .NET é necessário que você já tenha baixado e instalado o Visual Studio, caso ainda não tenha baixado clique no link abaixo.
https://visualstudio.microsoft.com/downloads/
19 – Crie a seguinte estrutura de pastas no servidor C:\tmp
20 – Abra o Visual Studio, clique em Open a project or solution e selecione a pasta onde a aplicação está.
21 – Após abrirmos a aplicação, em ManagedItentity temos as seguintes linhas que são importantes para a configuração de consulta da aplicação ao storage account.
private static string blob_url = Adicione a url do storage account, na etapa 16 desse post mostro onde localizar essa informação.
private static string download_path = Caminho onde o conteúdo do container será baixado no servidor.
Após devidamente preenchida as informações acima é esperado uma configuração semelhante a essa.
private static string blob_url = “https://appstoredev.blob.core.windows.net/data/sample.txt”;
private static string download_path = “C:\\tmp\\sample.txt”;
22 – Após preencher as informações desejada, pressione control + f5 para executar o script.
Após executar o script observe que um console é aberto informando que o download do arquivo está completo.
23 – O próximo passo é acessar o caminho C:\\tmp onde o arquivo foi baixado.
E como podemos observar o arquivo foi baixado para o servidor VM-AD sem precisar de credencias.
Comente suas sugestões e observações!
Forte abraço, obrigado e até o próximo post
Carreira desenvolvida na área de tecnologia da informação, com ampla experiência em Cloud
Computing e Cloud Security.
Forte atuação em projetos de Cloud Security no Microsoft Azure e com tecnologias de
segurança do Microsoft 365.
Tenho Experiência em Microsoft Azure, Microsoft 365, AWS e Windows Server.
Sou Microsoft MVP na categoria Microsoft Azure, AWS Communit Builder Security & Identity e
MCT.