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

La autenticación de registros privados para las tareas que usan AWS Secrets Manager le permite almacenar sus credenciales de forma segura y hacer referencia a ellas en su definición de 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 información, consulte Versiones de la plataforma AWS Fargate.

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.

Permisos de IAM requeridos para la autenticación de registros privados

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" ] } ] }

Uso de la autenticación de registros privados

Para crear un secreto básico

Utilice AWS Secrets Manager para crear un secreto para sus credenciales de registros privados.

  1. Abra la consola de AWS Secrets Manager en https://console.aws.amazon.com/secretsmanager/.

  2. Elija Store a new secret (Almacenar un nuevo secreto).

  3. En Select secret type (Seleccionar tipo de secreto), elija Other type of secrets (Otro tipo de secretos).

  4. Seleccione Plaintext (Texto no cifrado) y especifique sus credenciales de registros privados con el siguiente formato:

    { "username" : "privateRegistryUsername", "password" : "privateRegistryPassword" }
  5. Elija Siguiente.

  6. En Secret name (Nombre del secreto), ingrese una ruta y un nombre opcionales, como production/MyAwesomeAppSecret o development/TestSecret, y elija Next (Siguiente). Opcionalmente, puede añadir una descripción para ayudarle a recordar el objetivo de este secreto más adelante.

    El nombre del secreto debe estar formado por letras ASCII, dígitos o alguno de los siguientes caracteres: /_+=.@-.

  7. (Opcional) En este punto puede configurar la rotación para su secreto. Para este procedimiento, deje seleccionado Disable automatic rotation (Deshabilitar la rotación automática) y, a continuación, elija Next (Siguiente).

    Para obtener instrucciones sobre cómo configurar la rotación en secretos nuevos o existentes, consulte Rotación de los secretos de AWS Secrets Manager.

  8. Revise la configuración y, a continuación, elija Store secret (Almacenar secreto) para guardar todo lo que ingresó como secreto nuevo en Secrets Manager.

Registre una definición de tarea y, en Registro privado, active la autenticación del registro privado. Luego, en Secrets Manager ARN o nombre de Secrets Manager, ingrese el nombre de recurso de Amazon (ARN) del secreto. Debe utilizar un Para obtener más información, consultePermisos de IAM requeridos para la autenticación de registros privados. Para obtener más información, consulte Creación de una definición de tareas con la consola.