Partilhar via


Autorize o acesso ao AzCopy usando uma identidade gerida

As identidades gerenciadas fornecem uma maneira segura e conveniente de autorizar operações 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 executados em Máquinas Virtuais do Azure ou outros serviços do Azure.

Este artigo mostra como configurar o AzCopy para usar identidades gerenciadas atribuídas pelo sistema ou pelo usuário. Pode autorizar o acesso através de variáveis de ambiente, do comando de login AzCopy ou aproveitando sessões existentes de Azure CLI ou Azure PowerShell.

Para mais informações sobre outras formas de autorizar o acesso ao AzCopy, consulte Autorizar o AzCopy.

Verificar atribuições de função

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

Para obter instruções de atribuição de função, consulte Atribuir uma função do Azure para acesso a dados de blob (Armazenamento de Blob) ou Escolher 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 precisará atribuir uma dessas funções à entidade de segurança se adicionar a entidade de segurança à lista de controle de acesso (ACL) do contêiner ou diretório de destino. Na ACL, o seu principal de segurança precisa de permissão de gravação no diretório de destino e permissão de execução no container e em cada diretório pai. Para saber mais, consulte Modelo de controle de acesso no Armazenamento do Azure Data Lake.

Autorizar utilizando variáveis de ambiente

Para autorizar o acesso, defina variáveis de ambiente na memória. Em seguida, execute qualquer comando AzCopy. 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.

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

Essa opção é ótima se você planeja usar o AzCopy dentro de um script que é executado sem interação do usuário e o script é executado a partir de uma máquina virtual (VM) do Azure. Quando usas esta opção, não precisas de guardar quaisquer credenciais na VM.

Você pode entrar em sua conta usando uma identidade gerenciada em todo o sistema habilitada em sua 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, certifique-se de habilitar uma identidade gerenciada em todo o sistema em sua VM. Para obter mais informações, consulte Identidade gerenciada atribuída ao sistema.

Digite o seguinte comando e pressione ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Depois, executa qualquer comando azcopy. Por exemplo: azcopy list https://contoso.blob.core.windows.net.

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

Primeiro, certifique-se de habilitar uma identidade gerenciada atribuída pelo usuário em sua VM. Para obter mais informações, consulte Identidade gerenciada atribuída pelo usuário.

Digite o seguinte comando e pressione ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

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

Usar uma identificação de cliente

Para autorizar usando um ID de cliente, escreva o comando seguinte e depois pressione ENTER.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Substitua o marcador <client-id> pelo ID de cliente da identidade gerida atribuída pelo utilizador.

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

Captura de ecrã que mostra a localização do ID do cliente.

Usar um identificador de objeto

Para autorizar usando um ID de objeto, escreva o comando seguinte e depois pressione ENTER.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Substitua o espaço reservado <object-id> pelo 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 ID de recurso

Para autorizar usando um ID de recurso, escreva o comando seguinte e depois pressione ENTER.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Substitua o marcador de posição <resource-id> pelo identificador do recurso da identidade gerida atribuída pelo utilizador.

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

Captura de ecrã que mostra a localização do ID do recurso.

Autorizar utilizando o comando de autenticação de login do AzCopy

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

O comando azcopy login recupera um token OAuth e, em seguida, coloca esse token em um armazenamento secreto em seu sistema. Se o seu sistema operacional não tiver um armazenamento secreto, como um chaveiro Linux, o comando azcopy authentication login não funcionará porque não há onde colocar o token.

Autorizar com uma identidade gerenciada em todo o sistema

Primeiro, certifique-se de habilitar uma identidade gerenciada em todo o sistema em sua VM. Para obter mais informações, consulte Identidade gerenciada atribuída ao sistema.

Em seguida, na consola de comandos, escreva o seguinte comando e, em seguida, prima a tecla ENTER.

azcopy login --identity

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

Primeiro, certifique-se de habilitar uma identidade gerenciada atribuída pelo usuário em sua VM. Para obter mais informações, consulte 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.

Iniciar sessão utilizando um ID de cliente

Digite o seguinte comando e pressione ENTER.

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

Substitua o marcador <client-id> pelo ID de cliente da identidade gerida atribuída pelo utilizador.

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

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

Entrar usando uma ID de objeto

Digite o seguinte comando e pressione ENTER.

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

Substitua o espaço reservado <object-id> pelo 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 ecrã que mostra a localização do ID do objeto

Iniciar sessão utilizando um ID de recurso

Digite o seguinte comando e pressione ENTER.

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

Substitua o marcador de posição <resource-id> pelo identificador do recurso da identidade gerida atribuída pelo utilizador.

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

Captura de ecrã que mostra a localização do 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 permitir que o AzCopy use esse token, escreva o seguinte comando e depois pressione a tecla ENTER .

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

Para mais informações sobre como iniciar sessão usando o Azure CLI, consulte Iniciar sessão no Azure com uma identidade gerida usando Azure CLI.

Autorizar com o Azure PowerShell

Se iniciar sessão usando o Azure PowerShell, o Azure PowerShell obtém um token OAuth que o AzCopy pode usar para autorizar operações.

Para permitir que o AzCopy use esse token, escreva o seguinte comando e depois pressione a tecla ENTER .

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

Para mais informações sobre como iniciar sessão usando Azure PowerShell, consulte Iniciar sessão com uma identidade gerida.

Próximos passos

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

  • Se tiver perguntas, encontrar problemas ou receber feedback geral, submeta no GitHub.