Autenticación de registros privados para tareas - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación de registros privados para tareas

Utilice el registro privado para almacenar sus credenciales yAWS Secrets Manager, a continuación, haga referencia a ellas en la definición de la tarea. Esto proporciona una forma de hacer referencia a las imágenes de contenedores que existen en registros privados fuera de AWS que requieren autenticación en las definiciones de tareas. Esta función es compatible con tareas alojadas en Fargate, Amazon EC2 instances (Instancias de Amazon EC2) e instancias externas que utilizan Amazon ECS Anywhere.

importante

Si la definición de la tarea hace referencia a una imagen que está almacenada en Amazon ECR, este tema no es válido. Para obtener más información, consulte Utilización de imágenes de Amazon ECR con Amazon ECS en la Guía del usuario de Amazon Elastic Container Registry.

Para las tareas alojadas en instancias de Amazon EC2, esta característica requiere la versión 1.19.0 del agente de contenedor o una posterior. No obstante, recomendamos utilizar la versión del agente de contenedor más reciente. Para obtener información acerca de cómo comprobar la versión del agente y actualizar a la versión más reciente, consulte Actualización del agente de contenedor de Amazon ECS.

Para las tareas alojadas en Fargate, esta función requiere la versión de plataforma 1.2.0 o posterior. Para obtener más información, consulte AWSVersiones de la plataforma Fargate Linux.

En la definición de contenedor, especifique el objeto repositoryCredentials con los detalles del secreto que ha creado. El secreto al que hace referencia puede proceder de una Región de AWS o de otra cuenta distinta de la tarea que lo utiliza.

nota

Cuando se utiliza la API de Amazon ECS, la AWS CLI o el SDK de AWS, si el secreto existe en la misma Región de AWS que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del secreto. Si el secreto existe en otra cuenta, debe especificarse el ARN completo del secreto. Cuando se utiliza la AWS Management Console, siempre debe especificarse el ARN completo del secreto.

A continuación, se incluye un fragmento de definición de tareas que muestra los parámetros necesarios:

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]
nota

Otro método para habilitar la autenticación de registros privados consiste en utilizar las variables de entorno del agente de contenedor de Amazon ECS para la autenticación en registros privados. Este método solo se admite para tareas alojadas en Amazon EC2 instances (Instancias de Amazon EC2). Para obtener más información, consulte Autenticación de registros privados para instancias de contenedor.

Para usar el registro privado
  1. Se requiere el rol de ejecución de tareas de Amazon ECS para utilizar esta característica. Esto permite que el agente de contenedor extraiga la imagen del contenedor. Para obtener más información, consulte Rol de IAM de ejecución de tareas de Amazon ECS.

    Para proporcionar acceso a los secretos que cree, agregue los siguientes permisos como una política insertada al rol de ejecución de tareas. Para obtener más información, consulte Adición y eliminación de políticas de IAM.

    • secretsmanager:GetSecretValue

    • kms:Decrypt: solo se requiere si la clave utiliza una clave de KMS personalizada y no la clave de KMS predeterminada. Se debe agregar el nombre de recurso de Amazon (ARN) de la clave de personalizada como un recurso.

    Es siguiente es un ejemplo de política insertada que agrega los permisos.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }
  2. Utilice AWS Secrets Manager para crear un secreto para sus credenciales de registros privados. Para obtener información sobre cómo crear un secreto, consulte Crear un AWS Secrets Manager secreto en la Guía del AWS Secrets Manager usuario.

    Introduzca sus credenciales de registro privado con el siguiente formato:

    { "username" : "privateRegistryUsername", "password" : "privateRegistryPassword" }
  3. Registre una definición de tareas. Para obtener más información, consulte Creación de una definición de tareas con la consola.