Amazon Elastic Container Service
Manuel du développeur (Version de l'API 2014-11-13)

Spécification des données sensibles

Amazon ECS permet d'injecter des données sensibles dans vos conteneurs en stockant les données sensibles dans les paramètres Stockage de paramètres AWS Systems Manager, puis en les référençant dans votre définition de conteneur. Cette fonction est prise en charge par les tâches utilisant les types de lancement Fargate ou EC2.

Vous pouvez également référencer un secret AWS Secrets Manager dans votre paramètre. Pour plus d'informations, consultez Référencement de secrets AWS Secrets Manager à partir de paramètres Parameter Store dans le Guide de l'utilisateur AWS Systems Manager.

Pour les tâches utilisant le type de lancement EC2, cette fonction nécessite la version 1.22.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 les tâches utilisant le type de lancement Fargate, cette fonction nécessite la version 1.3.0 ou ultérieure de la plateforme. Pour plus d'informations, consultez Versions de la plateforme AWS Fargate.

Note

Cette fonction n'est pas disponible dans la région GovCloud (USA Est).

Dans votre définition de conteneur, spécifiez secrets avec le nom de la variable d'environnement à définir dans le conteneur et le nom ou l'ARN du paramètre Parameter Store AWS Systems Manager contenant les données sensibles à présenter au conteneur. Le paramètre que vous référencez peut provenir d'une région différente de celle du conteneur qui l'utilise, mais elle doit provenir du même compte.

Note

Si le paramètre Parameter Store Systems Manager existe dans la même région que la tâche que vous lancez, vous pouvez utiliser le nom ou l'ARN complet du secret. Si le paramètre existe dans une autre région, l'ARN complet doit être spécifié.

Voici un extrait de code d'une définition de tâche indiquant les paramètres requis :

"containerDefinitions": [ { "secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" } ] } ]

Autorisations IAM requises pour les secrets Amazon ECS

Pour utiliser cette fonction, vous devez avoir le rôle d'exécution de tâche Amazon ECS. Cela permet à l'agent de conteneur d'extraire les ressources AWS Systems Manager et Secrets Manager nécessaires. Pour plus d'informations, consultez Rôle IAM d'exécution de tâche Amazon ECS.

Pour fournir l'accès aux paramètres Parameters Store AWS Systems Managerque vous créez, ajoutez manuellement les autorisations suivantes en tant que stratégie en ligne au rôle d'exécution de tâche. Pour plus d'informations, consultez Ajout et suppression de stratégies IAM.

  • ssm:GetParameters—Toujours obligatoire lorsque vous référencez un paramètre Parameter Store Systems Manager dans une définition de tâche.

  • secretsmanager:GetSecretValue—Obligatoire uniquement si votre paramètre référence un secret Secrets Manager.

  • kms:Decrypt — Requis uniquement si votre clé utilise une clé KMS personnalisée et non la clé par défaut. L'ARN de votre clé personnalisée doit être ajouté en tant que ressource.

L'exemple suivant de stratégie en ligne ajoute les autorisations requises :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:region:aws_account_id:parameter/parameter_name", "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name", "arn:aws:kms:region:aws_account_id:key/key_id" ] } ] }

Création d'un paramètre Parameter Store AWS Systems Manager

Vous pouvez utiliser la console AWS Systems Manager pour créer un paramètre Parameter Store Systems Manager pour vos données sensibles.

Pour créer un paramètre Parameter Store

  1. Ouvrez la console AWS Systems Manager à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation, choisissez Parameter Store, Create Parameter (Créer un paramètre).

  3. Dans le champ Nom, saisissez une hiérarchie et un nom de paramètre. Par exemple, saisissez test/database_password.

    Note

    Si vous référencez un secret AWS Secrets Manager dans votre paramètre, le nom du paramètre doit commencer par le chemin d'accès réservé suivant : /aws/reference/secretsmanager/. Pour plus d'informations, consultez Référencement de secrets AWS Secrets Manager à partir de paramètres Parameter Store dans le Guide de l'utilisateur AWS Systems Manager.

  4. Pour Description, entrez une description facultative.

  5. Pour le Type, choisissez String, StringList ou SecureString.

    Note

    • Si vous choisissez SecureString, le champ KMS Key ID apparaît. Si vous ne fournissez pas d'ID de clé CMK KMS, un ARN CMK KMS, un nom d'alias ou un ARN d'alias, le système utilise alias/aws/ssm, qui est la clé CMK KMS par défaut pour Systems Manager. Pour éviter d'utiliser cette clé, choisissez une clé personnalisée. Pour plus d'informations, consultez Utiliser les paramètres Secure String dans le Guide de l'utilisateur AWS Systems Manager.

    • Lorsque vous créez un paramètre Secure String dans la console à l'aide du paramètre key-id avec un nom d'alias de clé principale KMS CMK personnalisée ou un ARN d'alias, vous devez spécifier le préfixe alias/ avant l'alias. Voici un exemple d'ARN :

      arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

      Voici un exemple de nom d'alias :

      alias/MyAliasName
  6. Pour Valeur, tapez une valeur. Par exemple, MyFirstParameter. Si vous choisissez SecureString, la valeur est masquée au fur et à mesure de la saisie.

  7. Choisissez Create parameter.

