

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.

# Spécification de données sensibles à l’aide de secrets Secrets Manager dans Amazon ECS
<a name="specifying-sensitive-data-tutorial"></a>

Amazon ECS vous permet d'injecter des données sensibles dans vos conteneurs en les stockant en AWS Secrets Manager secret, puis en les référençant dans la définition de votre conteneur. Pour de plus amples informations, veuillez consulter [Transmission de données sensibles vers un conteneur Amazon ECS](specifying-sensitive-data.md).

Découvrez comment créer un secret Secrets Manager, référencer le secret dans une définition de tâche Amazon ECS, puis vérifier que cela a fonctionné en interrogeant la variable d’environnement dans un conteneur montrant le contenu du secret.

## Conditions préalables
<a name="specifying-sensitive-data-tutorial-prereqs"></a>

Le didacticiel suppose de remplir les prérequis suivants :
+ Vous devez avoir suivi les étapes de [Configurer l'utilisation d'Amazon ECS](get-set-up-for-amazon-ecs.md).
+ Votre utilisateur dispose des autorisations IAM nécessaires pour créer les ressources Secrets Manager et Amazon ECS.

## Étape 1 : Créer un secret Secrets Manager
<a name="specifying-sensitive-data-tutorial-create-secret"></a>

Vous pouvez utiliser la console Secrets Manager afin de créer un secret pour vos données sensibles. Dans ce didacticiel, nous allons créer un secret de base pour stocker un nom d'utilisateur et un mot de passe à référencer ultérieurement dans un conteneur. Pour plus d'informations, voir [Création d'un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) dans le *guide de AWS Secrets Manager l'utilisateur*.

Les ** key/value paires à stocker dans ce secret** sont la valeur de la variable d'environnement dans votre conteneur à la fin du didacticiel.

Enregistrez l'**ARN secret** pour le référencer dans votre politique IAM d'exécution de tâche et dans la définition de tâche lors des étapes ultérieures.

## Étape 2 : ajouter des autorisations secrètes au rôle d’exécution de tâche
<a name="specifying-sensitive-data-tutorial-update-iam"></a>

Pour qu’Amazon ECS puisse récupérer les données sensibles à partir de votre secret Secrets Manager, vous devez disposer des autorisations de secrets pour le rôle d’exécution des tâches. Pour de plus amples informations, veuillez consulter [Autorisations Secrets Manager ou Systems Manager](task_execution_IAM_role.md#task-execution-secrets).

## Étape 3 : Créer une définition de tâche
<a name="specifying-sensitive-data-tutorial-create-taskdef"></a>

Vous pouvez utiliser la console Amazon ECS pour créer une définition de tâche qui fait référence à un secret Secrets Manager.

**Pour créer une définition de tâche qui spécifie un secret**

Utilisez la console IAM pour mettre à jour votre rôle d'exécution de tâche avec les autorisations requises.

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans le panneau de navigation, choisissez **Task definitions** (Définition des tâches).

1. Choisissez **Create new task definition** (Créer une nouvelle définition de tâche), puis **Create new task definition with JSON** (Créer une nouvelle définition de tâche avec JSON).

1. Dans la zone de l’éditeur JSON, saisissez le texte JSON de définition de tâche suivant, en veillant à spécifier l’ARN complet du secret Secrets Manager que vous avez créée à l’étape 1 et le rôle d’exécution de tâche que vous avez mis à jour à l’étape 2. Choisissez **Enregistrer**.

1. 

   ```
   {
       "executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole",
       "containerDefinitions": [
           {
               "entryPoint": [
                   "sh",
                   "-c"
               ],
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ],
               "command": [
                   "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' >  /usr/local/apache2/htdocs/index.html && httpd-foreground\""
               ],
               "cpu": 10,
               "secrets": [
                   {
                       "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:username_value",
                       "name": "username_value"
                   }
               ],
               "memory": 300,
               "image": "public.ecr.aws/docker/library/httpd:2.4",
               "essential": true,
               "name": "ecs-secrets-container"
           }
       ],
       "family": "ecs-secrets-tutorial"
   }
   ```

1. Choisissez **Créer**.

## Étape 4 : créer un cluster
<a name="specifying-sensitive-data-tutorial-create-cluster"></a>

Vous pouvez utiliser la console Amazon ECS pour créer un cluster contenant une instance de conteneur pour exécuter la tâche. Si vous avez un cluster existant avec au moins une instance de conteneur enregistrée avec les ressources disponibles pour exécuter une instance de la définition de tâche créée pour ce didacticiel, vous pouvez passer à l'étape suivante.

Pour ce didacticiel, nous allons créer un cluster avec une instance de conteneur `t2.micro` à l'aide de l'AMI Amazon Linux 2 optimisée pour Amazon ECS.

Pour plus d’informations sur la création d’un cluster pour EC2, consultez la section [Création d’un cluster Amazon ECS pour les charges de travail Amazon EC2](create-ec2-cluster-console-v2.md).

## Étape 5 : exécuter une tâche
<a name="specifying-sensitive-data-tutorial-run-task"></a>

Vous pouvez utiliser la console Amazon ECS pour exécuter une tâche avec la définition de tâche que vous avez créée. Dans le cadre de ce didacticiel, nous allons exécuter une tâche utilisant EC2, à l’aide du cluster que nous avons créé lors de l’étape précédente. 

Pour plus d'informations sur l'exécution d’une tâche, consultez [Exécution d’une application en tant que tâche Amazon ECS](standalone-task-create.md).

## Étape 6 : Vérification
<a name="specifying-sensitive-data-tutorial-verify"></a>

Vous pouvez vérifier que toutes les étapes ont été effectuées avec succès et que la variable d'environnement a été créée correctement dans votre conteneur en suivant les étapes ci-dessous.

**Vérifier que la variable d'environnement a été créée**

1. Trouvez l'adresse IP publique ou DNS pour votre instance de conteneur.

   1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

   1. Dans le volet de navigation, choisissez **Clusters**, puis choisissez le cluster que vous avez créé.

   1. Choisissez **Infrastructure**, puis choisissez l'instance de conteneur.

   1. Enregistrez l'adresse **Public IP** (IP publique) ou **Public DNS** (DNS public) de votre instance.

1. Si vous utilisez un ordinateur MacOS ou Linux, connectez-vous à votre instance avec la commande suivante, en indiquant le chemin d'accès de votre clé privée et l'adresse publique de votre instance :

   ```
   $ ssh -i /path/to/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
   ```

   Pour plus d’informations sur l’utilisation d’un ordinateur Windows, consultez la section [Se connecter à votre instance Linux à l’aide de PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-from-windows.html) dans le *Guide de l’utilisateur Amazon EC2*.
**Important**  
Pour plus d’informations sur les problèmes que vous pouvez rencontrer lors de la connexion à votre instance, consultez la section [Résolution des problèmes de connexion à votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html) dans le *Guide de l’utilisateur Amazon EC2*.

1. Répertoriez les conteneurs en cours d'exécution sur l'instance. Notez l'ID de conteneur pour le conteneur `ecs-secrets-tutorial`.

   ```
   docker ps
   ```

1. Connectez-vous au conteneur `ecs-secrets-tutorial` à l'aide de l'ID conteneur à partir du résultat de l'étape précédente.

   ```
   docker exec -it container_ID /bin/bash
   ```

1. Utilisez la commande `echo` pour imprimer la valeur de la variable d'environnement.

   ```
   echo $username_value
   ```

   Si le didacticiel s'est correctement déroulé, vous devriez voir le résultat suivant :

   ```
   password_value
   ```
**Note**  
Sinon, vous pouvez répertorier toutes les variables d'environnement dans votre conteneur à l'aide de la commande `env` (ou `printenv`).

## Étape 7 : nettoyer
<a name="specifying-sensitive-data-tutorial-cleanup"></a>

Une fois que vous avez terminé ce didacticiel, vous devez nettoyer les ressources qui lui sont associées afin d'éviter la facturation de frais pour des ressources inutilisées.

**Nettoyer les ressources.**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans le panneau de navigation, choisissez **Clusters**.

1. Sur la page **Clusters**, choisissez le cluster.

1. Choisissez **Delete Cluster** (Supprimer le cluster). 

1. Dans la zone de confirmation, saisissez **Supprimer *cluster name***, puis choisissez **Supprimer**.

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

1. Dans le panneau de navigation, choisissez **Rôles**. 

1. Recherchez `ecsTaskExecutionRole` dans la liste des rôles et sélectionnez-le.

1. Choisissez **Autorisations**, puis le **X** à côté de **ECSSecretsTutoriel**. Cliquez sur **Supprimer**.

1. Ouvrez la console Secrets Manager à l'adresse [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Sélectionnez le secret **username\$1value** que vous avez créé, puis choisissez **Actions**, **Delete secret** (Supprimer le secret).