Compartilhar via


Autorizar o acesso ao AzCopy usando uma identidade gerenciada

As identidades gerenciadas fornecem uma maneira segura e conveniente de autorizar operações do AzCopy sem armazenar credenciais ou gerenciar tokens SAS. Esse método de autenticação é particularmente valioso para scripts automatizados, pipelines de CI/CD e aplicativos em execução em Máquinas Virtuais do Azure ou em outros serviços do Azure.

Este artigo mostra como configurar o AzCopy para usar identidades gerenciadas atribuídas pelo sistema ou atribuídas pelo usuário. Você pode autorizar o acesso por meio de variáveis de ambiente, o comando de logon do AzCopy ou aproveitando as sessões existentes da CLI do Azure ou do Azure PowerShell.

Para obter mais informações sobre outras maneiras de autorizar o acesso ao AzCopy, consulte Authorize AzCopy.

Verificar atribuições de função

Verifique se sua identidade gerenciada tem a função necessária do Azure para suas operações pretendidas:

Para obter instruções de atribuição de função, consulte Atribuir uma função do Azure para acesso aos dados de blob (Armazenamento de Blobs) ou escolha como autorizar o acesso a dados de arquivo no portal do Azure (Arquivos do Azure).

Observação

As atribuições de função podem levar até cinco minutos para serem propagadas.

Se você estiver transferindo blobs em uma conta que tenha um namespace hierárquico, não será necessário atribuir uma dessas funções ao seu principal de segurança se você adicionar o seu principal de segurança na lista de controle de acesso (ACL) do contêiner ou diretório de destino. Na ACL, sua entidade de segurança precisa de permissão de gravação no diretório de destino e permissão de execução no contêiner e em cada diretório pai. Para saber mais, consulte Modelo de controle de acesso no Azure Data Lake Storage.

Autorizar usando variáveis de ambiente

Para autorizar o acesso, defina variáveis de ambiente na memória. Em seguida, execute qualquer comando AzCopy. O AzCopy recupera o token de autenticação necessário para concluir a operação. Após a conclusão da operação, o token desaparece da memória.

O AzCopy recupera o token OAuth usando as credenciais que você fornece. Como alternativa, o AzCopy pode usar o token OAuth de uma sessão ativa da CLI do Azure ou do Azure PowerShell.

Essa opção é excelente se você planeja usar o AzCopy dentro de um script que é executado sem interação do usuário e o script é executado de uma VM (Máquina Virtual) do Azure. Ao usar essa opção, você não precisa armazenar credenciais na VM.

Você pode entrar em sua conta usando uma identidade gerenciada em todo o sistema habilitada na VM ou usando a ID do cliente, a ID do objeto ou a ID do recurso de uma identidade gerenciada atribuída pelo usuário que você atribui à sua VM.

Para saber mais sobre como habilitar uma identidade gerenciada em todo o sistema ou criar uma identidade gerenciada atribuída pelo usuário, consulte Configurar identidades gerenciadas para recursos do Azure em uma VM usando o portal do Azure.

Autorizar usando uma identidade gerenciada em todo o sistema

Primeiro, habilite uma identidade gerenciada em todo o sistema em sua VM. Para obter mais informações, consulte a identidade gerenciada atribuída pelo sistema.

Digite o comando a seguir e pressione ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Em seguida, execute qualquer comando azcopy. Por exemplo: azcopy list https://contoso.blob.core.windows.net.

Autorizar usando uma identidade gerenciada atribuída pelo usuário

Primeiro, habilite uma identidade gerenciada atribuída pelo usuário em sua VM. Para obter mais informações, consulte a identidade gerenciada atribuída pelo usuário.

Digite o comando a seguir e pressione ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Em seguida, defina variáveis de ambiente para a ID do cliente, a ID do objeto ou a ID do recurso da identidade gerenciada atribuída pelo usuário.

Usar uma identificação de cliente

Para autorizar usando uma ID do cliente, digite o comando a seguir e pressione ENTER.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Substitua o espaço reservado <client-id> pela ID do cliente da identidade gerenciada atribuída pelo usuário.

Você pode encontrar a ID do cliente no portal do Azure exibindo as propriedades da identidade gerenciada. A captura de tela a seguir mostra a localização da propriedade de ID do cliente.

Captura de tela que mostra o local da ID do cliente.

Use um identificador de objeto

Para autorizar usando uma ID de objeto, digite o comando a seguir e pressione ENTER.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Substitua o espaço reservado <object-id> pela ID do objeto da identidade gerenciada atribuída pelo usuário.

