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
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 acerca de cómo asociar una política a un rol, consulte Actualización de los permisos de un rol en la Guía del usuario de AWS Identity and Access Management.-
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. -
Para almacenar el archivo de configuración, cree un bucket privado en Amazon S3. Para obtener más información, consulte Creación de un bucket en la Guía del usuario de Amazon Simple Storage Service.
-
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
-
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. -
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