Almacenamiento de la configuración de instancia de contenedor de Amazon ECS en Amazon S3 - Amazon Elastic Container Service

Almacenamiento de la configuración de instancia de contenedor de Amazon ECS en Amazon S3

La configuración del agente de contenedor de Amazon ECS se controla mediante la variable de entorno. Las variantes de Linux de la AMI optimizada para Amazon ECS buscan estas variables en /etc/ecs/ecs.config cuando se inicia el agente de contenedor y el agente se configura en consecuencia. Ciertas variables de entorno inocuas, como ECS_CLUSTER, se pueden transmitir a la instancia de contenedor durante el lanzamiento a través de datos de usuario de Amazon EC2 y se pueden escribir en este archivo sin ninguna consecuencia. No obstante, otro tipo de información confidencial, como las credenciales de AWS o la variable ECS_ENGINE_AUTH_DATA, no deben pasarse nunca a una instancia en los datos de usuario ni escribirse en /etc/ecs/ecs.config de manera que les permita aparecer en un archivo .bash_history.

El almacenamiento de la información de configuración en un bucket privado de Amazon S3 y la concesión de acceso de solo lectura al rol de IAM de instancia de contenedor es una forma práctica y segura de permitir la configuración de instancia de contenedor en el momento del lanzamiento. Puede almacenar una copia del archivo ecs.config en un bucket privado. Puede utilizar los datos de usuario de Amazon EC2 para instalar la AWS CLI y copiar la información de configuración en /etc/ecs/ecs.config cuando se lance la instancia.

Para almacenar un archivo ecs.config en Amazon S3
  1. Debe conceder permisos al rol de instancia de contenedor (ecsInstanceRole) para que tenga acceso de solo lectura a Amazon S3. Para ello, asigne AmazonS3ReadOnlyAccess al rol ecsInstanceRole. Para obtener información sobre cómo adjuntar una política a un rol, consulte Modificación de una política de permisos de rol (consola) en la Guía del usuario de AWS Identity and Access Management.

  2. Cree un ecs.config archivo con variables de configuración del agente Amazon ECS válidas con el siguiente formato. En este ejemplo, se configura la autenticación de registros privados. Para obtener más información, consulte Uso de imágenes de contenedor que no sean de AWS en Amazon ECS.

    ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
    nota

    Para obtener una lista completa de las variables de configuración del agente Amazon ECS disponibles, consulte Amazon ECS Container Agent en GitHub.

  3. Para almacenar el archivo de configuración, cree un bucket privado en Amazon S3. Para obtener más información, consulte Crear un bucket en la Guía del usuario de Amazon Simple Storage Service.

  4. Cargue el archivo ecs.config en el bucket de S3. Para obtener más información, consulte Add an Object to a Bucket (Adición de un objeto a un bucket) en la Guía del usuario de Amazon Simple Storage Service.

Para cargar un archivo ecs.config desde Amazon S3 en el momento del lanzamiento
  1. Complete los procedimientos indicados anteriormente en esta sección para permitir el acceso de solo lectura de Amazon S3 a las instancias de contenedor y almacenar un archivo ecs.config en un bucket de S3 privado.

  2. Lance nuevas instancias de contenedor y utilice el siguiente script de ejemplo en Datos de usuario de EC2. El script instala la AWS CLI y copia el archivo de configuración en /etc/ecs/ecs.config. Para obtener más información, consulte Lanzamiento de una instancia de contenedor de Linux de Amazon ECS.

    #!/bin/bash yum install -y aws-cli aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config