Você pode encontrar a ID do objeto no portal do Azure exibindo as propriedades da identidade gerenciada. A captura de tela a seguir mostra o local da ID do objeto (também chamada de ID principal).

Captura de tela que mostra o local da ID do objeto.

Usar um identificador de recurso

Para autorizar usando uma ID de recurso, digite o comando a seguir e pressione ENTER.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Substitua o espaço reservado <resource-id> pela ID do recurso da identidade gerenciada atribuída pelo usuário.

Você pode encontrar a ID do recurso no portal do Azure exibindo as propriedades da identidade gerenciada. A captura de tela a seguir mostra a localização da propriedade ID do recurso.

Captura de tela que mostra o local da ID do recurso.

Autorizar usando o comando de logon de autenticação do AzCopy

Em vez de usar variáveis na memória, autorize o acesso usando o azcopy login comando.

O comando de logon do AzCopy recupera um token OAuth e, em seguida, coloca esse token em um repositório secreto no seu sistema. Se o sistema operacional não tiver um repositório secreto, como um keyring do Linux, o comando de logon de autenticação do azcopy não funcionará porque não há lugar para colocar o token.

Autorizar com uma identidade gerenciada em todo o sistema

Primeiro, habilite uma identidade gerenciada em todo o sistema em sua VM. Para obter mais informações, consulte a identidade gerenciada atribuída pelo sistema.

Em seguida, no console de comando, digite o comando a seguir e pressione a tecla ENTER.

azcopy login --identity

Autorizar com uma identidade gerenciada atribuída pelo usuário

Primeiro, habilite uma identidade gerenciada atribuída pelo usuário em sua VM. Para obter mais informações, consulte a identidade gerenciada atribuída pelo usuário. Em seguida, entre usando a ID do cliente, a ID do objeto ou a ID do recurso da identidade gerenciada atribuída pelo usuário.

Entrar usando uma ID do cliente

Digite o comando a seguir e pressione ENTER.

azcopy login --identity --identity-client-id "<client-id>"

Substitua o espaço reservado <client-id> pela ID do cliente da identidade gerenciada atribuída pelo usuário.

Você pode encontrar a ID do cliente no portal do Azure exibindo as propriedades da identidade gerenciada. A captura de tela a seguir mostra a localização da propriedade de ID do cliente.

Captura de tela que mostra a localização da ID do cliente

Entre usando uma ID de objeto

Digite o comando a seguir e pressione ENTER.

azcopy login --identity --identity-object-id "<object-id>"

Substitua o espaço reservado <object-id> pela ID do objeto da identidade gerenciada atribuída pelo usuário.

Você pode encontrar a ID do objeto no portal do Azure exibindo as propriedades da identidade gerenciada. A captura de tela a seguir mostra o local da ID do objeto (também chamada de ID principal).

Captura de tela que mostra o local da ID do objeto

Entre usando uma ID de recurso

Digite o comando a seguir e pressione ENTER.

azcopy login --identity --identity-resource-id "<resource-id>"

Substitua o espaço reservado <resource-id> pela ID do recurso da identidade gerenciada atribuída pelo usuário.

Você pode encontrar a ID do recurso no portal do Azure exibindo as propriedades da identidade gerenciada. A captura de tela a seguir mostra a localização da propriedade ID do recurso.

Captura de tela que mostra o local da ID do recurso

Autorizar com a CLI do Azure

Quando você entra usando a CLI do Azure, a CLI do Azure obtém um token OAuth que o AzCopy usa para autorizar operações.

Para habilitar o AzCopy a usar esse token, digite o comando a seguir e pressione a tecla ENTER .

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI
export AZCOPY_TENANT_ID=<tenant-id>

Para obter mais informações sobre como entrar usando a CLI do Azure, consulte Entrar no Azure com uma identidade gerenciada usando a CLI do Azure.

Autorizar com o Azure PowerShell

Se você entrar usando o Azure PowerShell, o Azure PowerShell obterá um token OAuth que o AzCopy pode usar para autorizar operações.

Para habilitar o AzCopy a usar esse token, digite o comando a seguir e pressione a tecla ENTER .

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"
$Env:AZCOPY_TENANT_ID="<tenant-id>"

Para obter mais informações sobre como entrar usando o Azure PowerShell, consulte Logon com uma identidade gerenciada.

Próximas etapas

  • Para obter mais informações sobre o AzCopy, consulte Introdução ao AzCopy.

  • Se você tiver dúvidas, encontrar problemas ou tiver comentários gerais, envie-os no GitHub.