Création d'une définition de tâche qui fait référence à un paramètre Parameter Store AWS Systems Manager

Vous pouvez utiliser la console Amazon ECS pour créer une définition de tâche qui fait référence à un paramètre Parameter Store Systems Manager.

Pour créer une définition de tâche qui spécifie un paramètre Parameter Store

  1. Ouvrez la console Amazon ECS à l'adresse https://console.aws.amazon.com/ecs/.

  2. Dans le panneau de navigation, choisissez Définition de tâche, puis Créer une définition de tâche.

  3. Sur la page Select launch type compatibility (Sélectionner la compatibilité du type de lancement), choisissez le type de lancement de votre tâche, puis choisissez Next step (Étape suivante).

    Note

    Cette étape s'applique uniquement aux régions qui prennent actuellement en charge Amazon ECS à l'aide d'AWS Fargate. Pour plus d'informations, consultez AWS Fargate sur Amazon ECS.

  4. Pour Task Definition Name (Nom de définition de tâche), saisissez le nom de votre définition de tâche. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement.

  5. Pour Task execution role (Rôle d'exécution de tâche), sélectionnez votre rôle d'exécution de tâche existant ou choisissez Create new role (Créer un nouveau rôle) pour qu'il soit créé automatiquement. Ce rôle autorise Amazon ECS à extraire des images privées pour votre tâche. Pour plus d'informations, consultez Autorisations IAM pour l'authentification de registre privé.

    Important

    Si le champ Task execution role (Rôle d'exécution de tâche) n'apparaît pas, choisissez Configure via JSON (Configurer via JSON) et ajoutez manuellement le champ executionRoleArn pour spécifier votre rôle d'exécution de tâche. L'exemple de code suivant montre la syntaxe :

    "executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"
  6. Pour chaque conteneur devant être créé dans votre définition de tâche, effectuez les opérations suivantes :

    1. Sous Container Definitions (Définitions de conteneur), choisissez Add container (Ajouter un conteneur).

    2. Pour Container name (Nom du conteneur), saisissez le nom de votre conteneur. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement.

    3. Pour Image, saisissez le nom de l'image ou le chemin d'accès à votre image privée. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement.

    4. Développez Advanced container configuration (Configuration de conteneur avancée).

    5. Sous Environnement, pour Variables d'environnement, remplissez les champs suivants :

      1. Pour Clé, saisissez le nom de la variable d'environnement à définir dans le conteneur. Cela correspond au champ name de la section secrets d'une définition de conteneur.

      2. Pour Valeur, choisissez ValueFrom. Pour Ajouter une valeur, saisissez le nom du paramètre Parameter Store AWS Systems Manager ou l'ARN qui contient les données à présenter à votre conteneur comme variable d'environnement.

        Note

        Si le paramètre Parameter Store Systems Manager existe dans la même région que la tâche que vous lancez, vous pouvez utiliser le nom ou l'ARN complet du secret. Si le paramètre existe dans une autre région, l'ARN complet doit être spécifié.

    6. Remplissez les champs obligatoires restants et tous les champs facultatifs à utiliser dans vos définitions de conteneur. D'autres paramètres de définition de conteneur sont disponibles dans le menu Advanced container configuration (Configuration de conteneur avancée). Pour plus d'informations, consultez Paramètres de définition de tâche.

    7. Choisissez Add (Ajouter).

  7. Lorsque vos conteneurs sont ajoutés, choisissez Create (Créer).