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 de 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.
Background
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é à l’aide de l’utilitaire de 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 télé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 les comptes de stockage
Si vous fournissez des informations d’identification d’autorisation à l’aide de l’ID Microsoft Entra, 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 SAP (Shared Access Signature), 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 SAP à la fois à l’URL source et de destination utilisée dans vos commandes AzCopy.
Pour plus d’informations, consultez Copier des objets blob entre des comptes de stockage Azure avec AzCopy v10.
Copier des blobs entre 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. Cela est dû au fait que la demande de copie entre deux comptes de stockage utilise des adresses IP privées et que 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 du client à la liste verte du pare-feu dans les comptes de stockage source et de destination.
L’image suivante montre le processus de copie d’objets blob entre les comptes de stockage dans ce scénario :
Scénario 2 : Le réseau virtuel du client a des liaisons privées configurées et utilise un point de terminaison privé pour accéder aux comptes de stockage
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 les comptes de stockage dans ce scénario :
Voici le processus complet de ce mécanisme pour les deux scénarios :
- Le client envoie une requête PutBlockfromURL au stockage de destination.
- 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 ».
- Une fois le stockage de destination reçu l’erreur « 403 Interdit », il envoie une autre requête GetBlob pour le compte du client. Si le client a accès au stockage source, la destination pourra obtenir les blocs de la source et retourner un code de réponse de réussite au client.
- 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 requête.
Copier des objets blob entre des comptes de stockage dans une architecture hub-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 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 d’activité Stockage Azure. Le diagramme d’architecture suivant montre le scénario dans lequel l’erreur se produit.
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 montre le processus de copie d’objets blob entre les comptes de stockage dans la 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 un 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 les 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 :
- 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.
- Utilisez AzCopy pour copier les données du compte de stockage source vers le compte de stockage temporaire.
- Copiez les données du compte de stockage temporaire vers le compte de stockage de destination. Assurez-vous que le compte de stockage temporaire a 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 dans 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 dans le compte de stockage de destination. Cela peut être effectué 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.