Partilhar via


Autorizar o acesso a blobs e arquivos com AzCopy e Microsoft Entra ID

Você pode fornecer credenciais de autorização ao AzCopy usando o Microsoft Entra ID. Dessa forma, você não precisará acrescentar um token de assinatura de acesso compartilhado (SAS) a cada comando.

Comece por verificar as suas atribuições de função. Em seguida, escolha o tipo de entidade de segurança que deseja autorizar. Uma identidade de usuário, uma identidade gerenciada e uma entidade de serviço são, cada uma, um tipo de entidade de segurança.

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

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

Verificar atribuições de função

O nível de autorização de que necessita baseia-se no facto de planear carregar ficheiros ou apenas transferi-los.

Se você quiser apenas baixar arquivos, verifique se a função Leitor de Dados de Blob de Armazenamento (Armazenamento de Blobs do Azure) ou a função Leitor Privilegiado de Dados de Arquivo de Armazenamento (Arquivos do Azure) foi atribuída à sua identidade de usuário, identidade gerenciada ou entidade de serviço.

Se você quiser carregar arquivos no Armazenamento de Blobs do Azure, verifique se uma dessas funções foi atribuída à sua entidade de segurança.

Se você quiser carregar arquivos em um compartilhamento de arquivos do Azure, verifique se o Storage File Data Privileged Reader foi atribuído à sua entidade de segurança.

Essas funções podem ser atribuídas à sua entidade de segurança em qualquer um destes escopos:

  • Contêiner (sistema de arquivos) ou compartilhamento de arquivos
  • Conta de armazenamento
  • Grupo de recursos
  • Subscrição

Para saber como verificar e atribuir funções, 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).

Nota

Lembre-se de que as atribuições de função do Azure podem levar até cinco minutos para se propagar.

Você não precisará ter uma dessas funções atribuída à entidade de segurança se a entidade de segurança for adicionada à 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 Gen2.

Autorizar com AzCopy

AzCopy usa as credenciais que você fornece para autorizar a entidade de segurança.

Autorizar uma identidade de utilizador

Depois de verificar se sua identidade de usuário recebeu o nível de autorização necessário, digite o seguinte comando e pressione a tecla ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=DEVICE

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

Este comando retorna um código de autenticação e a URL de um site. Abra o site, forneça o código e escolha o botão Avançar .

Criar um contentor

Será apresentada uma janela de início de sessão. Nessa janela, entre em sua conta do Azure usando suas credenciais de conta do Azure. Depois de iniciar sessão com êxito, a operação pode ser concluída.

Autorizar uma identidade gerida

Essa é uma ótima opção 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. Ao usar essa opção, você não precisará armazenar credenciais na VM.

Você pode entrar em sua conta usando uma identidade gerenciada em todo o sistema que você habilitou 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ê atribuiu à 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 que você habilitou uma identidade gerenciada em todo o sistema em sua VM. Consulte Identidade gerenciada atribuída ao sistema.

Digite o seguinte comando e pressione a tecla 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, certifique-se de que ativou uma identidade gerida atribuída pelo utilizador na sua VM. Consulte Identidade gerenciada atribuída pelo usuário.

Digite o seguinte comando e pressione a tecla ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Em seguida, digite qualquer um dos seguintes comandos e pressione a tecla ENTER.

export AZCOPY_MSI_CLIENT_ID=<client-id>

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

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.

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.

Depois de definir essas variáveis, você pode executar qualquer comando azcopy (Por exemplo: azcopy list https://contoso.blob.core.windows.net).

Autorizar um principal de serviço

Esta é uma ótima opção se você planeja usar o AzCopy dentro de um script que é executado sem interação do usuário, especialmente quando executado localmente. Se você planeja executar o AzCopy em VMs executadas no Azure, uma identidade de serviço gerenciado é mais fácil de administrar. Para saber mais, consulte a seção Autorizar uma identidade gerenciada deste artigo.

Você pode entrar em sua conta usando um segredo do cliente ou usando a senha de um certificado associado ao registro do aplicativo da entidade de serviço.

Para saber mais sobre como criar uma entidade de serviço, consulte Como usar o portal para criar um aplicativo e uma entidade de serviço do Microsoft Entra que possam acessar recursos.

Para saber mais sobre entidades de serviço em geral, consulte Objetos de entidade de serviço e aplicativo no Microsoft Entra ID

Autorizar uma entidade de serviço usando um segredo do cliente

Digite o seguinte comando e pressione a tecla ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CLIENT_SECRET=<client-secret>
export AZCOPY_TENANT_ID=<tenant-id>

Substitua o espaço reservado <application-id> pela ID do aplicativo do registro do aplicativo da entidade de serviço. Substitua o espaço reservado <client-secret> pelo segredo do cliente. Substitua o espaço reservado <tenant-id> pela ID do locatário da organização à qual a conta de armazenamento pertence. Para localizar a ID do locatário, selecione Propriedades > do locatário ID do locatário no portal do Azure.

Nota

Considere usar um prompt para coletar a senha do usuário. Dessa forma, sua senha não aparecerá no histórico de comandos.

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

Autorizar uma entidade de serviço usando um certificado

Se preferir utilizar as suas próprias credenciais para autorização, pode carregar um certificado para o registo da aplicação e, em seguida, utilizar esse certificado para iniciar sessão.

Além de carregar seu certificado para o registro do aplicativo, você também precisará ter uma cópia do certificado salva na máquina ou VM onde o AzCopy será executado. Esta cópia do certificado deve estar em . PFX ou . PEM e deve incluir a chave privada. A chave privada deve ser protegida por senha. Se estiver a utilizar o Windows e o seu certificado existir apenas num arquivo de certificados, certifique-se de que exporta esse certificado para um ficheiro PFX (incluindo a chave privada). Para obter orientações, consulte Export-PfxCertificate

Digite o seguinte comando e pressione a tecla ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CERT_PATH=<path-to-certificate-file>
export AZCOPY_SPA_CERT_PASSWORD=<certificate-password>
export AZCOPY_TENANT_ID=<tenant-id>

Substitua o espaço reservado <application-id> pela ID do aplicativo do registro do aplicativo da entidade de serviço. Substitua o espaço reservado <path-to-certificate-file> pelo caminho relativo ou totalmente qualificado para o arquivo de certificado. O AzCopy salva o caminho para esse certificado, mas não salva uma cópia do certificado, portanto, certifique-se de manter esse certificado no lugar. Substitua o espaço reservado <certificate-password> pela senha do certificado. Substitua o espaço reservado <tenant-id> pela ID do locatário da organização à qual a conta de armazenamento pertence. Para localizar a ID do locatário, selecione Propriedades > do locatário ID do locatário no portal do Azure.

Nota

Considere usar um prompt para coletar a senha do usuário. Dessa forma, sua senha não aparecerá no histórico de comandos.

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

Autorizar usando o comando de login do AzCopy

Como alternativa ao uso de variáveis na memória, você autoriza o acesso usando o comando azcopy login.

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 login não funcionará porque não há onde colocar o token.

Autorizar uma identidade de usuário (comando azcopy login)

Depois de verificar se sua identidade de usuário recebeu o nível de autorização necessário, abra um prompt de comando, digite o seguinte comando e pressione a tecla ENTER.

azcopy login

Se você receber um erro, tente incluir a ID do locatário da organização à qual a conta de armazenamento pertence.

azcopy login --tenant-id=<tenant-id>

Substitua o espaço reservado <tenant-id> pela ID do locatário da organização à qual a conta de armazenamento pertence. Para localizar a ID do locatário, selecione Propriedades > do locatário ID do locatário no portal do Azure.

Este comando retorna um código de autenticação e a URL de um site. Abra o site, forneça o código e escolha o botão Avançar .

Criar um contentor

Será apresentada uma janela de início de sessão. Nessa janela, entre em sua conta do Azure usando suas credenciais de conta do Azure. Depois de iniciar sessão com sucesso, pode fechar a janela do navegador e começar a utilizar o AzCopy.

Autorizar usando uma identidade gerenciada em todo o sistema (comando azcopy login)

Primeiro, certifique-se de que você habilitou uma identidade gerenciada em todo o sistema em sua VM. 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 usando uma identidade gerenciada atribuída pelo usuário (comando azcopy login)

Primeiro, certifique-se de que ativou uma identidade gerida atribuída pelo utilizador na sua VM. Consulte Identidade gerenciada atribuída pelo usuário.

Em seguida, na consola de comandos, escreva qualquer um dos seguintes comandos e, em seguida, prima a tecla ENTER.

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

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

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.

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.

Autorizar uma entidade de serviço (comando azcopy login)

Antes de executar um script, você precisa entrar interativamente pelo menos uma vez para que você possa fornecer ao AzCopy as credenciais da sua entidade de serviço. Essas credenciais são armazenadas em um arquivo seguro e criptografado para que seu script não precise fornecer essas informações confidenciais.

Você pode entrar em sua conta usando um segredo do cliente ou usando a senha de um certificado associado ao registro do aplicativo da entidade de serviço.

Para saber mais sobre como criar uma entidade de serviço, consulte Como usar o portal para criar um aplicativo e uma entidade de serviço do Microsoft Entra que possam acessar recursos.

Autorizar uma entidade de serviço usando um segredo do cliente (comando azcopy login)

Comece definindo a AZCOPY_SPA_CLIENT_SECRET variável de ambiente como o segredo do cliente do registro do aplicativo da entidade de serviço.

Nota

Certifique-se de definir esse valor no prompt de comando, e não nas configurações de variável de ambiente do seu sistema operacional. Dessa forma, o valor fica disponível apenas para a sessão atual.

Este exemplo mostra como você pode fazer isso no PowerShell.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

Nota

Considere o uso de um prompt como mostrado neste exemplo. Dessa forma, sua senha não aparecerá no histórico de comandos do console.

Em seguida, digite o seguinte comando e pressione a tecla ENTER.

azcopy login --service-principal  --application-id application-id --tenant-id=tenant-id

Substitua o espaço reservado <application-id> pela ID do aplicativo do registro do aplicativo da entidade de serviço. Substitua o espaço reservado <tenant-id> pela ID do locatário da organização à qual a conta de armazenamento pertence. Para localizar a ID do locatário, selecione Propriedades > do locatário ID do locatário no portal do Azure.

Autorizar uma entidade de serviço usando um certificado (comando azcopy login)

Se preferir utilizar as suas próprias credenciais para autorização, pode carregar um certificado para o registo da aplicação e, em seguida, utilizar esse certificado para iniciar sessão.

Além de carregar seu certificado para o registro do aplicativo, você também precisará ter uma cópia do certificado salva na máquina ou VM onde o AzCopy será executado. Esta cópia do certificado deve estar em . PFX ou . PEM e deve incluir a chave privada. A chave privada deve ser protegida por senha. Se estiver a utilizar o Windows e o seu certificado existir apenas num arquivo de certificados, certifique-se de que exporta esse certificado para um ficheiro PFX (incluindo a chave privada). Para obter orientações, consulte Export-PfxCertificate

Em seguida, defina a AZCOPY_SPA_CERT_PASSWORD variável de ambiente como a senha do certificado.

Nota

Certifique-se de definir esse valor no prompt de comando, e não nas configurações de variável de ambiente do seu sistema operacional. Dessa forma, o valor fica disponível apenas para a sessão atual.

Este exemplo mostra como você pode fazer essa tarefa no PowerShell.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

Em seguida, digite o seguinte comando e pressione a tecla ENTER.

azcopy login --service-principal --application-id application-id --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>

Substitua o espaço reservado <application-id> pela ID do aplicativo do registro do aplicativo da entidade de serviço. Substitua o espaço reservado <path-to-certificate-file> pelo caminho relativo ou totalmente qualificado para o arquivo de certificado. O AzCopy salva o caminho para esse certificado, mas não salva uma cópia do certificado, portanto, certifique-se de manter esse certificado no lugar. Substitua o espaço reservado <tenant-id> pela ID do locatário da organização à qual a conta de armazenamento pertence. Para localizar a ID do locatário, selecione Propriedades > do locatário ID do locatário no portal do Azure.

Nota

Considere o uso de um prompt como mostrado neste exemplo. Dessa forma, sua senha não aparecerá no histórico de comandos do console.

Autorizar com a CLI do Azure

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

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

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI

Para obter mais informações sobre como entrar com a CLI do Azure, consulte Entrar com 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 para usar esse token, digite o seguinte comando e pressione a tecla ENTER.

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"

Para obter mais informações sobre como entrar com o Azure PowerShell, consulte Entrar com o Azure PowerShell.

Próximos passos