Compartilhar via


Usar o AzCopy para copiar blobs entre contas de armazenamento do Azure com restrições de rede

Este artigo apresenta como copiar blobs entre contas de armazenamento usando o utilitário de linha de comando do AzCopy. Ele também explica como implementar a operação de cópia quando as restrições de rede são configuradas para as contas de armazenamento.

Histórico

Copiar arquivos de blob entre duas contas de armazenamento é um requisito comum para muitos usuários do Azure. O Armazenamento do Azure dá suporte à cópia direta de blobs de uma conta de armazenamento para outra, o que pode ser implementado usando o utilitário de linha de comando do AzCopy. Os usuários não precisam baixar arquivos em discos ou buffers locais e carregá-los novamente.

Copiar blobs entre duas contas de armazenamento usando o AzCopy não depende da largura de banda de rede do computador local. Esse método pode aproveitar o desempenho das contas de armazenamento e do Azure Rede Virtual para obter uma taxa de transferência melhor do que baixar e carregar arquivos. Não haverá cobranças de largura de banda se ambas as contas de armazenamento estiverem na mesma região.

Comandos do AzCopy para copiar blobs entre contas de armazenamento

  • Se você fornecer credenciais de autorização usando Microsoft Entra ID, use o seguinte comando:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'
    

    Nesse cenário, você precisa garantir que sua identidade Microsoft Entra tenha as atribuições de função adequadas para contas de origem e de destino.

  • Se você usar um token SAS (Assinatura de Acesso Compartilhado), use o seguinte comando:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
    

    Nesse cenário, você precisa acrescentar um token SAS à URL de origem e de destino usada em seus comandos do AzCopy.

Para obter mais informações, consulte Copiar blobs entre contas de armazenamento do Azure com o AzCopy v10.

Copiar blobs entre contas de armazenamento com restrição de acesso

Se você precisar restringir o acesso a contas de armazenamento de origem e de destino por meio do firewall de armazenamento, talvez seja necessário mais configurações para copiar blobs entre contas de armazenamento usando o AzCopy. Isso ocorre porque a solicitação de cópia entre duas contas de armazenamento usa endereços IP privados e os endereços IP são dinâmicos.

Aqui estão dois cenários com suporte:

Cenário 1: o cliente usa um ponto de extremidade público para acessar contas de armazenamento

Nesse cenário, você deve adicionar o endereço IP público ou a VNet (rede virtual) do cliente à lista de permissões de firewall nas contas de armazenamento de origem e de destino.

A imagem a seguir mostra o processo de copiar blobs entre contas de armazenamento neste cenário:

Diagrama que mostra o processo de enfrentamento de blobs entre contas de armazenamento no cenário 1.

Nesse cenário, a lista de permissões de firewall não é necessária.

A imagem a seguir mostra o processo de copiar blobs entre contas de armazenamento neste cenário:

Diagrama que mostra o processo de enfrentamento de blobs entre contas de armazenamento no cenário 2.

Aqui está o processo completo desse mecanismo para os dois cenários:

  1. O cliente envia uma solicitação PutBlockfromURL para o armazenamento de destino.
  2. O armazenamento de destino recebe as solicitações e tenta obter blocos da URL de origem fornecida. No entanto, como o armazenamento de destino não foi permitido pelo firewall de origem, ele recebe um erro "403 Proibido".
  3. Depois que o armazenamento de destino recebe o erro "403 Proibido", ele envia outra solicitação GetBlob em nome do cliente. Se o cliente tiver acesso ao armazenamento de origem, o destino poderá obter os blocos da origem e retornar um código de resposta de sucesso ao cliente.
  4. O cliente envia PutBlockList para o armazenamento de destino para confirmar os blocos e concluir o processo depois de receber um código de resposta de sucesso da solicitação.

Copiar blobs entre contas de armazenamento em uma arquitetura hub-spoke usando pontos de extremidade privados

Um erro 403 ocorre ao usar o AzCopy para copiar blobs entre contas de armazenamento conectadas a pontos de extremidade privados em VNets spoke diferentes de uma VM em uma VNet do Hub. Você pode encontrar um erro "403 Essa solicitação não está autorizada a executar essa operação – CannotVerfiyCopySource" nos logs do AzCopy ou nos logs de Armazenamento do Azure. O diagrama de arquitetura a seguir mostra o cenário em que o erro ocorre.

Diagrama que mostra o erro 403 de copiar blobs entre contas de armazenamento em uma arquitetura do Hub & Spoke usando pontos de extremidade privados.

Solução alternativa 1: criar um ponto de extremidade privado para a conta de armazenamento de destino na VNet de origem

Uma solução alternativa possível é criar um ponto de extremidade privado para a conta de armazenamento de destino na VNet de origem. Essa configuração permite que a VM copie com êxito os blobs entre as contas de armazenamento usando o AzCopy. O diagrama de arquitetura a seguir mostra o processo de copiar blobs entre contas de armazenamento na solução alternativa 1.

Diagrama que mostra o processo de copiar blobs entre contas de armazenamento em Solução alternativa 1.

Solução alternativa 2: coloque a VM na mesma VNet que a conta de armazenamento de origem e emparelhe a VNet com a VNet de destino

Outra opção é colocar a VM dentro da mesma VNet que a conta de armazenamento de origem. Em seguida, estabeleça o emparelhamento entre essa VNet e a VNet de destino. O diagrama de arquitetura a seguir mostra o processo de copiar blobs entre contas de armazenamento em Solução alternativa 2.

Diagrama que mostra o processo de copiar blobs entre contas de armazenamento em Solução alternativa 2.

Solução alternativa 3: usar uma conta de preparo temporária para copiar os dados

Se você não conseguir implementar as soluções alternativas mencionadas anteriormente ou estiver impedido de alterar a configuração de rede existente da conta de armazenamento ou da VNet, poderá usar uma conta de preparo temporária para copiar os dados:

  1. Crie uma conta de armazenamento temporária na mesma região que a conta de armazenamento de origem e a conta de armazenamento de destino.
  2. Use o AzCopy para copiar os dados da conta de armazenamento de origem para a conta de armazenamento temporária.
  3. Copie os dados da conta de armazenamento temporário para a conta de armazenamento de destino. Verifique se a conta de armazenamento temporário tem um ponto de extremidade privado na mesma VNet que a conta de armazenamento de destino antes de executar a transferência de dados.

Solução alternativa 4: use uma VM e baixe os dados para a VM e carregue os dados na conta de armazenamento de destino

Use essa solução alternativa somente se outros métodos não forem viáveis. Use uma VM para baixar os dados da conta de armazenamento de origem e carregue-os na conta de armazenamento de destino. Isso pode ser feito com o AzCopy. Verifique se o tamanho da VM e a capacidade do disco são adequados para o processo de transferência de dados.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.