Utiliser AzCopy pour copier des objets blob entre des comptes de stockage Azure avec des restrictions réseau

Cet article explique comment copier des objets blob entre des comptes de stockage à l’aide de l’utilitaire en ligne de commande AzCopy. Il explique également comment implémenter l’opération de copie lorsque des restrictions réseau sont configurées pour les comptes de stockage.

Contexte

La copie de fichiers blob entre deux comptes de stockage est une exigence courante pour de nombreux utilisateurs Azure. Stockage Azure prend en charge la copie directe d’objets blob d’un compte de stockage vers un autre, qui peut être implémentée à l’aide de l’utilitaire en ligne de commande AzCopy. Les utilisateurs n’ont pas besoin de télécharger des fichiers sur des disques locaux ou des mémoires tampons, puis de les charger à nouveau.

La copie d’objets blob entre deux comptes de stockage à l’aide d’AzCopy ne repose pas sur la bande passante réseau de votre ordinateur local. Cette méthode peut tirer parti des performances des comptes de stockage et d’Azure Réseau virtuel pour obtenir un meilleur débit que le téléchargement et le chargement de fichiers. Il n’y a pas de frais de bande passante si les deux comptes de stockage se trouvent dans la même région.

Commandes AzCopy pour la copie d’objets blob entre des comptes de stockage

  • Si vous fournissez des informations d’identification d’autorisation à l’aide de Microsoft Entra ID, utilisez la commande suivante :

    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>'
    

    Dans ce scénario, vous devez vous assurer que votre identité Microsoft Entra dispose des attributions de rôles appropriées pour les comptes source et de destination.

  • Si vous utilisez un jeton de signature d’accès partagé (SAP), utilisez la commande suivante :

    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>'
    

    Dans ce scénario, vous devez ajouter un jeton SAS à l’URL source et à l’URL de destination utilisées dans vos commandes AzCopy.

Pour plus d’informations, consultez Copier des objets blob entre des comptes de stockage Azure avec AzCopy v10.

Copier des objets blob entre des comptes de stockage avec restriction d’accès

Si vous devez restreindre l’accès aux comptes de stockage source et de destination via le pare-feu de stockage, vous aurez peut-être besoin de configurations supplémentaires pour copier des objets blob entre des comptes de stockage à l’aide d’AzCopy. En effet, la demande de copie entre deux comptes de stockage utilise des adresses IP privées et les adresses IP sont dynamiques.

Voici deux scénarios pris en charge :

Scénario 1 : Le client utilise un point de terminaison public pour accéder aux comptes de stockage

Dans ce scénario, vous devez ajouter l’adresse IP publique ou le réseau virtuel (VNet) du client à la liste d’autorisation du pare-feu dans les comptes de stockage source et de destination.

L’image suivante montre le processus de copie d’objets blob entre des comptes de stockage dans ce scénario :

Diagramme montrant le processus de gestion des objets blob entre les comptes de stockage dans le scénario 1.

Dans ce scénario, la liste d’autorisation du pare-feu n’est pas nécessaire.

L’image suivante montre le processus de copie d’objets blob entre des comptes de stockage dans ce scénario :

Diagramme montrant le processus de gestion des objets blob entre les comptes de stockage dans le scénario 2.

Voici le processus complet de ce mécanisme pour les deux scénarios :

  1. Le client envoie une requête PutBlockfromURL au stockage de destination.
  2. Le stockage de destination reçoit les requêtes et tente d’obtenir des blocs à partir de l’URL source donnée. Toutefois, étant donné que le stockage de destination n’a pas été autorisé par le pare-feu source, il reçoit une erreur « 403 Interdit ».
  3. Une fois que le stockage de destination a reçu l’erreur « 403 Forbidden », il envoie une autre requête GetBlob pour le compte du client. Si le client a accès au stockage source, la destination peut obtenir les blocs de la source et retourner un code de réponse de réussite au client.
  4. Le client envoie PutBlockList au stockage de destination pour valider les blocs et terminer le processus après avoir reçu un code de réponse de réussite de la demande.

Copier des objets blob entre des comptes de stockage dans une architecture hub-and-spoke à l’aide de points de terminaison privés

Une erreur 403 se produit lors de l’utilisation d’AzCopy pour copier des objets blob entre des comptes de stockage connectés à des points de terminaison privés dans différents réseaux virtuels Spoke à partir d’une machine virtuelle dans un réseau virtuel hub. Vous trouverez une erreur « 403 Cette demande n’est pas autorisée à effectuer cette opération - CannotVerfiyCopySource » dans les journaux AzCopy ou dans les journaux du stockage Azure. Le diagramme d’architecture suivant montre le scénario dans lequel l’erreur se produit.

Diagramme montrant l’erreur 403 de copie d’objets blob entre des comptes de stockage dans une architecture Hub & Spoke à l’aide de points de terminaison privés.

Solution de contournement 1 : Créer un point de terminaison privé pour le compte de stockage de destination dans le réseau virtuel source

Une solution de contournement possible consiste à créer un point de terminaison privé pour le compte de stockage de destination dans le réseau virtuel source. Cette configuration permet à la machine virtuelle de copier correctement les objets blob entre les comptes de stockage à l’aide d’AzCopy. Le diagramme d’architecture suivant illustre le processus de copie d’objets blob entre des comptes de stockage dans la solution de contournement 1.

Diagramme montrant le processus de copie d’objets blob entre des comptes de stockage dans solution de contournement 1.

Solution de contournement 2 : placer la machine virtuelle dans le même réseau virtuel que le compte de stockage source et appairer le réseau virtuel avec le réseau virtuel de destination

Une autre option consiste à placer la machine virtuelle dans le même réseau virtuel que le compte de stockage source. Ensuite, établissez le peering entre ce réseau virtuel et le réseau virtuel de destination. Le diagramme d’architecture suivant montre le processus de copie d’objets blob entre des comptes de stockage dans solution de contournement 2.

Diagramme montrant le processus de copie d’objets blob entre des comptes de stockage dans solution de contournement 2.

Solution de contournement 3 : utiliser un compte intermédiaire temporaire pour copier les données

Si vous ne parvenez pas à implémenter les solutions de contournement mentionnées précédemment ou si vous ne pouvez pas modifier la configuration réseau existante du compte de stockage ou du réseau virtuel, vous pouvez utiliser un compte intermédiaire temporaire pour copier les données :

  1. Créez un compte de stockage temporaire dans la même région que le compte de stockage source et le compte de stockage de destination.
  2. Utilisez AzCopy pour copier les données du compte de stockage source vers le compte de stockage temporaire.
  3. Copiez les données du compte de stockage temporaire vers le compte de stockage de destination. Assurez-vous que le compte de stockage temporaire dispose d’un point de terminaison privé dans le même réseau virtuel que le compte de stockage de destination avant d’effectuer le transfert de données.

Solution de contournement 4 : utiliser une machine virtuelle et télécharger les données sur la machine virtuelle, puis charger les données sur le compte de stockage de destination

Utilisez cette solution de contournement uniquement si d’autres méthodes ne sont pas réalisables. Utilisez une machine virtuelle pour télécharger les données à partir du compte de stockage source, puis chargez-les sur le compte de stockage de destination. Cette opération peut être effectuée avec AzCopy. Assurez-vous que la taille et la capacité de disque de la machine virtuelle conviennent au processus de transfert de données.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.