Tutorial: Utilizar uma identidade gerida atribuída pelo sistema de uma VM do Linux para aceder ao Armazenamento do Azure

Identidades gerenciadas para recursos do Azure é um recurso do Microsoft Entra ID. Cada um dos serviços do Azure que suportam as identidades geridas para os recursos do Azure estão sujeitos à sua própria linha de tempo. Certifique-se de que revê o estado de disponibilidade das identidades geridas para o seu recurso e problemas conhecidos antes de começar.

Este tutorial mostra-lhe como utilizar uma identidade gerida atribuída pelo sistema para uma máquina virtual (VM) do Linux para aceder ao Armazenamento do Azure. Sabe como:

  • Criar uma conta de armazenamento
  • Criar um contentor de blobs numa conta de armazenamento
  • Conceder acesso à Identidade Gerida de VM do Linux a um contentor de Armazenamento do Azure
  • Obter um token de acesso e utilizá-lo para chamar o Armazenamento do Azure

Pré-requisitos

Para executar os exemplos de script da CLI neste tutorial, tem duas opções:

Criar uma conta de armazenamento

Nesta secção, vai criar uma conta de armazenamento.

  1. Selecione o botão + Criar um recurso localizado no canto superior esquerdo do portal do Azure.

  2. Selecione Armazenamento e, em seguida , Conta de armazenamento - blob, arquivo, tabela, fila.

  3. Em Nome, introduza um nome para a conta de armazenamento.

  4. O Modelo de implementação e o Tipo de conta devem ser definidos como Gestor de recursos e Armazenamento (fins gerais v1).

  5. Certifique-se de que a Subscrição e o Grupo de Recursos correspondem aos perfis que especificou quando criou a VM no passo anterior.

  6. Selecione Criar.

    Captura de tela mostrando a nova tela de criação de conta de armazenamento.

Criar um contentor de blobs e carregar um ficheiro para a conta de armazenamento

Os ficheiros requerem armazenamento de blobs, por isso tem de criar um contentor de blobs para armazenar o ficheiro. Em seguida, carregue um ficheiro para o contentor de blobs na nova conta de armazenamento.

  1. Navegue de volta para a sua conta de armazenamento recentemente criada.

  2. Em Serviço de Blob, selecione Contêineres.

  3. Selecione + Contêiner na parte superior da página.

  4. Em Novo contentor, introduza um nome para o contentor e, em Nível de acesso público, mantenha o valor predefinido.

    Captura de tela mostrando a tela de criação do contêiner de armazenamento.

  5. Com um editor à sua escolha, crie um ficheiro com o nome hello world.txt no seu computador local. Abra o ficheiro e adicione o texto (sem as aspas) "Hello world! :) "e, em seguida, guarde-o.

  6. Carregue o ficheiro para o contentor recentemente criado ao clicar no nome do contentor e, em seguida, em Carregar

  7. No painel Carregar blob, em Ficheiros, selecione o ícone de pasta e navegue até ao hello_world.txt de ficheiros na sua máquina local, selecione o ficheiro e, em seguida, selecione Carregar.

    Captura de ecrã a mostrar a secção carregar ficheiro de texto.

Conceder à VM o acesso a um contentor do Armazenamento do Azure

Pode utilizar a identidade gerida da VM para obter os dados no blob de armazenamento do Azure. As identidades gerenciadas para recursos do Azure podem ser usadas para autenticar recursos que dão suporte à autenticação do Microsoft Entra. Conceda acesso atribuindo a função storage-blob-data-reader à identidade gerenciada no escopo do grupo de recursos que contém sua conta de armazenamento.

Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

Nota

Para obter mais informações sobre as várias funções que você pode usar para conceder permissões para armazenamento, revise : Autorizar acesso a blobs e filas usando a ID do Microsoft Entra

Obter um token de acesso e utilizá-lo para chamar o Armazenamento do Azure

O Armazenamento do Azure dá suporte nativo à autenticação do Microsoft Entra, portanto, ele pode aceitar diretamente tokens de acesso obtidos usando uma Identidade Gerenciada. Isso faz parte da integração do Armazenamento do Azure com o Microsoft Entra ID e é diferente de fornecer credenciais na cadeia de conexão.

Para concluir os passos seguintes, precisa de trabalhar a partir da VM que criou anteriormente e é necessário um cliente SSH para ligar à mesma. Se estiver a utilizar o Windows, pode utilizar o cliente SSH no Subsistema Windows para Linux. Se precisar de ajuda para configurar as chaves do seu cliente SSH, veja Como utilizar chaves SSH com o Windows no Azure ou Como criar e utilizar um par de chaves SSH públicas e privadas para VMs do Linux no Azure.

  1. No portal do Azure, navegue até Máquinas Virtuais, vá para sua máquina virtual Linux e, na página Visão geral , selecione Conectar. Copie a cadeia de ligação para ligar à sua VM.

  2. Clique em Ligar para ligar à VM com o cliente SSH que escolheu.

  3. Na janela do terminal, use CURL para fazer uma solicitação ao ponto de extremidade local da Identidade Gerenciada para obter um token de acesso para o Armazenamento do Azure.

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true
    
  4. Utilize o token de acesso para aceder ao Armazenamento do Azure, por exemplo, para ler o conteúdo do ficheiro de exemplo que carregou anteriormente para o contentor. Substitua os valores <STORAGE ACCOUNT>, <CONTAINER NAME> e <FILE NAME> pelos valores que especificou anteriormente, e <ACCESS TOKEN> pelo token devolvido no passo anterior.

    curl https://<STORAGE ACCOUNT>.blob.core.windows.net/<CONTAINER NAME>/<FILE NAME> -H "x-ms-version: 2017-11-09" -H "Authorization: Bearer <ACCESS TOKEN>"
    

    A resposta inclui o conteúdo do ficheiro:

    Hello world! :)
    

Como alternativa, você também pode armazenar o token em uma variável e passá-lo para o segundo comando, conforme mostrado:

# Run the first curl command and capture its output in a variable
access_token=$(curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true | jq -r '.access_token')

# Run the second curl command with the access token
curl "https://<STORAGE ACCOUNT>.blob.core.windows.net/<CONTAINER NAME>/<FILE NAME>" \
  -H "x-ms-version: 2017-11-09" \
  -H "Authorization: Bearer $access_token"

Próximos passos

Neste tutorial, aprendeu a ativar uma identidade gerida atribuída pelo sistema de uma VM do Linux para aceder ao Armazenamento do Azure. Para saber mais sobre o Armazenamento do Azure, veja: