Rol de IAM de instancia de contenedor de Amazon ECS
Las instancias de contenedor de Amazon ECS, incluidas las instancias de Amazon EC2 y las externas, ejecutan el agente de contenedor de Amazon ECS y requieren un rol de IAM para que el servicio sepa que el agente le pertenece. Antes de lanzar instancias de contenedor y registrarlas en un clúster, debe crear un rol de IAM para que lo utilicen las instancias de contenedor. El rol se crea en la cuenta que utiliza para iniciar sesión en la consola o ejecutar los comandos AWS CLI.
importante
Si está registrando instancias externas en el clúster, el rol de IAM que utiliza también requiere permisos de Systems Manager. Para obtener más información, consulte Rol de IAM de Amazon ECS Anywhere.
Amazon ECS proporciona la política de IAM administrada AmazonEC2ContainerServiceforEC2Role
, que contiene los permisos necesarios para utilizar el conjunto completo de características de Amazon ECS. Esta política administrada se puede asociar a un rol de IAM y a las instancias de contenedor. También puede utilizar la política administrada como guía cuando crea la política personalizada que va a utilizar. El rol de instancia de contenedor proporciona los permisos necesarios para que el agente de contenedor de Amazon ECS y el daemon de Docker puedan llamar a las API de AWS en su nombre. Para obtener más información acerca de la política administrada, consulte AmazonEC2ContainerServiceforEC2Role.
Amazon ECS es compatible con el lanzamiento de instancias de contenedor con mayor densidad de ENI al usar tipos de instancias de Amazon EC2 compatibles. Al utilizar esta característica, le recomendamos crear dos roles de instancia de contenedor. Habilite la configuración de la cuenta de awsvpcTrunking
para un rol y use ese rol para las tareas que requieran el enlace troncal de ENI. Para obtener información acerca de la configuración de la cuenta de awsvpcTrunking
, consulte Acceso a las características de Amazon ECS con la configuración de la cuenta.
Creación del rol de instancia de contenedor
importante
Si está registrando instancias externas en el clúster, consulte Rol de IAM de Amazon ECS Anywhere.
Puede crear el rol manualmente y asociarlo a la política de IAM administrada para instancias de contenedor a fin de permitir que Amazon ECS agregue permisos para futuras características y mejoras a medida que se vayan introduciendo. Utilice el siguiente procedimiento para adjuntar la política de IAM administrada si es necesario.
Después de crear el rol, agregue permisos adicionales al rol para las siguientes características.
Característica | Permisos adicionales |
---|---|
Amazon ECR tiene la imagen del contenedor |
|
Configuración de Registros de CloudWatch de modo que supervise las instancias de contenedores | |
Archivos de configuración del host en un bucket de Amazon S3 |
Permisos de Amazon ECR
El rol de la instancia de contenedor de Amazon ECS que utiliza con sus instancias de contenedor debe tener los siguientes permisos de políticas de IAM para Amazon ECR.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Si usa la política administrada AmazonEC2ContainerServiceforEC2Role
para sus instancias de contenedor, el rol debe tener los permisos adecuados. Para comprobar si el rol es compatible con Amazon ECR, consulte Rol de IAM de instancia de contenedor de Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.
Acceso de solo lectura a Amazon S3
El almacenamiento de la información de configuración en un bucket privado en 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, utilizar los datos de usuario de Amazon EC2 para instalar la AWS CLI y, a continuación, copiar la información de configuración en /etc/ecs/ecs.config
cuando se lance la instancia.
Para obtener más información acerca de cómo crear un archivo ecs.config
, almacenarlo en Amazon S3 y lanzar instancias con esta configuración, consulte Almacenamiento de la configuración de instancia de contenedor de Amazon ECS en Amazon S3.
Puede utilizar el siguiente comando de la AWS CLI para conceder a Amazon S3 acceso de solo lectura para su rol de la instancia de contenedor. Sustituya ecsInstanceRole
por el nombre del rol que haya creado.
aws iam attach-role-policy \ --role-name
ecsInstanceRole
\ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
También puede utilizar la consola de IAM para agregar el acceso de solo lectura de Amazon S3 (AmazonS3ReadOnlyAccess
) a su rol. Para obtener más información, consulte Updating permissions for a role en la Guía del usuario de AWS Identity and Access Management.
Supervisión de los permisos de instancias de contenedores
Para que las instancias de contenedor puedan enviar datos de registros a CloudWatch Logs, debe crear una política de IAM que permita a las instancias de contenedor utilizar las API de CloudWatch Logs y, a continuación, asociar dicha política al rol ecsInstanceRole
.