

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 : Transfert de données depuis le stockage sur site vers Amazon S3 via Comptes AWS
<a name="s3-cross-account-transfer"></a>

Lorsque vous utilisez AWS DataSync le stockage sur site, vous transférez généralement les données vers un service AWS de stockage qui appartient au même Compte AWS que votre DataSync agent. Il existe toutefois des situations dans lesquelles vous devrez peut-être transférer des données vers un compartiment Amazon S3 associé à un autre compte.

**Important**  
Le transfert de données à Comptes AWS l'aide des méthodes décrites dans ce didacticiel ne fonctionne que lorsque Amazon S3 est l'un des sites de DataSync transfert.

## Présentation de
<a name="s3-cross-account-overview"></a>

Il n'est pas rare de devoir transférer des données entre différents acteurs 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 les ressources du réseau. Il s'agit du compte avec lequel vous activez votre DataSync agent.
+ **Compte de destination** : Compte AWS pour gérer le compartiment S3 vers lequel vous devez transférer des données.

Le schéma suivant illustre ce type de scénario.

![\[Exemple de DataSync scénario de transfert de données depuis un système de stockage sur site via une Direct Connect connexion Internet vers AWS. Les données sont d'abord transférées dans un Compte AWS (votre compte source), avant d'être finalement transférées dans un compartiment Amazon S3 dans un autre Compte AWS (votre compte de destination).\]](http://docs.aws.amazon.com/fr_fr/datasync/latest/userguide/images/s3-cross-account-diagram.png)


## Prérequis : autorisations de compte source requises
<a name="onprem-s3-cross-account-required-permissions-source"></a>

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.

------
#### [ User permissions ]

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) ou [modification](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) 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",
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IAMPermissions",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:ListRoles",
                "iam:CreatePolicy"
            ],
            "Resource": "arn:aws:iam::111122223333:role/DataSync-*"
        },
        {
            "Sid": "IAMAttachRolePermissions",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:iam::111122223333:role/DataSync-*",
            "Condition": {
            "ArnLike": {
                "iam:PolicyARN": [
                   "arn:aws:iam::111122223333:policy/DataSync-*",
                   "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess",
                   "arn:aws:iam::aws:policy/service-role/AWSDataSyncFullAccess"
                ]
            }
          }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "datasync.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

**Astuce**  
Pour configurer vos *autorisations d'utilisateur*, pensez à utiliser [AWSDataSyncFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-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.

------
#### [ DataSync service permissions ]

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](#s3-cross-account-create-iam-role-source-account) pour DataSync. Vous spécifiez également ce rôle (`source-datasync-role`) dans votre [politique de compartiment de destination](#s3-cross-account-update-s3-policy-destination-account) et lors de la [création de votre position de DataSync destination](#s3-cross-account-create-datasync-destination).

****  

```
{
  "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
<a name="onprem-s3-cross-account-required-permissions-destination"></a>

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 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)[https://docs.aws.amazon.com/AmazonS3/latest/userguide/](https://docs.aws.amazon.com/AmazonS3/latest/userguide/).

## Étape 1 : Dans votre compte source, créez un DataSync agent
<a name="s3-cross-account-deploy-agent"></a>

Pour commencer, vous devez créer un DataSync agent capable de lire depuis votre système de stockage sur site et de communiquer avec le DataSync service. Ce processus inclut le déploiement d'un agent dans votre environnement de stockage sur site et l'activation de l'agent dans votre source Compte AWS.

**Note**  
Les étapes de ce didacticiel s'appliquent à tous les types d'agent et de point de terminaison de service que vous utilisez.

**Pour créer un DataSync agent**

1. [Déployez un DataSync agent](deploy-agents.md) dans votre environnement de stockage sur site.

1. [Choisissez un point de terminaison de service](choose-service-endpoint.md) avec lequel l'agent communiquera AWS.

1. [Activez votre agent](activate-agent.md) dans votre compte source.

## Étape 2 : dans votre compte source, créez un rôle DataSync IAM pour accéder au compartiment de destination
<a name="s3-cross-account-create-iam-role-source-account"></a>

Dans votre compte source, vous avez besoin d'un rôle IAM qui autorise DataSync le transfert de données vers le compartiment 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éation du rôle DataSync IAM
<a name="s3-cross-account-create-iam-role"></a>

Créez un rôle IAM en DataSync tant qu'entité de confiance.

**Pour créer le rôle IAM**

1. Connectez-vous au AWS Management Console avec votre compte source.

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

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

1. Sur la page **Sélectionner une entité de confiance**, pour **Type d'entité de confiance**, sélectionnez **Service AWS**.

1. Pour **Cas d'utilisation**, choisissez **DataSync**dans la liste déroulante et sélectionnez **DataSync**. Choisissez **Suivant**.

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

1. 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) dans le *guide de l'utilisateur IAM*.

### Ajouter des autorisations au rôle DataSync IAM
<a name="s3-cross-account-attach-custom-policy"></a>

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.

**Pour ajouter des autorisations à votre 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.

1. Sur la page de détails du rôle, choisissez l'onglet **Autorisations**. Choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

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

   1. Collez le code JSON suivant dans l'éditeur de règles :
**Note**  
La valeur de `aws:ResourceAccount` doit être l'ID de compte qui possède le compartiment Amazon S3 spécifié dans la politique.

------
#### [ JSON ]

****  

      ```
      {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:GetBucketLocation",
                   "s3:ListBucket",
                   "s3:ListBucketMultipartUploads"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket",
               "Condition": {
                   "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                   }
               }
           },
           {
               "Action": [
                   "s3:AbortMultipartUpload",
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:GetObjectTagging",
                   "s3:GetObjectVersion",
                   "s3:GetObjectVersionTagging",
                   "s3:ListMultipartUploadParts",
                   "s3:PutObject",
                   "s3:PutObjectTagging"
                 ],
               "Effect": "Allow",
               "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "123456789012"
                   }
               }
           }
       ]
      }
      ```

------

   1. Remplacez chaque instance de `amzn-s3-demo-destination-bucket` par le nom du compartiment S3 dans votre compte de destination.

1. Choisissez **Suivant**. Donnez un nom à votre politique et choisissez **Create policy**.

## Étape 3 : dans votre compte de destination, mettez à jour votre politique de compartiment S3
<a name="s3-cross-account-update-s3-policy-destination-account"></a>

Dans votre compte de destination, modifiez la politique du compartiment S3 de destination pour inclure le [rôle DataSync IAM](#s3-cross-account-create-iam-role-source-account) que vous avez créé dans votre compte source.

**Avant de commencer** : assurez-vous que vous disposez des [autorisations requises pour votre compte de destination](#onprem-s3-cross-account-required-permissions-destination).

**Pour mettre à jour la politique du compartiment S3 de destination**

1. Dans le AWS Management Console, passez à votre compte de destination.

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**. 

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

1. Sur la page détaillée du bucket, choisissez l'onglet **Permissions**.

1. 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 :

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "DataSyncCreateS3LocationAndTaskAccess",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::111122223333: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/*"
            ]
          }
        ]
      }
      ```

