

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
<a name="workflow-decrypt-tutorial"></a>

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](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/) PGP et. AWS Transfer Family

**Topics**
+ [Étape 1 : Configuration d'un rôle d'exécution](#create-example-execution-role)
+ [Étape 2 : créer un flux de travail géré](#create-example-workflow)
+ [Étape 3 : ajouter le flux de travail à un serveur et créer un utilisateur](#add-workflow-to-server)
+ [Étape 4 : Création d'une paire de clés PGP](#create-example-pgp-key-pair)
+ [Étape 5 : Stocker la clé privée PGP dans AWS Secrets Manager](#output-private-key-to-secrets)
+ [Étape 6 : Chiffrer un fichier](#encrypt-example-file)
+ [Étape 7 : Exécuter le flux de travail et afficher les résultats](#test-decrypt-workflow)

## Étape 1 : Configuration d'un rôle d'exécution
<a name="create-example-execution-role"></a>

Créez un rôle d'exécution Gestion des identités et des accès AWS (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 dans[Politiques IAM pour les flux de travail](workflow-execution-role.md).

**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](requirements-roles.md#establish-trust-transfer).

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. `amzn-s3-demo-bucket`Remplacez-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 dans[Utiliser des étapes prédéfinies](nominal-steps-workflow.md). Les autorisations nécessaires pour une étape personnalisée sont décrites dans[Autorisations IAM pour une étape personnalisée](custom-step-details.md#custom-step-iam).

****  

```
{
    "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:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Sid": "DecryptSecret",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:aws/transfer/*"
        }
    ]
}
```

## Étape 2 : créer un flux de travail géré
<a name="create-example-workflow"></a>

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/](https://console.aws.amazon.com/transfer/).

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

1. Entrez les détails suivants :
   + Entrez une description, par exemple**Decrypt workflow example**.
   + Dans la section **Étapes nominales**, choisissez **Ajouter une étape**.

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

1. <a name="configure-destination-details"></a>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é `amzn-s3-demo-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.

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

1. 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-1234abcd5678efghi`* comme exemple l'ID de flux de travail. 

## Étape 3 : ajouter le flux de travail à un serveur et créer un utilisateur
<a name="add-workflow-to-server"></a>

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/](https://console.aws.amazon.com/transfer/).

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

1. Sur la page de détails du serveur, faites défiler la page jusqu'à la section **Détails supplémentaires**, puis choisissez **Modifier**. 

1. 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.
   + Pour le **flux de travail pour les téléchargements complets de fichiers**, choisissez le flux de travail que vous avez créé dans[Étape 2 : créer un flux de travail géré](#create-example-workflow), par exemple,**w-1234abcd5678efghi**.
   + Pour le **rôle d'exécution des flux de travail gérés**, choisissez le rôle IAM que vous avez créé dans[Étape 1 : Configuration d'un rôle d'exécution](#create-example-execution-role).

1. 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/](https://console.aws.amazon.com/transfer/).

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

1. Sur la page de détails du serveur, faites défiler la page jusqu'à la section **Utilisateurs**, puis choisissez **Ajouter un utilisateur**. 

1. 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 exemple`amzn-s3-demo-bucket`.
   + Pour les **clés publiques SSH**, collez une clé publique correspondant à une clé privée que vous possédez. Pour en savoir plus, consultez [Génération de clés SSH pour les utilisateurs gérés par des services](sshkeygen.md).

1. 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
<a name="create-example-pgp-key-pair"></a>

Utilisez l'un des [clients PGP pris en charge](pgp-key-clients.md) pour générer une paire de clés PGP. Ce processus est décrit en détail dans[Génération de clés PGP](generate-pgp-keys.md).

**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écuter`gpg --full-gen-key`. Lorsque vous êtes invité à saisir le type de clé à créer, choisissez RSA ou ECC. Si vous choisissez **ECC**, vous pouvez choisir entre NIST BrainPool et Curve25519 pour la courbe elliptique. 

1. 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
<a name="output-private-key-to-secrets"></a>

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 la section [AWS Secrets Manager Tarification](https://aws.amazon.com/secrets-manager/pricing).

**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/](https://console.aws.amazon.com/secretsmanager/).

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

1. Sur la page **Secrets**, choisissez **Enregistrer un nouveau secret**.

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

1. Dans la section **Paires clé/valeur**, choisissez l'onglet **clé/valeur**.
   + **Clé** — Entrée**PGPPrivateKey**.
   + **valeur** — Collez le texte de votre clé privée dans le champ de valeur.

1. Choisissez **Ajouter une ligne**, puis dans la section **Paires clé/valeur**, choisissez l'onglet **clé/valeur**.
   + **Clé** — Entrée**PGPPassphrase**.
   + **valeur** — Entrez le mot de passe que vous avez utilisé lorsque vous avez généré votre paire de clés PGP. [Étape 4 : Création d'une paire de clés PGP](#create-example-pgp-key-pair)

1. Choisissez **Suivant**.

1. 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-le**aws/transfer/*s-11112222333344445*/@pgp-default**.
   + Pour créer un secret uniquement pour l'utilisateur que vous avez créé précédemment, nommez-le**aws/transfer/*s-11112222333344445*/decrypt-user**.

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

1. 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](manage-pgp-keys.md#store-pgp-key-details).

## Étape 6 : Chiffrer un fichier
<a name="encrypt-example-file"></a>

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'`-r`argument, 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](https://www.rfc-editor.org/rfc/rfc4880).
+ Cette commande crée un fichier nommé **testfile.txt.gpg** au même emplacement que**testfile.txt**.

**Important**  
Lorsque vous chiffrez des fichiers destinés à être utilisés avec AWS Transfer Family des flux de travail, assurez-vous toujours de spécifier un destinataire non anonyme à l'aide du `-r` paramètre. Le chiffrement anonyme (sans indication de destinataire) peut entraîner des échecs de déchiffrement dans le flux de travail, car le système ne sera pas en mesure d'identifier la clé à utiliser pour le déchiffrement. Les informations de débogage relatives à ce problème sont disponibles à l'adresse[Résoudre les problèmes de chiffrement des destinataires anonymes](workflow-issues.md#workflows-decrypt-anonymous). 

## Étape 7 : Exécuter le flux de travail et afficher les résultats
<a name="test-decrypt-workflow"></a>

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](#configure-destination-details) pour voir le fichier déchiffré.

**Pour exécuter le flux de travail de déchiffrement**

1. Ouvrez un terminal de commande.

1. 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'est`s-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
   ```

1. Exécutez la commande `pwd`. En cas de succès, cette commande renverra ce qui suit :

   ```
   Remote working directory: /amzn-s3-demo-bucket/decrypt-user
   ```

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

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

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