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.
Transmettre les paramètres de Systems Manager via les variables d'environnement Amazon ECS
Amazon ECS vous permet d'injecter des données sensibles dans vos conteneurs en les stockant dans les paramètres du AWS Systems Manager Parameter Store, puis en les référençant dans la définition de votre conteneur.
Tenez compte des points suivants lorsque vous utilisez une variable d'environnement pour injecter un secret Systems Manager dans un conteneur.
-
Les données sensibles sont injectées dans votre conteneur lors du démarrage initial du conteneur. Si le secret est ensuite mis à jour ou fait l'objet d'une rotation, le conteneur ne reçoit pas la valeur mise à jour automatiquement. Vous devez lancer une nouvelle tâche ou, si votre tâche fait partie d'un service, vous pouvez mettre à jour le service et utiliser l'option Force new deployment (Forcer un nouveau déploiement) pour forcer le service à lancer une nouvelle tâche.
-
Pour les tâches Amazon ECS sur AWS Fargate, les points suivants doivent être pris en compte :
-
Pour injecter le contenu complet d'un secret en tant que variable d'environnement ou dans une configuration de journal, vous devez utiliser la version
1.3.0
ou ultérieure de la plateforme. Pour plus d'informations, veuillez consulter Versions de la plateforme Fargate pour Amazon ECS. -
Pour injecter une clé JSON spécifique ou une version d'un secret en tant que variable d'environnement ou dans une configuration de journal, vous devez utiliser la version
1.4.0
de la plateforme ou une version ultérieure (Linux) ou1.0.0
(Windows). Pour plus d'informations, veuillez consulter Versions de la plateforme Fargate pour Amazon ECS.
-
-
Pour les tâches Amazon ECS sur EC2, les points suivants doivent être pris en compte :
-
Pour injecter un secret à l'aide d'une clé JSON spécifique ou d'une version d'un secret, votre instance de conteneur doit avoir la version
1.37.0
ou ultérieure de l'agent de conteneur. Cependant, nous vous recommandons d'utiliser la dernière version de l'agent de conteneur. Pour plus d'informations sur la vérification de la version de votre agent et la mise à jour à la dernière version, consultez Mise à jour de l'agent de conteneur Amazon ECS.Pour injecter le contenu complet d'un secret en tant que variable d'environnement ou pour injecter un secret dans une configuration de journal, votre instance de conteneur doit avoir la version
1.22.0
ou ultérieure de l'agent de conteneur.
-
-
Utilisez les points de terminaison VPC de l'interface pour améliorer les contrôles de sécurité. Vous devez créer les points de terminaison VPC de l'interface pour Systems Manager. Pour plus d'informations sur le point de terminaison VPC, consultez la section Améliorer la sécurité des EC2 instances en utilisant les points de terminaison VPC pour Systems Manager dans le guide de l'utilisateur.AWS Systems Manager
-
Votre définition de tâche doit utiliser un rôle d'exécution de tâche doté des autorisations supplémentaires pour le magasin de paramètres Systems Manager. Pour de plus amples informations, veuillez consulter Rôle IAM d'exécution de tâche Amazon ECS.
-
Pour les tâches Windows configurées pour utiliser le pilote de journalisation
awslogs
, vous devez également définir la variable d'environnementECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE
sur votre instance de conteneur. Utilisez la syntaxe suivante :<powershell> [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine") Initialize-ECSAgent -Cluster <cluster name> -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' </powershell>
Création du paramètre Systems Manager
Vous pouvez utiliser la console System Manager pour créer un paramètre Systems Manager Parameter Store pour vos données sensibles. Pour plus d'informations, consultez Créer un paramètre Systems Manager (console) ou Créer un paramètre Systems Manager (AWS CLI) dans le Guide de l'utilisateur AWS Systems Manager .
Ajoutez la variable d'environnement à la définition du conteneur
Dans la définition de votre conteneur dans la définition de la tâche, spécifiez secrets
le nom de la variable d'environnement à définir dans le conteneur et l'ARN complet du paramètre Systems Manager Parameter Store contenant les données sensibles à présenter au conteneur. Pour de plus amples informations, veuillez consulter secrets.
Voici un extrait d'une définition de tâche montrant le format à utiliser lorsque vous référencez un paramètre Systems Manager Parameter Store. Si le paramètre Systems Manager Parameter Store existe dans la même région que la tâche que vous lancez, vous pouvez utiliser le nom ou l'ARN complet du paramètre. Si le paramètre existe dans une autre région, l'ARN complet doit être spécifié.
{ "containerDefinitions": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:ssm:region
:aws_account_id
:parameter/parameter_name
" }] }] }
Pour plus d'informations sur la création d'une définition de tâche avec le secret spécifié dans une variable d'environnement, consultezCréation d'une définition de tâche Amazon ECS à l'aide de la console.
Mettez à jour votre application pour récupérer par programme les secrets Systems Manager Parameter Store.
Pour récupérer les données sensibles stockées dans le paramètre Systems Manager Parameter Store, consultez les exemples de code à utiliser par Systems Manager AWS SDKs dans la bibliothèque de codes d'exemples de code du AWS SDK.