------

   1. Remplacez chaque instance de `source-account` par l' Compte AWS ID de votre compte source.

   1. `source-datasync-role`Remplacez-le par le [rôle IAM que vous avez créé DataSync dans votre compte source](#s3-cross-account-create-iam-role-source-account).

   1. Remplacez chaque instance de `amzn-s3-demo-destination-bucket` par le nom du compartiment S3 dans votre compte de destination.

1. Sélectionnez **Enregistrer les modifications**.

## Étape 4 : Dans votre compte de destination, ACLs désactivez-la pour votre compartiment S3
<a name="s3-cross-account-disable-acls-destination-account"></a>

Il est important que toutes les données que vous copiez dans 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) dans le *guide de l'utilisateur Amazon S3*.

**Pour le désactiver ACLs pour votre compartiment de destination**

1. 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.

1. Sur la page détaillée du bucket, choisissez l'onglet **Permissions**.

1. Sous **Object Ownership (Propriétaire de l’objet)**, sélectionnez **Edit (Modifier)**.

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

1. Sélectionnez **Enregistrer les modifications**.

## Étape 5 : Dans votre compte source, créez un emplacement DataSync source pour votre stockage sur site
<a name="s3-on-prem-cross-account-create-source-location"></a>

Dans votre compte source, créez un [emplacement DataSync source](working-with-locations.md) pour le système de stockage sur site à partir duquel vous transférez les données. Cet emplacement utilise l'[agent que vous avez activé](#s3-cross-account-deploy-agent) dans votre compte source.

