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 Secrets Manager dans Amazon ECS
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 Transférer des données sensibles vers un conteneur Amazon ECS.
Apprenez à créer un secret Secrets Manager, à le référencer dans une définition de tâche Amazon ECS, 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 l'utilisation d'Amazon ECS.
-
Votre utilisateur dispose des autorisations IAM requises pour créer les ressources Secrets Manager et Amazon ECS.
É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, voir Création d'un AWS Secrets Manager secret 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 les autorisations secrètes au rôle d'exécution des tâches
Pour qu'Amazon ECS puisse 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 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.
Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2
. -
Dans le panneau de navigation, choisissez Task definitions (Définition des tâches).
-
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).
-
Dans la zone de l'éditeur JSON, entrez le texte JSON de définition de tâche suivant, en vous assurant de spécifier l'ARN complet 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 Enregistrer.
-
{ "executionRoleArn": "
arn:aws:iam::
", "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": "aws_account_id
:role/ecsTaskExecutionRolearn:aws:secretsmanager:
", "name": "username_value" } ], "memory": 300, "image": "public.ecr.aws/docker/library/httpd:2.4", "essential": true, "name": "ecs-secrets-container" } ], "family": "ecs-secrets-tutorial" }region
:aws_account_id
:secret:username_value -
Choisissez Créer.
Étape 4 : Création d'un cluster
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 le type de EC2 lancement, consultezCréation d'un cluster Amazon ECS pour le type de EC2 lancement Amazon.
Étape 5 : Exécuter une tâche
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. 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 tâche Amazon ECS.
É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
-
Trouvez l'adresse IP publique ou DNS pour votre instance de conteneur.
Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2
. -
Dans le volet de navigation, choisissez Clusters, puis choisissez le cluster que vous avez créé.
-
Choisissez Infrastructure, puis choisissez l'instance de conteneur.
-
Enregistrez l'adresse Public IP (IP publique) ou Public DNS (DNS public) de votre instance.
-
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 Connect to your Linux instance using PuTTY 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.
-
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
-
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 -
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
(ouprintenv
).
É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.
Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2
. -
Dans le panneau de navigation, choisissez Clusters.
-
Sur la page Clusters, choisissez le cluster.
-
Choisissez Delete Cluster (Supprimer le cluster).
-
Dans la zone de confirmation, saisissez Supprimer
cluster name
, puis choisissez Supprimer. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation, choisissez Roles (Rôles).
-
Recherchez
ecsTaskExecutionRole
dans la liste des rôles et sélectionnez-le. -
Choisissez Autorisations, puis le X à côté de ECSSecretsTutoriel. Sélectionnez Remove (Supprimer).
-
Ouvrez la console Secrets Manager à l'adresse https://console.aws.amazon.com/secretsmanager/
. -
Sélectionnez le secret username_value que vous avez créé, puis choisissez Actions, Delete secret (Supprimer le secret).