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.
Transfert de fichiers ou d'objets spécifiques à l'aide d'un manifeste
Un manifeste est une liste de fichiers ou d'objets que vous AWS DataSync souhaitez transférer. Par exemple, au lieu de tout transférer dans un compartiment S3 contenant potentiellement des millions d'objets, il ne DataSync transfère que les objets que vous listez dans votre manifeste.
Les manifestes sont similaires aux filtres, mais ils vous permettent d'identifier exactement les fichiers ou les objets à transférer plutôt que les données correspondant à un modèle de filtre.
Création de votre manifeste
Un manifeste est un fichier au format CSV (valeurs séparées par des virgules) qui répertorie les fichiers ou les objets que vous souhaitez transférer dans votre emplacement source. DataSync Si votre source est un compartiment S3, vous pouvez également indiquer la version d'un objet à transférer.
Rubriques
Consignes
Utilisez ces directives pour vous aider à créer un manifeste compatible avec DataSync.
Exemples de manifestes
Utilisez ces exemples pour vous aider à créer un manifeste qui fonctionne avec DataSync.
- Manifeste avec chemins complets de fichiers ou d'objets
-
L'exemple suivant montre un manifeste avec les chemins complets des fichiers ou des objets à transférer.
photos/picture1.png photos/picture2.png photos/picture3.png
- Manifeste avec uniquement des clés d'objet
-
L'exemple suivant montre un manifeste contenant des objets à transférer depuis un emplacement source Amazon S3. L'emplacement étant configuré avec le préfixe
photos
, seules les clés de l'objet sont spécifiées.picture1.png picture2.png picture3.png
- Manifeste avec chemins d'objets et version IDs
-
Les deux premières entrées de l'exemple de manifeste suivant incluent des versions d'objets Amazon S3 spécifiques à transférer.
photos/picture1.png,111111 photos/picture2.png,121212 photos/picture3.png
- Manifeste avec caractères UTF-8
-
L'exemple suivant montre un manifeste contenant des fichiers contenant des caractères UTF-8.
documents/résumé1.pdf documents/résumé2.pdf documents/résumé3.pdf
Fournir DataSync l'accès à votre manifeste
Vous avez besoin d'un rôle AWS Identity and Access Management (IAM) qui donne DataSync accès à votre manifeste dans son compartiment S3. Ce rôle doit inclure les autorisations suivantes :
-
s3:GetObject
-
s3:GetObjectVersion
Vous pouvez générer ce rôle automatiquement dans la DataSync console ou le créer vous-même.
Note
Si votre manifeste se trouve dans un autre Compte AWS format, vous devez créer ce rôle manuellement.
Lorsque vous créez ou lancez une tâche de transfert dans la console, vous DataSync pouvez créer un rôle IAM avec les s3:GetObjectVersion
autorisations s3:GetObject
et les autorisations dont vous avez besoin pour accéder à votre manifeste.
- Autorisations requises pour créer automatiquement le rôle
-
Pour créer automatiquement le rôle, assurez-vous que le rôle que vous utilisez pour accéder à la DataSync console dispose des autorisations suivantes :
-
iam:CreateRole
-
iam:CreatePolicy
-
iam:AttachRolePolicy
-
Vous pouvez créer manuellement le rôle IAM qui DataSync doit accéder à votre manifeste. Les instructions suivantes supposent que vous vous trouvez dans le même Compte AWS emplacement que celui que vous utilisez DataSync et que le compartiment S3 de votre manifeste se trouve.
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.
-
Sur la page Rôles, 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 collez l'exemple de politique suivant dans l'éditeur de politiques :
{ "Version": "2012-10-17", "Statement": [{ "Sid": "DataSyncAccessManifest", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/my-manifest.csv
" }] } -
Dans l'exemple de politique que vous venez de coller, remplacez les valeurs suivantes par les vôtres :
-
Remplacez-le par le nom du compartiment S3 qui héberge votre manifeste.amzn-s3-demo-bucket
-
Remplacez-le par le nom de fichier de votre manifeste.my-manifest.csv
-
-
Choisissez Suivant. Donnez un nom à votre politique et choisissez Create policy.
-
(Recommandé) Pour éviter le problème de confusion entre les services adjoints, procédez comme suit :
-
Sur la page de détails du rôle, choisissez l'onglet Relations de confiance. Choisissez Edit trust policy (Modifier la politique d’approbation).
-
Mettez à jour la politique de confiance en utilisant l'exemple suivant, qui inclut les clés de contexte de condition
aws:SourceAccount
globaleaws:SourceArn
et globale :{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "StringLike": { "aws:SourceArn": "arn:aws:datasync:region
:account-id
:*" } } }] }-
Remplacez chaque instance
par l' Compte AWS ID que vous utilisez DataSync.account-id
-
Remplacez-le Région AWS par celui que vous utilisez DataSync.region
-
-
Choisissez Mettre à jour une politique.
-
Vous avez créé un rôle IAM qui permet d'accéder DataSync à votre manifeste. Spécifiez ce rôle lors de la création ou du démarrage de votre tâche.
Si votre manifeste se trouve dans un compartiment S3 appartenant à un autre compartiment Compte AWS, vous devez créer manuellement le rôle IAM qui permet DataSync d'accéder au manifeste. Ensuite, dans l' Compte AWS endroit où se trouve votre manifeste, vous devez inclure le rôle dans la politique du compartiment S3.
Création du rôle
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.
-
Sur la page Rôles, 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 collez l'exemple de politique suivant dans l'éditeur de politiques :
{ "Version": "2012-10-17", "Statement": [{ "Sid": "DataSyncAccessManifest", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/my-manifest.csv
" }] } -
Dans l'exemple de politique que vous venez de coller, remplacez les valeurs suivantes par les vôtres :
-
Remplacez-le par le nom du compartiment S3 qui héberge votre manifeste.amzn-s3-demo-bucket
-
Remplacez-le par le nom de fichier de votre manifeste.my-manifest.csv
-
-
Choisissez Suivant. Donnez un nom à votre politique et choisissez Create policy.
-
(Recommandé) Pour éviter le problème de confusion entre les services adjoints, procédez comme suit :
-
Sur la page de détails du rôle, choisissez l'onglet Relations de confiance. Choisissez Edit trust policy (Modifier la politique d’approbation).
-
Mettez à jour la politique de confiance en utilisant l'exemple suivant, qui inclut les clés de contexte de condition
aws:SourceAccount
globaleaws:SourceArn
et globale :{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "StringLike": { "aws:SourceArn": "arn:aws:datasync:region
:account-id
:*" } } }] }-
Remplacez chaque instance
de par l' Compte AWS ID que vous utilisez DataSync.account-id
-
Remplacez-le Région AWS par celui que vous utilisez DataSync.region
-
-
Choisissez Mettre à jour une politique.
-
Vous avez créé le rôle IAM que vous pouvez inclure dans votre politique de compartiment S3.
Mettre à jour votre politique de compartiment S3 avec le rôle
Une fois que vous avez créé le rôle IAM, vous devez l'ajouter à la politique du compartiment S3 dans l'autre Compte AWS endroit où se trouve votre manifeste.
-
Dans le AWS Management Console, passez au compte contenant le compartiment S3 de votre manifeste.
Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/
. -
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": "DataSyncAccessManifestBucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account-id
:role/datasync-role
" }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
" } ] } -
Remplacez-le par l' Compte AWS identifiant du compte que vous utilisez DataSync .account-id
-
Remplacez-le par le rôle IAM que vous venez de créer et qui permet d'accéder DataSync à votre manifeste.datasync-role
-
Remplacez-le par le nom du compartiment S3 qui héberge votre manifeste dans l'autre Compte AWS.amzn-s3-demo-bucket
-
-
Sélectionnez Enregistrer les modifications.
Vous avez créé un rôle IAM qui permet d'accéder DataSync à votre manifeste dans l'autre compte. Spécifiez ce rôle lors de la création ou du démarrage de votre tâche.
Spécification de votre manifeste lors de la création d'une tâche
Vous pouvez spécifier le manifeste que vous DataSync souhaitez utiliser lors de la création d'une tâche.
Ouvrez la AWS DataSync console à l'adresse https://console.aws.amazon.com/datasync/
. -
Dans le volet de navigation de gauche, choisissez Tâches, puis sélectionnez Créer une tâche.
-
Configurez les emplacements source et de destination de votre tâche.
Pour plus d’informations, consultez Où puis-je transférer mes données AWS DataSync ?.
-
Pour le contenu à analyser, sélectionnez Fichiers, objets et dossiers spécifiques, puis sélectionnez Utiliser un manifeste.
-
Pour l'URI S3, choisissez votre manifeste hébergé sur un compartiment S3.
Vous pouvez également saisir l'URI (par exemple,
s3://bucket/prefix/my-manifest.csv
). -
Pour la version de l'objet, choisissez la version du manifeste que vous DataSync souhaitez utiliser.
Par défaut, DataSync utilise la dernière version de l'objet.
-
Pour le rôle d'accès au manifeste, effectuez l'une des opérations suivantes :
-
Choisissez Autogenerate pour DataSync créer automatiquement un rôle IAM doté des autorisations requises pour accéder à votre manifeste dans son compartiment S3.
-
Choisissez un rôle IAM existant qui peut accéder à votre manifeste.
Pour de plus amples informations, veuillez consulter Fournir DataSync l'accès à votre manifeste.
-
-
Configurez les autres paramètres de tâche dont vous avez besoin, puis choisissez Next.
-
Choisissez Créer tâche.
-
Copiez la
create-task
commande suivante :aws datasync create-task \ --source-location-arn arn:aws:datasync:
us-east-1
:123456789012
:location/loc-12345678abcdefgh \ --destination-location-arn arn:aws:datasync:us-east-1
:123456789012
:location/loc-abcdefgh12345678 \ --manifest-config { "Source": { "S3": { "ManifestObjectPath": "s3-object-key-of-manifest
", "BucketAccessRoleArn": "bucket-iam-role
", "S3BucketArn": "amzn-s3-demo-bucket-arn
", "ManifestObjectVersionId": "manifest-version-to-use
" } } } -
Pour le
--source-location-arn
paramètre, spécifiez l'Amazon Resource Name (ARN) de l'emplacement à partir duquel vous transférez les données. -
Pour le
--destination-location-arn
paramètre, spécifiez l'ARN de l'emplacement vers lequel vous transférez les données. -
Pour le
--manifest-config
paramètre, procédez comme suit :-
ManifestObjectPath
— Spécifiez la clé d'objet S3 de votre manifeste. -
BucketAccessRoleArn
— Spécifiez le rôle IAM qui permet d'accéder DataSync à votre manifeste dans son compartiment S3.Pour de plus amples informations, veuillez consulter Fournir DataSync l'accès à votre manifeste.
-
S3BucketArn
— Spécifiez l'ARN du compartiment S3 qui héberge votre manifeste. -
ManifestObjectVersionId
— Spécifiez la version du manifeste que vous DataSync souhaitez utiliser.Par défaut, DataSync utilise la dernière version de l'objet.
-
-
Exécutez la
create-task
commande pour créer votre tâche.
Lorsque vous êtes prêt, vous pouvez commencer votre tâche de transfert.
Spécification de votre manifeste lors du démarrage d'une tâche
Vous pouvez spécifier le manifeste que vous DataSync souhaitez utiliser lors de l'exécution d'une tâche.
Ouvrez la AWS DataSync console à l'adresse https://console.aws.amazon.com/datasync/
. -
Dans le volet de navigation de gauche, choisissez Tâches, puis choisissez la tâche que vous souhaitez démarrer.
-
Sur la page d'aperçu des tâches, choisissez Démarrer, puis sélectionnez Démarrer avec des options de remplacement.
-
Pour le contenu à analyser, sélectionnez Fichiers, objets et dossiers spécifiques, puis sélectionnez Utiliser un manifeste.
-
Pour l'URI S3, choisissez votre manifeste hébergé sur un compartiment S3.
Vous pouvez également saisir l'URI (par exemple,
s3://bucket/prefix/my-manifest.csv
). -
Pour la version de l'objet, choisissez la version du manifeste que vous DataSync souhaitez utiliser.
Par défaut, DataSync utilise la dernière version de l'objet.
-
Pour le rôle d'accès au manifeste, effectuez l'une des opérations suivantes :
-
Choisissez Autogenerate pour DataSync créer automatiquement un rôle IAM afin d'accéder à votre manifeste dans son compartiment S3.
-
Choisissez un rôle IAM existant qui peut accéder à votre manifeste.
Pour de plus amples informations, veuillez consulter Fournir DataSync l'accès à votre manifeste.
-
-
Choisissez Démarrer pour commencer votre transfert.
-
Copiez la
start-task-execution
commande suivante :aws datasync start-task-execution \ --task-arn arn:aws:datasync:
us-east-1
:123456789012
:task/task-12345678abcdefgh \ --manifest-config { "Source": { "S3": { "ManifestObjectPath": "s3-object-key-of-manifest
", "BucketAccessRoleArn": "bucket-iam-role
", "S3BucketArn": "amzn-s3-demo-bucket-arn
", "ManifestObjectVersionId": "manifest-version-to-use
" } } } -
Pour le
--task-arn
paramètre, spécifiez l'Amazon Resource Name (ARN) de la tâche que vous lancez. -
Pour le
--manifest-config
paramètre, procédez comme suit :-
ManifestObjectPath
— Spécifiez la clé d'objet S3 de votre manifeste. -
BucketAccessRoleArn
— Spécifiez le rôle IAM qui permet d'accéder DataSync à votre manifeste dans son compartiment S3.Pour de plus amples informations, veuillez consulter Fournir DataSync l'accès à votre manifeste.
-
S3BucketArn
— Spécifiez l'ARN du compartiment S3 qui héberge votre manifeste. -
ManifestObjectVersionId
— Spécifiez la version du manifeste que vous DataSync souhaitez utiliser.Par défaut, DataSync utilise la dernière version de l'objet.
-
-
Exécutez la
start-task-execution
commande pour commencer le transfert.
Limites
-
Vous ne pouvez pas utiliser un manifeste avec des filtres.
-
Vous ne pouvez pas spécifier uniquement un répertoire ou un dossier dans le but de transférer tout son contenu. Dans ces situations, pensez à utiliser un filtre d'inclusion au lieu d'un manifeste.
-
Vous ne pouvez pas utiliser l'option de tâche Conserver les fichiers supprimés (
PreserveDeletedFiles
dans l'API) pour conserver des fichiers ou des objets dans la destination qui ne figurent pas dans la source. DataSync transfère uniquement ce qui est répertorié dans votre manifeste et ne supprime rien dans la destination.
Résolution des problèmes
Si vous transférez des objets dotés d'une version spécifique IDs depuis un compartiment S3, il se peut qu'une erreur liée à HeadObject
ou s'afficheGetObjectTagging
. Par exemple, voici une erreur liée à GetObjectTagging
:
[WARN] Failed to read metadata for file
/picture1.png
(versionId:111111
): S3 Get Object Tagging Failed [ERROR] S3 Exception: op=GetObjectTaggingphotos/picture1.png
, code=403, type=15, exception=AccessDenied, msg=Access Denied req-hdrs: content-type=application/xml, x-amz-api-version=2006-03-01 rsp-hdrs: content-type=application/xml, date=Wed, 07 Feb 2024 20:16:14 GMT, server=AmazonS3, transfer-encoding=chunked, x-amz-id-2=IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km, x-amz-request-id=79104EXAMPLEB723
Si l'une de ces erreurs s'affiche, vérifiez que le rôle IAM DataSync utilisé pour accéder à votre emplacement source S3 dispose des autorisations suivantes :
-
s3:GetObjectVersion
-
s3:GetObjectVersionTagging
Si vous devez mettre à jour votre rôle avec ces autorisations, consultezCréation d'un rôle IAM pour accéder DataSync à votre position Amazon S3.
Étapes suivantes
Si ce n'est pas déjà fait, commencez votre tâche. Sinon, surveillez l'activité de votre tâche.