## Étape 6 : Dans votre compte source, créez un emplacement de DataSync destination pour votre compartiment S3
<a name="s3-cross-account-create-datasync-destination"></a>

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.

**Avant de commencer** : assurez-vous que vous disposez des [autorisations requises pour votre compte source](#onprem-s3-cross-account-required-permissions-source).

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. CloudShell vous 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) utilise le même rôle IAM qui inclut les [autorisations utilisateur requises](#onprem-s3-cross-account-required-permissions-source) pour être utilisé DataSync dans votre compte source. 

**Pour créer un lieu de DataSync destination en utilisant CloudShell**

1. 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, **CloudShell**puis choisissez l'**CloudShell**option.

1. Copiez la commande suivante :

   ```
   aws datasync create-location-s3 \
     --s3-bucket-arn arn:aws:s3:::amzn-s3-demo-destination-bucket \
     --s3-config '{
       "BucketAccessRoleArn":"arn:aws:iam::source-user-account:role/source-datasync-role"
     }'
   ```

1. `amzn-s3-demo-destination-bucket`Remplacez-le par le nom du compartiment S3 dans votre compte de destination.

1. `source-user-account`Remplacez-le par l' Compte AWS identifiant de votre compte source.

1. `source-datasync-role`Remplacez-le par le [rôle DataSync IAM](#s3-cross-account-create-iam-role-source-account) que vous avez créé dans votre compte source.

1. 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"
   }
   ```

1. Dans le volet de navigation de gauche, développez **Transfert de données**, puis choisissez **Locations**.

Depuis votre compte source, vous pouvez voir l'emplacement S3 que vous venez de créer pour votre compartiment de comptes de destination.

## Étape 7 : Dans votre compte source, créez et lancez votre DataSync tâche
<a name="s3-cross-account-create-start-datasync-task"></a>

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éé votre DataSync agent. L'agent peut lire depuis votre système de stockage sur site et communiquer avec le DataSync service.
+ 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.

**Pour créer et démarrer la DataSync tâche**

1. 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**.

1. Sur la page **Configurer l'emplacement de la source**, **choisissez Choisir un emplacement existant**. Choisissez l'emplacement source à partir duquel vous copiez les données (votre stockage sur site), puis **Next**.

1. 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 de votre compte de destination), puis **Next**.

1. Sur la page **Configurer les paramètres**, nommez la tâche. Le cas échéant, configurez des paramètres supplémentaires, tels que la spécification d'un groupe de CloudWatch journaux Amazon. Choisissez **Suivant**.

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

1. 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 votre emplacement source.

## Ressources connexes
<a name="s3-cross-account-create-start-datasync-task"></a>

Pour plus d'informations sur ce que vous avez fait dans ce didacticiel, consultez les rubriques suivantes :
+ [Création d'un rôle pour une Service AWS (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)
+ [Modifier une politique de confiance en matière de rôles (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
+ [Ajouter une politique de compartiment à l'aide de la console Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)
+ [Créez un emplacement S3 à l'aide du AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-location-s3.html)