Utiliser des étapes prédéfinies - AWS Transfer Family

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.

Utiliser des étapes prédéfinies

Lorsque vous créez un flux de travail, vous pouvez choisir d'ajouter l'une des étapes prédéfinies suivantes décrites dans cette rubrique. Vous pouvez également choisir d'ajouter vos propres étapes de traitement de fichiers personnalisées. Pour plus d’informations, consultez Utiliser des étapes de traitement de fichiers personnalisées.

Copier le fichier

Une étape de copie de fichier crée une copie du fichier chargé dans un nouvel emplacement Amazon S3. Actuellement, vous ne pouvez utiliser une étape de copie de fichier qu'avec Amazon S3.

L'étape de copie de fichier suivante permet de copier les fichiers dans test le dossier du compartiment de file-test destination.

Si l'étape de copie du fichier n'est pas la première étape de votre flux de travail, vous pouvez spécifier l'emplacement du fichier. En spécifiant l'emplacement du fichier, vous pouvez copier soit le fichier utilisé à l'étape précédente, soit le fichier d'origine qui a été chargé. Vous pouvez utiliser cette fonctionnalité pour créer plusieurs copies du fichier original tout en conservant le fichier source intact pour l'archivage des fichiers et la conservation des dossiers. Pour obtenir un exemple, consultez Exemple de balise et de flux de travail de suppression.

Écran de flux de travail avec Copier le fichier créé à l'étape précédente... bouton sélectionné.

Fournissez le compartiment et les informations clés

Vous devez fournir le nom du compartiment et une clé pour la destination de l'étape de copie du fichier. La clé peut être un nom de chemin ou un nom de fichier. Le fait que la clé soit traitée comme un nom de chemin ou comme un nom de fichier dépend de la fin de la clé par la barre oblique (/).

Si le dernier caractère est/, votre fichier est copié dans le dossier et son nom ne change pas. Si le dernier caractère est alphanumérique, le fichier que vous avez chargé est renommé avec la valeur clé. Dans ce cas, si un fichier portant ce nom existe déjà, le comportement dépend du paramètre du champ Remplacer existant.

  • Si l'option Remplacer l'existant est sélectionnée, le fichier existant est remplacé par le fichier en cours de traitement.

  • Si l'option Remplacer l'existant n'est pas sélectionnée, rien ne se passe et le traitement du flux de travail s'arrête.

    Astuce

    Si des écritures simultanées sont exécutées sur le même chemin de fichier, cela peut entraîner un comportement inattendu lors du remplacement de fichiers.

