Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tutoriel : Transférer des données entre des compartiments Amazon S3 Comptes AWS
Avec AWS DataSync, vous pouvez transférer des données entre des compartiments Amazon S3 appartenant à des entités différentes Comptes AWS.
Important
Le transfert de données à Comptes AWS l'aide des méthodes décrites dans ce didacticiel ne fonctionne qu'avec Amazon S3. En outre, ce didacticiel peut vous aider à transférer des données entre des compartiments S3 qui se trouvent également dans des compartiments différents Régions AWS.
Présentation
Il n'est pas rare de transférer des données entre deux équipes Comptes AWS, en particulier si vous avez des équipes distinctes qui gèrent les ressources de votre organisation. Voici à quoi DataSync peut ressembler un transfert entre comptes :
-
Compte source : Compte AWS pour gérer le compartiment S3 à partir duquel vous devez transférer des données.
-
Compte de destination : Compte AWS pour gérer le compartiment S3 vers lequel vous devez transférer des données.
Prérequis : autorisations de compte source requises
Pour votre source Compte AWS, deux ensembles d'autorisations doivent être pris en compte pour ce type de transfert entre comptes :
-
Autorisations utilisateur qui permettent à un utilisateur de travailler avec DataSync (il peut s'agir de vous ou de votre administrateur de stockage). Ces autorisations vous permettent de créer des DataSync emplacements et des tâches.
-
DataSync autorisations de service qui permettent DataSync de transférer des données vers le compartiment de votre compte de destination.
Dans votre compte source, ajoutez au moins les autorisations suivantes à un rôle IAM pour créer vos DataSync emplacements et vos tâches. Pour plus d'informations sur la façon d'ajouter des autorisations à un rôle, consultez la section Création ou modification d'un rôle IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceUserRolePermissions", "Effect": "Allow", "Action": [ "datasync:CreateLocationS3", "datasync:CreateTask", "datasync:DescribeLocation*", "datasync:DescribeTaskExecution", "datasync:ListLocations", "datasync:ListTaskExecutions", "datasync:DescribeTask", "datasync:CancelTaskExecution", "datasync:ListTasks", "datasync:StartTaskExecution", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "datasync.amazonaws.com" ] } } } ] }
Astuce
Pour configurer vos autorisations d'utilisateur, pensez à utiliser AWSDataSyncFullAccess. Il s'agit d'une politique AWS gérée qui fournit à l'utilisateur un accès complet DataSync et un accès minimal à ses dépendances.
Le DataSync service a besoin des autorisations suivantes dans votre compte source pour transférer des données vers le compartiment de votre compte de destination.
Plus loin dans ce didacticiel, vous ajouterez ces autorisations lors de la création d'un rôle IAM pour DataSync. Vous spécifiez également ce rôle (
) dans votre politique de compartiment de destination et lors de la création de votre position de DataSync destination.source-datasync-role
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::
amzn-s3-demo-destination-bucket
" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ] }
Prérequis : autorisations requises pour le compte de destination
Dans votre compte de destination, vos autorisations utilisateur doivent vous permettre de mettre à jour la politique de votre compartiment de destination et de désactiver ses listes de contrôle d'accès (ACLs). Pour plus d'informations sur ces autorisations spécifiques, consultez le guide de l'utilisateur Amazon S3.
Étape 1 : dans votre compte source, créez un rôle DataSync IAM pour accéder au compartiment de destination
Dans votre source Compte AWS, vous avez besoin d'un rôle IAM qui autorise DataSync le transfert de données vers le bucket de votre compte de destination.
Comme vous effectuez un transfert entre comptes, vous devez créer le rôle manuellement. (vous DataSync pouvez créer ce rôle dans la console lors du transfert vers le même compte.)
Créez un rôle IAM en DataSync tant qu'entité de confiance.
Connectez-vous au AWS Management Console avec votre compte source.
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation de gauche, sous Gestion des accès, sélectionnez Rôles, puis sélectionnez Créer un rôle.
-
Sur la page Sélectionner une entité de confiance, pour Type d'entité de confiance, sélectionnez Service AWS.
-
Pour Cas d'utilisation, choisissez DataSyncdans la liste déroulante et sélectionnez DataSync. Choisissez Suivant.
-
Sur la page Add permissions (Ajouter des autorisations), sélectionnez Next (Suivant).
-
Donnez un nom à votre rôle et choisissez Créer un rôle.
Pour plus d'informations, consultez la section Création d'un rôle pour une Service AWS (console) dans le guide de l'utilisateur IAM.
Le rôle IAM que vous venez de créer nécessite les autorisations permettant de transférer des données DataSync vers le compartiment S3 de votre compte de destination.
Sur la page Rôles de la console IAM, recherchez le rôle que vous venez de créer et choisissez son nom.
Sur la page de détails du rôle, choisissez l'onglet Autorisations. Choisissez Ajouter des autorisations, puis Créer une politique en ligne.
-
Choisissez l'onglet JSON et procédez comme suit :
Collez le code JSON suivant dans l'éditeur de règles :
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::
amzn-s3-demo-destination-bucket
" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ] }Remplacez chaque instance de
par le nom du compartiment S3 dans votre compte de destination.amzn-s3-demo-destination-bucket
-
Choisissez Suivant. Donnez un nom à votre politique et choisissez Create policy.
Étape 2 : dans votre compte de destination, mettez à jour votre politique de compartiment S3
Dans votre compte de destination, modifiez la politique du compartiment S3 de destination pour inclure le rôle DataSync IAM que vous avez créé dans votre compte source.
Avant de commencer : assurez-vous que vous disposez des autorisations requises pour votre compte de destination.
-
Dans le AWS Management Console, passez à votre compte de destination.
Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/
. -
Dans le panneau de navigation de gauche, choisissez Compartiments.
-
Dans la liste des compartiments, choisissez le compartiment S3 vers lequel vous transférez les données.
-
Sur la page détaillée du bucket, choisissez l'onglet Permissions.
-
Sous Politique de compartiment, choisissez Modifier et procédez comme suit pour modifier votre politique de compartiment S3 :
-
Mettez à jour le contenu de l'éditeur pour inclure les déclarations de politique suivantes :
{ "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
source-account
:role/source-datasync-role
" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ] } ] } -
Remplacez chaque instance de
par l' Compte AWS ID de votre compte source.source-account
-
Remplacez-le par le rôle IAM que vous avez créé DataSync dans votre compte source.source-datasync-role
-
Remplacez chaque instance de
par le nom du compartiment S3 dans votre compte de destination.amzn-s3-demo-destination-bucket
-
-
Sélectionnez Enregistrer les modifications.
Étape 3 : dans votre compte de destination, ACLs désactivez-la pour votre compartiment S3
Il est important que toutes les données que vous transférez vers le compartiment S3 appartiennent à votre compte de destination. Pour vous assurer que ce compte possède les données, désactivez les listes de contrôle d'accès du bucket (ACLs). Pour plus d'informations, consultez la section Contrôle de la propriété des objets et désactivation ACLs de votre compartiment dans le guide de l'utilisateur Amazon S3.
Avant de commencer : assurez-vous que vous disposez des autorisations requises pour votre compte de destination.
-
Tout en restant connecté à la console S3 avec votre compte de destination, choisissez le compartiment S3 vers lequel vous souhaitez transférer les données.
-
Sur la page détaillée du bucket, choisissez l'onglet Permissions.
-
Sous Object Ownership (Propriétaire de l’objet), sélectionnez Edit (Modifier).
-
Si ce n'est pas déjà fait, choisissez l'option ACLs désactivée (recommandée).
-
Sélectionnez Enregistrer les modifications.
Étape 4 : Dans votre compte source, créez vos DataSync emplacements
Dans votre compte source, créez les DataSync emplacements pour vos compartiments S3 source et de destination.
Avant de commencer : assurez-vous que vous disposez des autorisations requises pour votre compte source.
Dans votre compte source, créez un emplacement pour le compartiment S3 à partir duquel vous transférez les données.
Pendant que vous êtes toujours dans votre compte source, créez un emplacement pour le compartiment S3 vers lequel vous transférez les données.
Comme vous ne pouvez pas créer d'emplacements entre comptes à l'aide de l'interface de DataSync console, ces instructions nécessitent que vous exécutiez une create-location-s3
commande pour créer votre emplacement de destination. Nous vous recommandons d'exécuter la commande à l'aide AWS CloudShell d'un shell pré-authentifié basé sur un navigateur que vous lancez directement depuis la console. CloudShellvous permet d'exécuter AWS CLI des commandes create-location-s3
sans télécharger ni installer d'outils de ligne de commande.
Note
Pour effectuer les étapes suivantes à l'aide d'un outil de ligne de commande autre que CloudShell, assurez-vous que votre AWS CLI profil utilise le même rôle IAM qui inclut les autorisations utilisateur requises pour être utilisé DataSync dans votre compte source.
Pour créer un lieu de DataSync destination en utilisant CloudShell
-
Lorsque vous êtes toujours dans votre compte source, effectuez l'une des opérations suivantes pour lancer CloudShell depuis la console :
-
Cliquez sur l' CloudShell icône dans la barre de navigation de la console. Il est situé à droite de la zone de recherche.
-
Utilisez le champ de recherche de la barre de navigation de la console pour rechercher, CloudShellpuis choisissez l'CloudShelloption.
-
-
Copiez la
create-location-s3
commande suivante :aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::
amzn-s3-demo-destination-bucket
\ --regionamzn-s3-demo-destination-bucket-region
\ --s3-config '{ "BucketAccessRoleArn":"arn:aws:iam::source-account-id
:role/source-datasync-role
" }' -
Remplacez-le par le nom du compartiment S3 dans votre compte de destination.amzn-s3-demo-destination-bucket
-
Si votre compartiment de destination se trouve dans une région différente de celle de votre compartiment source, remplacez-le
par la région dans laquelle réside le compartiment de destination (par exemple,amzn-s3-demo-destination-bucket-region
). Supprimez cette option si vos buckets se trouvent dans la même région.us-east-2
-
Remplacez
par l' Compte AWS ID source.source-account-id
-
Remplacez-le par le rôle DataSync IAM que vous avez créé dans votre compte source.source-datasync-role
-
Exécutez la commande dans CloudShell.
Si la commande renvoie un ARN de DataSync localisation similaire à celui-ci, cela signifie que vous avez créé l'emplacement avec succès :
{ "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
-
Dans le volet de navigation de gauche, développez Transfert de données, puis choisissez Locations.
-
Si vous avez créé l'emplacement dans une autre région, sélectionnez cette région dans le volet de navigation.
Depuis votre compte source, vous pouvez voir l'emplacement S3 que vous venez de créer pour votre compartiment de comptes de destination.
Étape 5 : Dans votre compte source, créez et lancez votre DataSync tâche
Avant de commencer DataSync à transférer vos données, récapitulons ce que vous avez fait jusqu'à présent :
-
Dans votre compte source, vous avez créé un rôle IAM qui permet de transférer des données DataSync vers le compartiment S3 de votre compte de destination.
-
Dans votre compte de destination, vous avez configuré votre compartiment S3 afin de DataSync pouvoir y transférer des données.
-
Dans votre compte source, vous avez créé les emplacements DataSync source et de destination de votre transfert.
-
Tout en utilisant la DataSync console de votre compte source, développez Transfert de données dans le volet de navigation de gauche, puis choisissez Tâches et Créer une tâche.
-
Si le compartiment de votre compte de destination se trouve dans une région différente de celle du compartiment de votre compte source, choisissez la région du compartiment de destination dans le volet de navigation supérieur.
Important
Pour éviter une erreur de connexion réseau, vous devez créer votre DataSync tâche dans la même région que l'emplacement de destination.
-
Sur la page Configurer l'emplacement de la source, procédez comme suit :
-
Sélectionnez Choisir un emplacement existant.
-
(Pour les transferts entre régions) Dans le menu déroulant Région, choisissez la région dans laquelle réside le compartiment source.
-
Pour les emplacements existants, choisissez l'emplacement source du compartiment S3 à partir duquel vous transférez les données, puis choisissez Next.
-
-
Sur la page Configurer l'emplacement de destination, procédez comme suit :
-
Sélectionnez Choisir un emplacement existant.
-
Pour les emplacements existants, choisissez l'emplacement de destination du compartiment S3 vers lequel vous transférez les données, puis choisissez Next.
-
-
Sur la page Configurer les paramètres, choisissez un mode tâche.
Astuce
Nous vous recommandons d'utiliser le mode amélioré. Pour de plus amples informations, veuillez consulter Choix d'un mode de tâche pour le transfert de données.
-
Donnez un nom à la tâche et configurez des paramètres supplémentaires, tels que la spécification d'un groupe de CloudWatch journaux Amazon. Choisissez Suivant.
-
Sur la page Révision, passez en revue vos paramètres et choisissez Créer une tâche.
-
Sur la page de détails de la tâche, choisissez Démarrer, puis choisissez l'une des options suivantes :
-
Pour exécuter la tâche sans modification, choisissez Démarrer avec les valeurs par défaut.
-
Pour modifier la tâche avant de l'exécuter, choisissez Démarrer avec des options de remplacement.
-
Lorsque votre tâche est terminée, vérifiez le compartiment S3 dans votre compte de destination. Vous devriez voir les données qui ont été déplacées depuis le compartiment de votre compte source.
Résolution des problèmes
Consultez les informations suivantes si vous rencontrez des problèmes lors de la tentative de transfert entre comptes.
- Erreurs de connexion
-
Lors du transfert entre des compartiments S3 situés dans différentes Comptes AWS régions, vous risquez de recevoir une erreur de connexion réseau au démarrage de votre DataSync tâche. Pour résoudre ce problème, créez une tâche dans la même région que votre destination et essayez de l'exécuter.
Connexe : transferts entre comptes avec des compartiments S3 utilisant le chiffrement côté serveur
Si vous essayez d'effectuer ce transfert avec des compartiments S3 à l'aide du chiffrement côté serveur, consultez le blog sur le AWS stockage