Tutoriel : transférer des données d'Amazon S3 vers Amazon S3 dans unCompte AWS - AWS DataSync

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 d'Amazon S3 vers Amazon S3 dans unCompte AWS

AvecAWS DataSync, vous pouvez déplacer des données entre des compartiments Amazon S3 appartenant à différentsComptes AWS.

Important

La copie de données àComptes AWS l'aide des méthodes décrites dans ce didacticiel ne fonctionne qu'avec Amazon S3.

Présentation

Dans ce didacticiel, vous allez découvrir commentAWS Identity and Access Management (IAM) etAWS Command Line Interface (AWS CLI) peuvent vous aider à créer desDataSync tâches qui transfèrent des données d'Amazon S3 vers un autre compartiment S3 situé dans un autre compartimentCompte AWS.

Astuce

Suivez ce tutoriel si vos compartiments S3 se trouvent également dans des compartiments différentsRégions AWS. Le processus est pratiquement le même, à l'exception de quelques étapes supplémentaires. Gardez toutefois à l'esprit que ces types de transfertsDataSync ne sont pas pris en charge pour les régions désactivées par défaut.

Voici à quoi peut ressembler ce type de scénario :

  • Compte A : celuiCompte AWS que vous utilisez pour gérer le compartiment S3 à partir duquel vous souhaitez copier des données.

  • Compte B : celuiCompte AWS que vous utilisez pour gérer le compartiment S3 dans lequel vous souhaitez copier des données.

Transfers across accounts

Le schéma suivant illustre un scénario dans lequel vous copiez des données d'un compartiment S3 vers un autre compartiment S3 se trouvant dans un autre compartimentCompte AWS.


                            Exemple deDataSync scénario de transfert de données d'un compartiment S3 vers un compartimentCompte AWS (compte A) avant d'être transférées vers un compartiment S3 dans un autreCompte AWS (compte B).
Transfers across accounts and Regions

Le schéma suivant illustre un scénario dans lequel vous copiez des données d'un compartiment S3 vers un autre compartiment S3 situé dans une autre régionCompte AWS AND.


                            Exemple deDataSync scénario de transfert de données depuis un compartiment S3 vers une régionCompte AWS (compte A) et une région avant d'être transférées vers un compartiment S3 dans une autreCompte AWS (compte B) et une région différentes.

Prérequis

Avant de commencer les travaux IAM visant à faciliter le transfert entre comptes, procédez comme suit si ce n'est pas déjà fait :

  1. Déterminez le nombre d'objets que vous copiez. Utilisez Amazon S3 Storage Lens pour déterminer le nombre d'objets contenus dans votre compartiment.

    Astuce

    Lors du transfert entre compartiments S3,DataSync vous ne pouvez pas copier plus de 25 millions d'objets par tâche. Si votre compartiment contient plus de 25 millions d'objets, nous vous recommandons deux options :

    • Organisez vos objets à l'aide de préfixes indiquant que vous n'incluez pas plus de 25 millions d'objets. Vous pouvez ensuite créer desDataSync tâches distinctes pour chaque préfixe.

    • Filtrer les données transférées parDataSync.

  2. Créez un emplacementDataSync source avec le compte A pour le compartiment S3 à partir duquel vous copiez les données.

  3. Configurez leAWS CLI avec le compte A. Vous en aurez besoinAWS CLI pour créer l'emplacement deDataSync destination du compartiment S3 dans le compte B.

Étape 1 : créer un rôle IAM pourDataSync le compte A

Vous avez besoin d'un rôle IAM quiDataSync autorise l'écriture sur le compartiment S3 du compte B.

Lorsque vous créez un emplacement pour un compartiment, vousDataSync pouvez automatiquement créer et assumer un rôle avec les autorisations nécessaires pour accéder à ce compartiment. Comme vous effectuez un transfert entre comptes, vous devez créer le rôle manuellement.

Pour plus d'informations, consultez la section Création d'un rôle pour uneService AWS (console) dans le Guide de l'utilisateur IAM.

Créer le rôle IAM

Créez un rôle enDataSync tant qu'entité de confiance.

