Tutorial: Usar uma identidade gerenciada atribuída pelo sistema da VM do Linux para acessar o Azure Data Lake StorageTutorial: Use a Linux VM system-assigned managed identity to access Azure Data Lake Store

Identidades gerenciadas para recursos do Azure é um recurso do Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Cada um dos serviços do Azure que dão suporte a identidades gerenciadas para recursos do Azure está sujeito à própria linha do tempo.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Não deixe de examinar o status de disponibilidade das identidades gerenciadas do seu recurso e os problemas conhecidos antes de começar.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Este tutorial mostra como usar uma identidade gerenciada atribuída pelo sistema para uma VM (máquina virtual) do Linux para acessar o Azure Data Lake Storage.This tutorial shows you how to use a system-assigned managed identity for a Linux virtual machine (VM) to access Azure Data Lake Store. Você aprenderá como:You learn how to:

Neste tutorial, você aprenderá como:In this tutorial, you learn how to:

  • Conceder à sua VM acesso ao Azure Data Lake Store.Grant your VM access to Azure Data Lake Store.
  • Obtenha um token de acesso usando a identidade gerenciada atribuída pelo sistema da VM para acessar o Azure Data Lake Storage.Get an access token by using the VM's system-assigned managed identity to access Azure Data Lake Store.

Pré-requisitosPrerequisites

Conceder acesso ao Azure Data Lake Store à sua VMGrant your VM access to Azure Data Lake Store

Agora você pode conceder acesso à sua VM a arquivos e pastas no Azure Data Lake Store.Now you can grant your VM access to files and folders in Azure Data Lake Store. Para esta etapa, você pode usar uma instância Data Lake Store existente ou criar uma nova.For this step, you can use an existing Data Lake Store instance or create a new one. Para criar uma nova instância Data Lake Store usando o portal do Azure, siga o Guia de início rápido do Azure Data Lake Store.To create a Data Lake Store instance by using the Azure portal, follow the Azure Data Lake Store quickstart. Também há guias de início rápido que usam a CLI do Azure e o Azure PowerShell na documentação do Azure Data Lake Store.There are also quickstarts that use Azure CLI and Azure PowerShell in the Azure Data Lake Store documentation.

No Data Lake Storage, crie uma nova pasta e conceda permissão à identidade gerenciada atribuída pelo sistema da VM do Linux para ler, gravar e executar arquivos nesta pasta:In Data Lake Store, create a new folder and grant our Linux VM system-assigned managed identity permission to read, write, and execute files in that folder:

  1. No portal do Azure, selecione Data Lake Store no painel esquerdo.In the Azure portal, select Data Lake Store in the left pane.
  2. Selecione a instância Data Lake Store que você deseja usar.Select the Data Lake Store instance that you want to use.
  3. Selecione Data Explorer na barra de comandos.Select Data Explorer on the command bar.
  4. A pasta raiz da instância Data Lake Store é selecionada.The root folder of the Data Lake Store instance is selected. Selecione Acesso na barra de comandos.Select Access on the command bar.
  5. Selecione Adicionar.Select Add. Na caixa Selecionar, insira o nome da sua VM, por exemplo, DevTestVM.In the Select box, enter the name of your VM--for example, DevTestVM. Selecione sua VM nos resultados da pesquisa e clique em Selecionar.Select your VM from the search results, and then click Select.
  6. Clique em Selecionar permissões.Click Select Permissions. Selecione Leitura e Execução, adicione a Esta pasta e adicione como Somente permissão de acesso.Select Read and Execute, add to This folder, and add as An access permission only. Selecione Ok.Select Ok. A permissão deverá ser adicionada com êxito.The permission should be added successfully.
  7. Feche o painel Acesso.Close the Access pane.
  8. Para este tutorial, crie uma nova pasta.For this tutorial, create a new folder. Selecione Nova pasta na barra de comandos e dê um nome para ela, por exemplo TestFolder.Select New Folder on the command bar, and give the new folder a name--for example TestFolder. Selecione Ok.Select Ok.
  9. Selecione a pasta que você criou e selecione Acesso na barra de comandos.Select the folder that you created, and then select Access on the command bar.
  10. Semelhante à etapa 5, selecione Adicionar.Similar to step 5, select Add. Na caixa Selecionar, insira o nome da sua VM.In the Select box, enter the name of your VM. Selecione sua VM nos resultados da pesquisa e clique em Selecionar.Select your VM from the search results, and then click Select.
  11. Semelhante à etapa 6, selecione Selecionar Permissões.Similar to step 6, select Select Permissions. Selecione Leitura, Gravação e Execução, adicione Esta pasta e adicione como Uma entrada de permissão de acesso e uma entrada de permissão padrão.Select Read, Write, and Execute, add to This folder, and add as An access permission entry and a default permission entry. Selecione Ok.Select Ok. A permissão deverá ser adicionada com êxito.The permission should be added successfully.

