Configuration d'un flux de travail géré pour le déchiffrement d'un fichier - 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.

Configuration d'un flux de travail géré pour le déchiffrement d'un fichier

Ce didacticiel explique comment configurer un flux de travail géré contenant une étape de déchiffrement. Le didacticiel montre également comment télécharger un fichier chiffré dans un compartiment Amazon S3, puis afficher le fichier déchiffré dans ce même compartiment.

Note

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

Étape 1 : Configuration d'un rôle d'exécution

Créez un rôle d'exécution AWS Identity and Access Management (IAM) que Transfer Family peut utiliser pour lancer un flux de travail. Le processus de création d'un rôle d'exécution est décrit dansPolitiques IAM pour les flux de travail.

Note

Dans le cadre de la création d'un rôle d'exécution, veillez à établir une relation de confiance entre le rôle d'exécution et Transfer Family, comme décrit dansÉtape 1 : Établir une relation d'approbation.

La politique de rôle d'exécution suivante contient toutes les autorisations requises pour démarrer le flux de travail que vous créez dans ce didacticiel. Pour utiliser cet exemple de politique, remplacez user input placeholders par vos propres informations. DOC-EXAMPLE-BUCKETRemplacez-le par le nom du compartiment Amazon S3 dans lequel vous chargez vos fichiers chiffrés.

Note

