Spécification de données sensibles à l'aide des secrets de Secrets Manager sur Amazon ECS - Amazon Elastic Container Service

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 des secrets de Secrets Manager sur Amazon ECS

Amazon vous ECS 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 Transférer des données sensibles vers un ECS conteneur Amazon.

Apprenez à créer un secret Secrets Manager, à le référencer dans une définition de ECS tâche Amazon, puis à vérifier qu'il fonctionne en interrogeant la variable d'environnement dans un conteneur affichant le contenu du secret.

Prérequis

Le didacticiel suppose de remplir les prérequis suivants :

  • Vous devez avoir suivi les étapes de Configurer pour utiliser Amazon ECS.

  • Votre utilisateur dispose des IAM autorisations requises pour créer le Secrets Manager et les ECS ressources Amazon.

Étape 1 : Créer un secret Secrets Manager

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, consultez Didacticiel : création et récupération d'un secret dans le Guide de l'utilisateur AWS Secrets Manager .

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

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

Étape 2 : ajouter les autorisations secrètes au rôle d'exécution des tâches

Pour qu'Amazon puisse ECS récupérer les données sensibles de votre secret Secrets Manager, vous devez disposer des autorisations relatives aux secrets pour le rôle d'exécution de la tâche. Pour de plus amples informations, veuillez consulter Permissions de Secrets Manager ou de Systems Manager.

Étape 3 : Créer une définition de tâche

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

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

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

  1. Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2.

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

  3. Choisissez Créer une nouvelle définition de tâche, Créer une nouvelle définition de tâche avec JSON.

  4. Dans la zone de l'JSONéditeur, entrez le JSON texte de définition de tâche suivant, en vous assurant de spécifier l'intégralité ARN du secret Secrets Manager que vous avez créé à l'étape 1 et le rôle d'exécution de tâche que vous avez mis à jour à l'étape 2. Choisissez Save (Enregistrer).

  5. { "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": "httpd:2.4", "essential": true, "name": "ecs-secrets-container" } ], "family": "ecs-secrets-tutorial" }
  6. Sélectionnez Create (Créer).

Étape 4 : Création d'un cluster

Vous pouvez utiliser la ECS console Amazon pour créer un cluster contenant une instance de conteneur sur laquelle 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 t2.micro conteneur à l'aide d'Amazon Linux 2 ECS AMI optimisé pour Amazon.

Pour plus d'informations sur la création d'un cluster pour le type de EC2 lancement, consultezCréation d'un ECS cluster Amazon pour le type de EC2 lancement Amazon.

Étape 5 : Exécuter une tâche

Vous pouvez utiliser la ECS console Amazon pour exécuter une tâche à l'aide de la définition de tâche que vous avez créée. Pour ce didacticiel, nous allons exécuter une tâche en utilisant le type de EC2 lancement, en utilisant le cluster que nous avons créé à 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 ECS tâche Amazon.

Étape 6 : Vérification

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 ou l'DNSadresse publique de votre instance de conteneur.

    1. Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2.

    2. Dans le volet de navigation, choisissez Clusters, puis sélectionnez le cluster que vous avez créé.

    3. Choisissez Infrastructure, puis choisissez l'instance de conteneur.

    4. Enregistrez l'adresse IP publique ou publique DNS de votre instance.

  2. 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 Connexion à votre instance Linux depuis Windows à l'aide de PU TTY dans le guide de EC2 l'utilisateur Amazon.

    Important

    Pour plus d'informations sur les problèmes rencontrés lors de la connexion à votre instance, consultez la section Résolution des problèmes liés à la connexion à votre instance dans le guide de EC2 l'utilisateur Amazon.

  3. 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
  4. 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
  5. 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

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.

  2. Dans le panneau de navigation, choisissez Clusters.

  3. Sur la page Clusters, choisissez le cluster.

  4. Choisissez Delete Cluster (Supprimer le cluster).

  5. Dans le champ de confirmation, saisissez Supprimer cluster name, puis choisissez Supprimer.

  6. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  7. Dans le panneau de navigation, choisissez Roles (Rôles).

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

  9. Choisissez Autorisations, puis le X à côté de ECSSecretsTutorial. Sélectionnez Remove (Supprimer).

  10. Ouvrez la console Secrets Manager à l'adresse https://console.aws.amazon.com/secretsmanager/.

  11. Sélectionnez le secret username_value que vous avez créé, puis choisissez Actions, Delete secret (Supprimer le secret).