Identidades gerenciadas para recursos do Azure agora podem executar todas as operações em arquivos na pasta que você criou.Managed identities for Azure resources can now perform all operations on files in the folder that you created. Para saber mais sobre como gerenciar acesso ao Data Lake Store, confira Controle de acesso no Data Lake Store.For more information on managing access to Data Lake Store, see Access Control in Data Lake Store.

Obter um token de acesso e chamar o sistema de arquivos do Data Lake StoreGet an access token and call the Data Lake Store file system

O Azure Data Lake Storage tem suporte nativo para autenticação do Azure AD, de modo que pode aceitar diretamente os tokens de acesso obtidos usando identidades gerenciadas para recursos do Azure.Azure Data Lake Store natively supports Azure AD authentication, so it can directly accept access tokens obtained via using managed identities for Azure resources. Para autenticar para o sistema de arquivos do Data Lake Store, você envia um token de acesso emitido pelo Azure AD para o ponto de extremidade do sistema de arquivos do Data Lake Store.To authenticate to the Data Lake Store file system, you send an access token issued by Azure AD to your Data Lake Store file system endpoint. O token de acesso está em um cabeçalho de autorização no formato “Portador <ACCESS_TOKEN_VALUE>”.The access token is in an authorization header in the format "Bearer <ACCESS_TOKEN_VALUE>". Para saber mais sobre o suporte do Data Lake Store à autenticação do Azure AD, confira Autenticação com o Data Lake Store usando o Azure Active Directory.To learn more about Data Lake Store support for Azure AD authentication, see Authentication with Data Lake Store using Azure Active Directory.

Neste tutorial, você se autentica na API REST do sistema de arquivos do Data Lake Store usando o cURL para fazer solicitações REST.In this tutorial, you authenticate to the REST API for the Data Lake Store file system by using cURL to make REST requests.

Observação

Os SDKs do cliente para o sistema de arquivos do Data Lake Storage ainda não têm suporte para identidades gerenciadas para recursos do Azure.The client SDKs for the Data Lake Store file system do not yet support managed identities for Azure resources.