Pour créer le rôle IAM
  1. Connectez-vousAWS Management Console au compte A.

  2. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  3. Dans le volet de navigation de gauche, sous Gestion des accès, choisissez Rôles, puis choisissez Créer un rôle.

  4. Sur la page Sélectionner une entité sécurisée, sélectionnez Type d'entité sécurisée Service AWS.

  5. Pour Cas d'utilisation, choisissez DataSyncdans la liste déroulante et sélectionnez DataSync. Choisissez Suivant.

  6. Sur la page Add permissions (Ajouter des autorisations), sélectionnez Next (Suivant).

  7. Donnez un nom à votre rôle et choisissez Créer un rôle.

Attachez une politique personnalisée au rôle IAM

Le rôle IAM nécessite une politique permettant d'DataSyncécrire dans votre compartiment S3 dans le compte B.

Pour attacher une politique personnalisée au rôle IAM
  1. Sur la page Rôles de la console IAM, recherchez le rôle que vous venez de créer et choisissez son nom.

  2. Sur la page des détails du rôle, choisissez l'onglet Autorisations. Choisissez Ajouter des autorisations, puis Créer une politique intégrée.

  3. Choisissez l'onglet JSON et procédez comme suit :

    1. Collez le texte JSON suivant dans l'éditeur de politique :

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket/*" } ] }
    2. Remplacezaccount-b-bucket par le nom du compartiment S3 du compte B.

  4. Choisissez Review policy (Examiner une politique).

  5. Donnez un nom à votre politique et choisissez Créer une politique.

Étape 2 : désactiver les ACL pour votre compartiment S3 dans le compte B

Il est important que toutes les données que vous copiez dans le compartiment S3 appartiennent au compte B. Pour vous assurer que le compte B est le propriétaire des données, désactivez les listes de contrôle d'accès (ACL) du compartiment. Pour plus d'informations, veuillez consulter la section Contrôle de la propriété des objets et désactivation des ACL pour votre compartiment dans le Guide de l'utilisateur d'Simple Storage Service (Amazon S3).

Pour désactiver les ACL d'un compartiment S3
  1. Dans leAWS Management Console, passez au compte B.

  2. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/.

  3. Dans le panneau de navigation de gauche, choisissez Compartiments.

  4. Dans la liste des compartiments, choisissez le compartiment S3 vers lequel vous transférez des données.

  5. Sur la page détaillée du compartiment, choisissez l'onglet Autorisations.

  6. Sous Object Ownership (Propriétaire de l'objet), sélectionnez Edit (Modifier).

  7. Si ce n'est pas déjà fait, choisissez l'option ACL désactivée (recommandée).

  8. Choisissez Save Changes (Enregistrer les modifications).

Étape 3 : mettre à jour la politique de compartiment S3 dans le compte B

Dans le compte B, modifiez la politique de compartiment S3 afin d'autoriser l'accès au rôle IAM que vous avez crééDataSync dans le compte A.

La politique mise à jour (qui vous est fournie dans les instructions suivantes) comprend deux principes principaux :

  • Le premier principal spécifie le rôle IAM dans le compte A que vous avez créé à l'étape 1. Ce rôle permetDataSync d'écrire dans le compartiment S3 du compte B.

  • Le second principe spécifie le rôle IAM dans le compte A que vous utilisez pour accéder à la console ouAWS CLI. À l'étape 4, vous utiliserez ce rôle lors de la création de l'emplacement de destination du compartiment S3.

Pour mettre à jour la politique de compartiment S3
  1. Lorsque vous êtes toujours dans la console S3 et que vous utilisez le compte B, choisissez le compartiment S3 dans lequel vous copiez les données.

  2. Sur la page détaillée du compartiment, choisissez l'onglet Autorisations.

  3. Sous Politique de compartiment, choisissez Modifier et procédez comme suit pour modifier votre politique de compartiment S3 :

    1. 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::account-a-id:role/name-of-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:::account-b-bucket", "arn:aws:s3:::account-b-bucket/*" ] }, { "Sid": "DataSyncCreateS3Location", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-your-role" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::account-b-bucket" } ] }
    2. Remplacezaccount-a-id par leCompte AWS numéro du compte A.

    3. Remplacez-lename-of-datasync-role par le rôle IAM que vous avez crééDataSync dans le compte A (voir étape 1).

    4. Remplacezaccount-b-bucket par le nom du compartiment S3 du compte B.

    5. name-of-your-roleRemplacez-le par le rôle IAM que vous utilisez pour accéder à la console ouAWS CLI par le compte A.

  4. Choisissez Save Changes (Enregistrer les modifications).

Étape 4 : Création d'un emplacement deDataSync destination pour le compartiment S3

Après avoir créé un emplacement pour le compartiment S3, vous pouvez exécuter votreDataSync tâche. LaDataSync console ne prend toutefois pas en charge la création de lieux dans différents comptes. Vous devez créer l'emplacement avec leAWS CLI avant de pouvoir exécuter la tâche.

Pour créer unDataSync emplacement à l'aide de l'interface de ligne de commande
  1. Ouvrez un terminal .

  2. Assurez-vous que votre profil CLI est configuré pour utiliser le compte A.

  3. Copiez la commande suivante :

    aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::account-b-bucket \ --s3-config '{"BucketAccessRoleArn":"arn:aws:iam::account-a-id:role/name-of-datasync-role"}'
  4. Remplacezaccount-b-bucket par le nom du compartiment S3 du compte B.

  5. Remplacezaccount-a-id par leCompte AWS numéro du compte A.

  6. Remplacez-lename-of-datasync-role par le rôle IAM que vous avez crééDataSync dans le compte A (voir étape 1).

  7. Si le compartiment du compte B se trouve dans une région différente de celle du compte A, ajoutez l'--regionoption à la fin de la commande pour spécifier la région dans laquelle se trouve le compartiment du compte B. Par exemple, --region us-west-1.

  8. Exécutez la commande .

    Si la commande renvoie un ARN d'DataSyncemplacement similaire à celui-ci, vous avez créé l'emplacement avec succès :

    { "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
  9. Revenez au compte A dans leAWS Management Console.

  10. Ouvrez laDataSync console à l'adresse https://console.aws.amazon.com/datasync/.

  11. Dans le volet de navigation de gauche, choisissez Emplacements.

    Vous pouvez voir l'emplacement du compartiment S3 dans le compte B que vous venez de créer à l'aide de la CLI.

Étape 5 : créer et démarrer uneDataSync tâche

Avant de déplacer vos données, récapitulons ce que vous avez fait jusqu'à présent :

  • Création d'un rôle IAM dans le compte A afin deDataSync pouvoir écrire des données dans le compartiment S3 du compte B.

  • Vous avez configuré votre compartiment S3 dans le compte B pour vous assurer que votreDataSync tâche fonctionne.

  • Vous avez créé vos emplacementsDataSync source et destination dans le compte A.

Pour créer et démarrer laDataSync tâche
  1. Tout en utilisant laDataSync console dans le compte A, développez Transfert de données dans le volet de navigation de gauche, puis choisissez Tâches et Créer une tâche.

    Note

    Vous devez être connecté à la console avec le même rôle IAM pour le compte A que celui que vous avez spécifié dans la politique de compartiment S3 à l'étape 3.

  2. Si le compartiment du compte B se trouve dans une région différente de celle du compte A, choisissez la région du compartiment du compte B dans le volet de navigation.

    Vous devez démarrer laDataSync tâche à partir de la région de l'emplacement de destination (dans ce cas, le compartiment du compte B) pour éviter une erreur de connexion.

  3. Sur la page Configurer l'emplacement source, choisissez Choisir un emplacement existant.

  4. Pour les transferts entre régions, choisissez la région dans laquelle le compartiment Compte A est.

  5. Choisissez l'emplacement source à partir duquel vous copiez les données (le compartiment S3 du compte A), puis Suivant.

  6. Sur la page Configurer l'emplacement de destination, choisissez Choisir un emplacement existant. Choisissez l'emplacement de destination vers lequel vous copiez les données (le compartiment S3 dans le compte B), puis Suivant.

  7. Sur la page Configurer les paramètres, attribuez un nom à la tâche. Le cas échéant, configurez des paramètres supplémentaires, tels que la spécification d'un groupe deCloudWatch journaux Amazon. Choisissez Suivant.

  8. Sur la page Révision, passez en revue vos paramètres et choisissez Créer une tâche.

  9. Dans la page des 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 Commencer par 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, consultez le compartiment S3 dans le compte B. Vous devriez voir les données de votre compartiment du compte A.

Ressources connexes

Pour en savoir plus sur ce que vous avez fait dans ce didacticiel, consultez les rubriques suivantes :