Par exemple, si votre valeur clé esttest/, les fichiers que vous avez téléchargés sont copiés test dans le dossier. Si votre valeur clé esttest/today, (et que l'option Remplacer les fichiers existants est sélectionnée), chaque fichier que vous téléchargez est copié today dans un fichier nommé dans le test dossier, et chaque fichier suivant remplace le précédent.

Note

Amazon S3 prend en charge les compartiments et les objets. Il n'y a aucune hiérarchie. Cependant, vous pouvez utiliser des préfixes et des délimiteurs dans les noms de clés d'objets pour indiquer une hiérarchie et organiser vos données de la même manière que les dossiers.

Utiliser une variable nommée dans une étape de copie de fichier

Lors d'une étape de copie de fichier, vous pouvez utiliser une variable pour copier dynamiquement vos fichiers dans des dossiers spécifiques à l'utilisateur. Actuellement, vous pouvez utiliser ${transfer:UserName} ou ${transfer:UploadDate} en tant que variable pour copier des fichiers vers un emplacement de destination pour l'utilisateur donné qui télécharge les fichiers, ou en fonction de la date actuelle.

Dans l'exemple suivant, si l'utilisateur richard-roe télécharge un fichier, celui-ci est copié dans le file-test2/richard-roe/processed/ dossier. Si l'utilisateur mary-major télécharge un fichier, celui-ci est copié dans le file-test2/mary-major/processed/ dossier.

Écran de paramètres pour une étape de copie, montrant le compartiment et la clé, paramétrés à l'aide de. UserName

De même, vous pouvez l'utiliser ${transfer:UploadDate} comme variable pour copier des fichiers vers un emplacement de destination nommé d'après la date actuelle. Dans l'exemple suivant, si vous définissez la destination ${transfer:UploadDate}/processed sur le 1er février 2022, les fichiers téléchargés sont copiés dans le file-test2/2022-02-01/processed/ dossier.

Écran de paramètres pour une étape de copie, montrant le compartiment et la clé, paramétrés à l'aide de. UploadDate

Vous pouvez également utiliser ces deux variables ensemble, en combinant leurs fonctionnalités. Par exemple :

  • Vous pouvez définir le préfixe de la clé de destination surfolder/${transfer:UserName}/${transfer:UploadDate}/, ce qui créerait des dossiers imbriqués, par exemple. folder/marymajor/2023-01-05/

  • Vous pouvez définir le préfixe de la clé de destination surfolder/${transfer:UserName}-${transfer:UploadDate}/, pour concaténer les deux variables, par exemple. folder/marymajor-2023-01-05/

Autorisations IAM pour l'étape de copie

Pour qu'une étape de copie réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::destination-bucket-name" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }
Note

L's3:ListBucketautorisation n'est nécessaire que si vous ne sélectionnez pas Remplacer l'existant. Cette autorisation vérifie dans votre compartiment si un fichier portant le même nom existe déjà. Si vous avez sélectionné Remplacer l'existant, le flux de travail n'a pas besoin de vérifier la présence du fichier et peut simplement l'écrire.

Si vos fichiers Amazon S3 comportent des balises, vous devez ajouter une ou deux autorisations à votre politique IAM.

  • Ajoutez s3:GetObjectTagging un fichier Amazon S3 qui n'est pas versionné.

  • Ajoutez s3:GetObjectVersionTagging un fichier Amazon S3 versionné.

Déchiffrer le fichier

Le blog sur le AWS stockage contient un article qui décrit comment simplement déchiffrer des fichiers sans écrire de code à l'aide des flux de travail Transfer Family Managed, crypter et déchiffrer des fichiers avec PGP et. AWS Transfer Family

Utilisez le déchiffrement PGP dans votre flux de travail

Transfer Family dispose d'un support intégré pour le déchiffrement de Pretty Good Privacy (PGP). Vous pouvez utiliser le déchiffrement PGP sur les fichiers chargés via SFTP, FTPS ou FTP vers Amazon Simple Storage Service (Amazon S3) ou Amazon Elastic File System (Amazon EFS).

Pour utiliser le déchiffrement PGP, vous devez créer et stocker les clés privées PGP qui seront utilisées pour le déchiffrement de vos fichiers. Vos utilisateurs peuvent ensuite chiffrer les fichiers à l'aide des clés de chiffrement PGP correspondantes avant de les télécharger sur votre serveur Transfer Family. Après avoir reçu les fichiers chiffrés, vous pouvez les déchiffrer dans votre flux de travail. Pour voir un didacticiel détaillé, consultez Configuration d'un flux de travail géré pour le déchiffrement d'un fichier.

Pour utiliser le déchiffrement PGP dans votre flux de travail
  1. Identifiez un serveur Transfer Family pour héberger votre flux de travail ou créez-en un nouveau. Vous devez avoir l'ID du serveur avant de pouvoir stocker vos clés PGP AWS Secrets Manager avec le nom secret correct.

  2. Enregistrez votre clé PGP AWS Secrets Manager sous le nom secret requis. Pour plus de détails, consultez Gérer les clés PGP. Les flux de travail peuvent localiser automatiquement la clé PGP appropriée à utiliser pour le déchiffrement en fonction du nom du secret dans Secrets Manager.

    Note

    Lorsque vous stockez des secrets dans Secrets Manager, des frais Compte AWS vous sont facturés. Pour plus d’informations sur la tarification, consultez Tarification AWS Secrets Manager.

  3. Chiffrez un fichier à l'aide de votre paire de clés PGP. (Pour obtenir la liste des clients pris en charge, voirClients PGP pris en charge.) Si vous utilisez la ligne de commande, exécutez la commande suivante. Pour utiliser cette commande, remplacez-la username@example.com par l'adresse e-mail que vous avez utilisée pour créer la paire de clés PGP. testfile.txtRemplacez-le par le nom du fichier que vous souhaitez chiffrer.

    gpg -e -r username@example.com testfile.txt
  4. Téléchargez le fichier crypté sur votre serveur Transfer Family.

  5. Configurez une étape de déchiffrement dans votre flux de travail. Pour plus d’informations, consultez Ajouter une étape de déchiffrement.

Ajouter une étape de déchiffrement

Une étape de déchiffrement déchiffre un fichier chiffré qui a été chargé sur Amazon S3 ou Amazon EFS dans le cadre de votre flux de travail. Pour plus de détails sur la configuration du déchiffrement, consultezUtilisez le déchiffrement PGP dans votre flux de travail.

Lorsque vous créez votre étape de déchiffrement pour un flux de travail, vous devez spécifier la destination des fichiers déchiffrés. Vous devez également indiquer si vous souhaitez remplacer les fichiers existants si un fichier existe déjà à l'emplacement de destination. Vous pouvez surveiller les résultats du flux de déchiffrement et obtenir des journaux d'audit pour chaque fichier en temps réel à l'aide d'Amazon CloudWatch Logs.

Une fois que vous avez choisi le type de fichier de déchiffrement pour votre étape, la page Configurer les paramètres apparaît. Renseignez les valeurs de la section Configurer les paramètres de déchiffrement PGP.

Les options disponibles sont les suivantes :

  • Nom de l'étape : entrez un nom descriptif pour l'étape.

  • Emplacement du fichier — En spécifiant l'emplacement du fichier, vous pouvez déchiffrer soit le fichier utilisé à l'étape précédente, soit le fichier d'origine qui a été chargé.

    Note

    Ce paramètre n'est pas disponible s'il s'agit de la première étape du flux de travail.

  • Destination des fichiers déchiffrés : choisissez un compartiment Amazon S3 ou un système de fichiers Amazon EFS comme destination du fichier déchiffré.

    • Si vous choisissez Amazon S3, vous devez fournir un nom de compartiment de destination et un préfixe de clé de destination. Pour paramétrer le préfixe de clé de destination par nom d'utilisateur, ${transfer:UserName} entrez le préfixe de clé de destination. De même, pour paramétrer le préfixe de clé de destination par date de téléchargement, ${Transfer:UploadDate} entrez le préfixe de clé de destination.

    • Si vous choisissez Amazon EFS, vous devez fournir un système de fichiers et un chemin de destination.

    Note

    L'option de stockage que vous choisissez ici doit correspondre au système de stockage utilisé par le serveur Transfer Family auquel ce flux de travail est associé. Dans le cas contraire, vous recevrez un message d'erreur lorsque vous tenterez d'exécuter ce flux de travail.

  • Remplacer un fichier existant : si vous chargez un fichier et qu'un fichier portant le même nom de fichier existe déjà à destination, le comportement dépend de la définition de ce paramètre :

    • Si l'option Remplacer l'existant est sélectionnée, le fichier existant est remplacé par le fichier en cours de traitement.

    • Si l'option Remplacer l'existant n'est pas sélectionnée, rien ne se passe et le traitement du flux de travail s'arrête.

      Astuce

      Si des écritures simultanées sont exécutées sur le même chemin de fichier, cela peut entraîner un comportement inattendu lors du remplacement de fichiers.

La capture d'écran suivante montre un exemple des options que vous pouvez choisir pour l'étape de déchiffrement du fichier.

La AWS Transfer Family console, qui affiche la section Configurer les paramètres de déchiffrement PGP avec des exemples de valeurs.

Autorisations IAM pour l'étape de déchiffrement

Pour qu'une étape de déchiffrement réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::destination-bucket-name" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }, { "Sid": "Decrypt", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*" }
Note

L's3:ListBucketautorisation n'est nécessaire que si vous ne sélectionnez pas Remplacer l'existant. Cette autorisation vérifie dans votre compartiment si un fichier portant le même nom existe déjà. Si vous avez sélectionné Remplacer l'existant, le flux de travail n'a pas besoin de vérifier la présence du fichier et peut simplement l'écrire.

Si vos fichiers Amazon S3 comportent des balises, vous devez ajouter une ou deux autorisations à votre politique IAM.

  • Ajoutez s3:GetObjectTagging un fichier Amazon S3 qui n'est pas versionné.

  • Ajoutez s3:GetObjectVersionTagging un fichier Amazon S3 versionné.

Fichier de balises

Pour étiqueter les fichiers entrants en vue d'un traitement ultérieur, utilisez une étape de balise. Entrez la valeur de la balise que vous souhaitez attribuer aux fichiers entrants. Actuellement, l'opération de balise n'est prise en charge que si vous utilisez Amazon S3 pour le stockage de votre serveur Transfer Family.

L'exemple d'étape de balise suivant affecte scan_outcome et clean en tant que clé et valeur de balise, respectivement.

Écran des flux de travail présentant les détails d'une étape de balisage.

Pour qu'une étape de balise réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

{ "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }
Note

Si votre flux de travail contient une étape de balise qui s'exécute avant une étape de copie ou de déchiffrement, vous devez ajouter une ou deux autorisations à votre politique IAM.

  • Ajoutez s3:GetObjectTagging un fichier Amazon S3 qui n'est pas versionné.

  • Ajoutez s3:GetObjectVersionTagging un fichier Amazon S3 versionné.

Supprimer le fichier

Pour supprimer un fichier traité d'une étape précédente du flux de travail ou pour supprimer le fichier initialement chargé, utilisez une étape de suppression de fichier.

Écran des flux de travail présentant les détails d'une étape de suppression.

Pour qu'une étape de suppression réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

{ "Sid": "Delete", "Effect": "Allow", "Action": [ "s3:DeleteObjectVersion", "s3:DeleteObject" ], "Resource": "arn:aws:secretsmanager:region:account-ID:secret:aws/transfer/*" }

Variables nommées pour les flux de travail

Pour les étapes de copie et de déchiffrement, vous pouvez utiliser une variable pour effectuer des actions de manière dynamique. Actuellement, AWS Transfer Family prend en charge les variables nommées suivantes.

  • ${transfer:UserName}À utiliser pour copier ou déchiffrer des fichiers vers une destination en fonction de l'utilisateur qui télécharge les fichiers.

  • ${transfer:UploadDate}À utiliser pour copier ou déchiffrer des fichiers vers un emplacement de destination en fonction de la date actuelle.

Exemple de balise et de flux de travail de suppression

L'exemple suivant illustre un flux de travail qui balise les fichiers entrants devant être traités par une application en aval, telle qu'une plateforme d'analyse de données. Après avoir balisé le fichier entrant, le flux de travail supprime le fichier initialement chargé pour économiser sur les coûts de stockage.

Console
Exemple de processus de balisage et de déplacement
  1. Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.

  2. Dans le volet de navigation de gauche, sélectionnez Workflows.

  3. Sur la page Flux de travail, choisissez Créer un flux de travail.

  4. Sur la page Créer un flux de travail, entrez une description. Cette description apparaît sur la page Workflows.

  5. Ajoutez la première étape (copie).

    1. Dans la section Étapes nominales, choisissez Ajouter une étape.

    2. Choisissez Copier le fichier, puis Next.

    3. Entrez le nom de l'étape, puis sélectionnez un compartiment de destination et un préfixe de clé.

      Écran des flux de travail présentant les détails d'une étape de copie, avec le compartiment de destination et le préfixe de clé.
    4. Choisissez Next, puis passez en revue les détails de l'étape.

    5. Choisissez Créer une étape pour ajouter l'étape et continuer.

  6. Ajoutez la deuxième étape (tag).

    1. Dans la section Étapes nominales, choisissez Ajouter une étape.

    2. Choisissez Tag file, puis Next.

    3. Entrez le nom de l'étape.

    4. Pour Emplacement du fichier, sélectionnez Marquer le fichier créé à l'étape précédente.

    5. Saisissez une Key (Clé) et une Value (Valeur).

      L'écran de configuration d'une étape du flux de travail de balisage, avec le bouton radio Marquer le fichier créé à partir de l'étape précédente sélectionné.
    6. Choisissez Next, puis passez en revue les détails de l'étape.

    7. Choisissez Créer une étape pour ajouter l'étape et continuer.

  7. Ajoutez la troisième étape (supprimer).

    1. Dans la section Étapes nominales, choisissez Ajouter une étape.

    2. Choisissez Supprimer le fichier, puis Suivant.

      L'écran de configuration d'une étape de suppression du flux de travail, avec le bouton radio Supprimer le fichier source d'origine sélectionné.
    3. Entrez le nom de l'étape.

    4. Pour Emplacement du fichier, sélectionnez Supprimer le fichier source d'origine.

    5. Choisissez Next, puis passez en revue les détails de l'étape.

    6. Choisissez Créer une étape pour ajouter l'étape et continuer.

  8. Passez en revue la configuration du flux de travail, puis choisissez Créer un flux de travail.

CLI
Exemple de processus de balisage et de déplacement
  1. Enregistrez le code suivant dans un fichier ; par exemple,tagAndMoveWorkflow.json. Remplacez chaque user input placeholder par vos propres informations.

    [ { "Type": "COPY", "CopyStepDetails": { "Name": "CopyStep", "DestinationFileLocation": { "S3FileLocation": { "Bucket": "DOC-EXAMPLE-BUCKET", "Key": "test/" } } } }, { "Type": "TAG", "TagStepDetails": { "Name": "TagStep", "Tags": [ { "Key": "name", "Value": "demo" } ], "SourceFileLocation": "${previous.file}" } }, { "Type": "DELETE", "DeleteStepDetails":{ "Name":"DeleteStep", "SourceFileLocation": "${original.file}" } } ]

    La première étape consiste à copier le fichier chargé vers un nouvel emplacement Amazon S3. La deuxième étape ajoute une balise (paire clé-valeur) au fichier (previous.file) qui a été copié vers le nouvel emplacement. Enfin, la troisième étape supprime le fichier d'origine (original.file).

  2. Créez un flux de travail à partir du fichier enregistré. Remplacez chaque user input placeholder par vos propres informations.

    aws transfer create-workflow --description "short-description" --steps file://path-to-file --region region-ID

    Par exemple :

    aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
    Note

    Pour plus de détails sur l'utilisation de fichiers pour charger des paramètres, consultez Comment charger des paramètres à partir d'un fichier.

  3. Mettez à jour un serveur existant.

    Note

    Cette étape suppose que vous possédez déjà un serveur Transfer Family et que vous souhaitez y associer un flux de travail. Si ce n’est pas le cas, voyez Configuration d'un point de terminaison de serveur SFTP, FTPS ou FTP. Remplacez chaque user input placeholder par vos propres informations.

    aws transfer update-server --server-id server-ID --region region-ID --workflow-details '{"OnUpload":[{ "WorkflowId": "workflow-ID","ExecutionRole": "execution-role-ARN"}]}'

    Par exemple :

    aws transfer update-server --server-id s-1234567890abcdef0 --region us-east-2 --workflow-details '{"OnUpload":[{ "WorkflowId": "w-abcdef01234567890","ExecutionRole": "arn:aws:iam::111111111111:role/nikki-wolf-execution-role"}]}'