Tous les flux de travail ne nécessitent pas toutes les autorisations répertoriées dans cet exemple. Vous pouvez restreindre les autorisations en fonction des types d'étapes de votre flux de travail spécifique. Les autorisations nécessaires pour chaque type d'étape prédéfini sont décrites dansUtiliser des étapes prédéfinies. Les autorisations nécessaires pour une étape personnalisée sont décrites dansAutorisations IAM pour une étape personnalisée.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "WorkflowsS3Permissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectTagging", "s3:ListBucket", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:DeleteObjectVersion", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET"] "Condition": { "StringEquals": { "s3:RequestObjectTag/Archive": "yes" } } }, { "Sid": "DecryptSecret", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*" } ] }

Étape 2 : créer un flux de travail géré

Vous devez maintenant créer un flux de travail contenant une étape de déchiffrement.

Pour créer un flux de travail contenant une étape de déchiffrement
  1. Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.

  2. Dans le volet de navigation de gauche, choisissez Workflows, puis Create Workflow.

  3. Entrez les informations suivantes :

    • Entrez une description, par exempleDecrypt workflow example.

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

  4. Pour Choisir le type d'étape, choisissez Déchiffrer le fichier, puis Suivant.

  5. Dans la boîte de dialogue Configurer les paramètres, spécifiez les éléments suivants :

    • Entrez un nom d'étape descriptif, par exemple,decrypt-step. Les espaces ne sont pas autorisés dans les noms des étapes.

    • Pour la destination des fichiers déchiffrés, choisissez Amazon S3.

    • Pour le nom du compartiment de destination, choisissez le même compartiment Amazon S3 que celui que vous avez spécifié DOC-EXAMPLE-BUCKET dans la politique IAM que vous avez créée à l'étape 1.

    • Pour le préfixe de clé de destination, entrez le nom du préfixe (dossier) dans lequel vous souhaitez stocker vos fichiers déchiffrés dans votre compartiment de destination, par exemple,. decrypted-files/

      Note

      Assurez-vous d'ajouter une barre oblique (/) à votre préfixe.

    • Pour ce didacticiel, laissez la case Overwrite existing désactivée. Lorsque ce paramètre est désactivé, si vous essayez de déchiffrer un fichier portant le même nom qu'un fichier existant, le traitement du flux de travail s'arrête et le nouveau fichier n'est pas traité.

    Choisissez Suivant pour passer à l'écran de révision.

  6. Passez en revue les détails de l'étape. Si tout est correct, choisissez Create step.

  7. Votre flux de travail ne nécessite qu'une seule étape de déchiffrement, il n'y a donc aucune étape supplémentaire à configurer. Choisissez Créer un flux de travail pour créer le nouveau flux de travail.

Notez l'ID de flux de travail de votre nouveau flux de travail. Vous aurez besoin de cet identifiant pour l'étape suivante. Ce didacticiel utilise w-1234abcd5678efghicomme exemple l'ID de flux de travail.

Étape 3 : ajouter le flux de travail à un serveur et créer un utilisateur

Maintenant que vous disposez d'un flux de travail comportant une étape de déchiffrement, vous devez l'associer à un serveur Transfer Family. Ce didacticiel explique comment associer le flux de travail à un serveur Transfer Family existant. Vous pouvez également créer un nouveau serveur à utiliser avec votre flux de travail.

Après avoir attaché le flux de travail à un serveur, vous devez créer un utilisateur capable d'accéder au serveur par SFTP et de déclencher l'exécution du flux de travail.

Pour configurer un serveur Transfer Family afin d'exécuter un flux de travail
  1. Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.

  2. Dans le volet de navigation de gauche, choisissez Servers, puis choisissez un serveur dans la liste. Assurez-vous que ce serveur prend en charge le protocole SFTP.

  3. Sur la page de détails du serveur, faites défiler la page vers le bas jusqu'à la section Détails supplémentaires, puis choisissez Modifier.

  4. Sur la page Modifier les détails supplémentaires, dans la section Flux de travail gérés, choisissez votre flux de travail et choisissez le rôle d'exécution correspondant.

  5. Faites défiler la page vers le bas, puis choisissez Enregistrer pour enregistrer vos modifications.

Notez l'ID du serveur que vous utilisez. Le nom du AWS Secrets Manager secret que vous utilisez pour stocker vos clés PGP est en partie basé sur l'ID du serveur.

Pour ajouter un utilisateur capable de déclencher le flux de travail
  1. Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.

  2. Dans le volet de navigation de gauche, choisissez Servers, puis choisissez le serveur que vous utilisez pour le flux de travail de déchiffrement.

  3. Sur la page de détails du serveur, faites défiler la page vers le bas jusqu'à la section Utilisateurs, puis choisissez Ajouter un utilisateur.

  4. Pour votre nouvel utilisateur, entrez les informations suivantes :

    • Pour Username (Nom d'utilisateur), saisissez decrypt-user.

    • Pour Rôle, choisissez un rôle d'utilisateur qui peut accéder à votre serveur.

    • Pour le répertoire personnel, choisissez le compartiment Amazon S3 que vous avez utilisé précédemment, par exempleDOC-EXAMPLE-BUCKET.

    • Pour les clés publiques SSH, collez une clé publique correspondant à une clé privée que vous possédez. Pour plus de détails, consultez Génération de clés SSH pour les utilisateurs gérés par des services.

  5. Choisissez Ajouter pour enregistrer votre nouvel utilisateur.

Notez le nom de votre utilisateur Transfer Family pour ce serveur. Le secret est partiellement basé sur le nom de l'utilisateur. Pour des raisons de simplicité, ce didacticiel utilise un secret par défaut qui peut être utilisé par n'importe quel utilisateur du serveur.

Étape 4 : Création d'une paire de clés PGP

Utilisez l'un des clients PGP pris en charge pour générer une paire de clés PGP. Ce processus est décrit en détail dansGénération de clés PGP.

Pour générer une paire de clés PGP
  1. Pour ce didacticiel, vous pouvez utiliser le client gpg (GnuPG) version 2.0.22 pour générer une paire de clés PGP qui utilise RSA comme algorithme de chiffrement. Pour ce client, exécutez la commande suivante et fournissez une adresse e-mail et un mot de passe. Vous pouvez utiliser le nom ou l'adresse e-mail de votre choix. Assurez-vous de vous souvenir des valeurs que vous utilisez, car vous devrez les saisir ultérieurement dans le didacticiel.

    gpg --gen-key
    Note

    Si vous utilisez la GnuPG version 2.3.0 ou une version plus récente, vous devez exécutergpg --full-gen-key. Lorsque vous êtes invité à saisir le type de clé à créer, choisissez RSA ou ECC. Toutefois, si vous choisissez ECC, assurez-vous de choisir l'une ou l'autre de ces options NIST ou BrainPool de choisir la courbe elliptique. Ne choisissez pasCurve 25519.

  2. Exportez la clé privée en exécutant la commande suivante. Remplacez user@example.com par l'adresse e-mail que vous avez utilisée lors de la génération de la clé.

    gpg --output workflow-tutorial-key.pgp --armor --export-secret-key user@example.com

    Cette commande exporte la clé privée vers le workflow-tutorial-key.pgp fichier. Vous pouvez nommer le fichier de sortie comme bon vous semble. Vous pouvez également supprimer le fichier de clé privée une fois que vous l'avez ajouté AWS Secrets Manager.

Étape 5 : Stocker la clé privée PGP dans AWS Secrets Manager

Vous devez stocker la clé privée dans Secrets Manager, de manière très spécifique, afin que le flux de travail puisse trouver la clé privée lorsque le flux de travail exécute une étape de déchiffrement sur un fichier téléchargé.

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.

Pour stocker une clé privée PGP dans Secrets Manager
  1. Connectez-vous à la AWS Secrets Manager console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/secretsmanager/.

  2. Dans le volet de navigation de gauche, choisissez Secrets.

  3. Sur la page Secrets, choisissez Enregistrer un nouveau secret.

  4. Sur la page Choisir un type de secret, pour Type de secret, choisissez Autre type de secret.

  5. Dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.

    • Clé — EntréePGPPrivateKey.

    • valeur — Collez le texte de votre clé privée dans le champ de valeur.

  6. Choisissez Ajouter une ligne, puis dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.

  7. Choisissez Suivant.

  8. Sur la page Configurer le secret, entrez le nom et la description de votre secret. Vous pouvez créer un secret pour un utilisateur spécifique ou un secret utilisable par tous les utilisateurs. Si l'ID de votre serveur est le même s-11112222333344445, nommez le secret comme suit.

    • Pour créer un secret par défaut pour tous les utilisateurs, nommez-leaws/transfer/s-11112222333344445/@pgp-default.

    • Pour créer un secret uniquement pour l'utilisateur que vous avez créé précédemment, nommez-leaws/transfer/s-11112222333344445/decrypt-user.

  9. Choisissez Next, puis acceptez les valeurs par défaut sur la page Configurer la rotation. Ensuite, sélectionnez Suivant.

  10. Sur la page Révision, choisissez Store pour créer et stocker le secret.

Pour plus d'informations sur l'ajout de votre clé privée PGP à Secrets Manager, voir Utiliser AWS Secrets Manager pour stocker votre clé PGP.

Étape 6 : Chiffrer un fichier

Utilisez le gpg programme pour chiffrer un fichier à utiliser dans votre flux de travail. Exécutez la commande suivante pour chiffrer un fichier :

gpg -e -r marymajor@example.com --openpgp testfile.txt

Avant d'exécuter cette commande, notez ce qui suit :

  • Pour l'-rargument, remplacez-le marymajor@example.com par l'adresse e-mail que vous avez utilisée lors de la création de la paire de clés PGP.

  • Le --openpgp drapeau est facultatif. Ce drapeau rend le fichier crypté conforme à la norme OpenPGP RFC4880.

  • Cette commande crée un fichier nommé testfile.txt.gpg au même emplacement quetestfile.txt.

Étape 7 : Exécuter le flux de travail et afficher les résultats

Pour exécuter le flux de travail, vous devez vous connecter au serveur Transfer Family avec l'utilisateur que vous avez créé à l'étape 3. Vous pouvez ensuite consulter le compartiment Amazon S3 que vous avez spécifié à l'étape 2.5, configurer les paramètres de destination pour voir le fichier déchiffré.

Pour exécuter le flux de travail de déchiffrement
  1. Ouvrez un terminal de commande.

  2. Exécutez la commande suivante, en la your-endpoint remplaçant par votre point de terminaison actuel et transfer-key par la clé privée SSH de votre utilisateur :

    sftp -i transfer-key decrypt-user@your-endpoint

    Par exemple, si la clé privée est stockée dans~/.ssh/decrypt-user, et que votre point de terminaison l'ests-11112222333344445.server.transfer.us-east-2.amazonaws.com, la commande est la suivante :

    sftp -i ~/.ssh/decrypt-user decrypt-user@s-11112222333344445.server.transfer.us-east-2.amazonaws.com
  3. Exécutez la commande pwd. En cas de succès, cette commande renverra ce qui suit :

    Remote working directory: /DOC-EXAMPLE-BUCKET/decrypt-user

    Votre répertoire reflète le nom de votre compartiment Amazon S3.

  4. Exécutez la commande suivante pour télécharger le fichier et déclencher l'exécution du flux de travail :

    put testfile.txt.gpg
  5. Pour la destination des fichiers déchiffrés, vous avez indiqué le decrypted-files/ dossier lors de la création du flux de travail. Vous pouvez maintenant accéder à ce dossier et en répertorier le contenu.

    cd ../decrypted-files/ ls

    En cas de succès, la ls commande répertorie le testfile.txt fichier. Vous pouvez télécharger ce fichier et vérifier qu'il est identique au fichier d'origine que vous avez chiffré précédemment.