Para concluir essas etapas, você precisará do cliente SSH.To complete these steps, you need an SSH client. Se você estiver usando o Windows, poderá usar o cliente SSH no Subsistema do Windows para Linux.If you are using Windows, you can use the SSH client in the Windows Subsystem for Linux. Se precisar de ajuda para configurar as chaves do cliente SSH, confira Como usar chaves SSH com o Windows no Azure ou Como criar e usar um par de chaves SSH pública e privada para VMs Linux no Azure.If you need assistance configuring your SSH client's keys, see How to use SSH keys with Windows on Azure or How to create and use an SSH public and private key pair for Linux VMs in Azure.

  1. No portal, navegue até sua VM Linux.In the portal, browse to your Linux VM. Em Visão geral, selecione Conectar.In Overview, select Connect.

  2. Conecte-se à VM usando um cliente SSH de sua escolha.Connect to the VM by using the SSH client of your choice.

  3. Na janela de terminal, usando cURL, faça uma solicitação para as identidades gerenciadas locais para o ponto de extremidade de recursos do Azure para obter um token de acesso para o sistema de arquivos do Data Lake Storage.In the terminal window, by using cURL, make a request to the local managed identities Azure for Azure resources endpoint to get an access token for the Data Lake Store file system. O identificador de recursos para Data Lake Storage é https://datalake.azure.net/.The resource identifier for Data Lake Store is https://datalake.azure.net/. É importante incluir a barra à direita no identificador de recursos.It's important to include the trailing slash in the resource identifier.

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fdatalake.azure.net%2F' -H Metadata:true   
    

    Uma resposta bem-sucedida retorna o token de acesso que você usará para autenticar-se no Data Lake Store:A successful response returns the access token that you use to authenticate to Data Lake Store:

    {"access_token":"eyJ0eXAiOiJ...",
     "refresh_token":"",
     "expires_in":"3599",
     "expires_on":"1508119757",
     "not_before":"1508115857",
     "resource":"https://datalake.azure.net/",
     "token_type":"Bearer"}
    
  4. Usando o cURL, faça uma solicitação para o ponto de extremidade REST do sistema de arquivos do Data Lake Store para listar as pastas na pasta raiz.By using cURL, make a request to your Data Lake Store file system's REST endpoint to list the folders in the root folder. Esta é uma maneira simples de verificar se tudo está configurado corretamente.This is a simple way to check that everything is configured correctly. Copie o valor do token de acesso da etapa anterior.Copy the value of the access token from the previous step. É importante que a cadeia de caracteres “Bearer” no cabeçalho de autorização tenha um “B” maiúsculo.It's important that the string "Bearer" in the Authorization header has a capital "B." Você pode encontrar o nome da sua instância do Data Lake Store na seção Visão geral do painel Data Lake Store no Portal do Azure.You can find the name of your Data Lake Store instance in the Overview section of the Data Lake Store pane in the Azure portal.

    curl https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -H "Authorization: Bearer <ACCESS_TOKEN>"
    

    Uma resposta bem-sucedida tem a seguinte aparência:A successful response looks like this:

    {"FileStatuses":{"FileStatus":[{"length":0,"pathSuffix":"TestFolder","type":"DIRECTORY","blockSize":0,"accessTime":1507934941392,"modificationTime":1508105430590,"replication":0,"permission":"770","owner":"bd0e76d8-ad45-4fe1-8941-04a7bf27f071","group":"bd0e76d8-ad45-4fe1-8941-04a7bf27f071"}]}}
    
  5. Agora você pode tentar carregar um arquivo para sua instância do Data Lake Store.Now you can try uploading a file to your Data Lake Store instance. Primeiramente, crie um arquivo para ser carregado.First, create a file to upload.

    echo "Test file." > Test1.txt
    
  6. Usando o cURL, faça uma solicitação para o ponto de extremidade REST do sistema de arquivos do Data Lake Store para carregar o arquivo para a pasta que você criou anteriormente.By using cURL, make a request to your Data Lake Store file system's REST endpoint to upload the file to the folder that you created earlier. O carregamento envolve um redirecionamento, e o cURL segue o redirecionamento automaticamente.The upload involves a redirect, and cURL follows the redirect automatically.

    curl -i -X PUT -L -T Test1.txt -H "Authorization: Bearer <ACCESS_TOKEN>" 'https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/<FOLDER_NAME>/Test1.txt?op=CREATE' 
    

    Uma resposta bem-sucedida tem a seguinte aparência:A successful response looks like this:

    HTTP/1.1 100 Continue
    HTTP/1.1 307 Temporary Redirect
    Cache-Control: no-cache, no-cache, no-store, max-age=0
    Pragma: no-cache
    Expires: -1
    Location: https://mytestadls.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE&write=true
    x-ms-request-id: 756f6b24-0cca-47ef-aa12-52c3b45b954c
    ContentLength: 0
    x-ms-webhdfs-version: 17.04.22.00
    Status: 0x0
    X-Content-Type-Options: nosniff
    Strict-Transport-Security: max-age=15724800; includeSubDomains
    Date: Sun, 15 Oct 2017 22:10:30 GMT
    Content-Length: 0
    
    HTTP/1.1 100 Continue
    
    HTTP/1.1 201 Created
    Cache-Control: no-cache, no-cache, no-store, max-age=0
    Pragma: no-cache
    Expires: -1
    Location: https://mytestadls.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE&write=true
    x-ms-request-id: af5baa07-3c79-43af-a01a-71d63d53e6c4
    ContentLength: 0
    x-ms-webhdfs-version: 17.04.22.00
    Status: 0x0
    X-Content-Type-Options: nosniff
    Strict-Transport-Security: max-age=15724800; includeSubDomains
    Date: Sun, 15 Oct 2017 22:10:30 GMT
    Content-Length: 0
    

Usando outras APIs do sistema de arquivos do Data Lake Store, é possível acrescentar aos arquivos, baixar arquivos e muito mais.By using other APIs for the Data Lake Store file system, you can append to files, download files, and more.

Próximas etapasNext steps

Neste tutorial, você aprendeu a usar uma identidade gerenciada atribuída pelo sistema da VM do Linux para acessar um Azure Data Lake Storage.In this tutorial, you learned how to use a Linux VM system-assigned managed identity to access an Azure Data Lake Store. Para saber mais sobre o Azure Data Lake Store, confira:To learn more about Azure Data Lake Store see: