Puntos de enlace de VPC de la interfaz Amazon ECR ()AWS PrivateLink - Amazon ECR

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.

Puntos de enlace de VPC de la interfaz Amazon ECR ()AWS PrivateLink

Para mejorar la posición de seguridad de su VPC, configure Amazon ECR para que utilice un punto de enlace de la VPC de tipo interfaz. Los puntos de enlace de VPC funcionan con una tecnología que le permite acceder de forma privada a las API de Amazon ECR a través de direcciones IP privadas. AWS PrivateLink AWS PrivateLink restringe todo el tráfico de red entre la VPC y Amazon ECR a la red de Amazon. No necesita una gateway de Internet, un dispositivo NAT ni una gateway privada virtual.

Para obtener más información sobre AWS PrivateLink los puntos de enlace de VPC, consulte los puntos de enlace de VPC en la Guía del usuario de Amazon VPC.

Consideraciones para los puntos de enlace de la VPC de Amazon ECR

Antes de configurar los puntos de enlace de la VPC para Amazon ECR, debe tener en cuenta las consideraciones siguientes.

  • Para permitir que las tareas de Amazon ECS alojadas en instancias de Amazon EC2 extraigan imágenes privadas de Amazon ECR, asegúrese de crear también los puntos de enlace de la VPC de tipo interfaz para Amazon ECS. Para obtener más información, consulte Interface VPC Endpoints (AWS PrivateLink) en la Guía para desarrolladores de Amazon Elastic Container Service.

    importante

    Las tareas de Amazon ECS alojadas en Fargate no requieren los puntos de enlace de la VPC de tipo interfaz de Amazon ECS.

  • Las tareas de Amazon ECS alojadas en Fargate que utilizan la versión 1.3.0 o una anterior de la plataforma de Linux solo requieren el punto de conexión de VPC de Amazon ECR com.amazonaws.región.ecr.dkr y el punto de conexión de puerta de enlace de Amazon S3 para aprovechar esta característica.

  • Las tareas de Amazon ECS alojadas en Fargate con la versión 1.4.0 o posterior de la plataforma de Linux requieren los puntos de conexión de VPC de Amazon ECR com.amazonaws.region.ecr.dkr y com.amazonaws.region.ecr.api , así como el punto de conexión de puerta de enlace de Amazon S3, para aprovechar esta característica.

  • Las tareas de Amazon ECS alojadas en Fargate con la versión 1.0.0 o posterior de la plataforma de Windows requieren los puntos de conexión de VPC de Amazon ECR com.amazonaws.region.ecr.dkr y com.amazonaws.region.ecr.api , así como el punto de conexión de puerta de enlace de Amazon S3, para aprovechar esta característica.

  • Las tareas de Amazon ECS alojadas en Fargate que extraen imágenes de contenedor de Amazon ECR pueden restringir el acceso a la VPC específica que utilizan las tareas y al punto de enlace de la VPC que utiliza el servicio. Para ello, se agregan claves de condición al rol de IAM de ejecución de tareas para la tarea. Para obtener más información, consulte Permisos de IAM opcionales para tareas de Fargate que extraen imágenes de Amazon ECR sobre puntos de enlace de interfaz en la Guía para desarrolladores de Amazon Elastic Container Service.

  • Las tareas de Amazon ECS alojadas en Fargate que extraen imágenes de contenedores de Amazon ECR y que también utilizan el controlador de registro para enviar información de awslogs registro a CloudWatch Logs requieren el punto de enlace de CloudWatch VPC de Logs. Para obtener más información, consulte Cree el punto final de CloudWatch Logs.

  • El grupo de seguridad asociado al punto de conexión de la VPC debe permitir las conexiones entrantes en el puerto 443 desde la subred privada de la VPC.

  • Los puntos de enlace de la VPC no admiten las solicitudes entre regiones. Asegúrese de crear los puntos de enlace de la VPC en la misma región en la que tiene previsto enviar llamadas a la API de Amazon ECR.

  • Los puntos de conexión de la VPC actualmente no admiten los repositorios públicos de Amazon ECR. Considere utilizar una regla de caché de extracción para alojar la imagen pública en un repositorio privado en la misma región que el punto de conexión de VPC. Para obtener más información, consulte Sincronice un registro anterior con un registro privado de Amazon ECR.

  • Los puntos de enlace de VPC solo admiten el DNS AWS proporcionado a través de Amazon Route 53. Si desea utilizar su propio DNS, puede utilizar el enrutamiento de DNS condicional. Para obtener más información, consulte Conjuntos de opciones de DHCP en la Guía del usuario de Amazon VPC.

  • Si los contenedores tienen conexiones existentes a Amazon S3, sus conexiones podrían interrumpirse brevemente al agregar el punto de enlace de gateway de Amazon S3. Si desea evitar dicha interrupción, cree una nueva VPC que utilice el punto de enlace de gateway de Amazon S3 y luego migre el clúster de Amazon ECS y sus contenedores a la nueva VPC.

  • Cuando se extrae una imagen mediante una regla de caché de extracción por primera vez, si ha configurado Amazon ECR para usar un punto de conexión de VPC de interfaz mediante AWS PrivateLink , entonces necesita crear una subred pública en la misma VPC, con una puerta de enlace NAT y, luego, dirigir todo el tráfico saliente a Internet desde su subred privada a la puerta de enlace NAT para que funcione la extracción. Las extracciones de imágenes posteriores no requieren esto. Para obtener más información, consulte Escenario: acceso a Internet desde una subred privada en la Guía del usuario de Amazon Virtual Private Cloud.

Consideraciones sobre las imágenes de Windows

Las imágenes basadas en el sistema operativo Windows incluyen artefactos cuya distribución está restringida por licencia. De forma predeterminada, al insertar imágenes de Windows a un repositorio de Amazon ECR, las capas que incluyen estos artefactos no se insertan, ya que se consideran capas externas. Cuando Microsoft proporciona los artefactos, las capas externas se recuperan de la infraestructura de Microsoft Azure. Por este motivo, para habilitar a los contenedores a de modo que puedan extraer estas capas externas de Azure, además de crear los puntos de enlace de la VPC se necesitarán completar más pasos.

Es posible anular este comportamiento al insertar imágenes de Windows a Amazon ECR mediante la marca --allow-nondistributable-artifacts en el daemon de Docker. Cuando se habilita, esta marca insertará las capas con licencia a Amazon ECR, lo que permite extraer estas imágenes de Amazon ECR a través del punto de enlace de la VPC sin que se necesite acceso adicional a Azure.

importante

El uso de la marca --allow-nondistributable-artifacts no excluye su obligación de cumplir con los términos de la licencia de imagen base de contenedor de Windows; no puede publicar contenido de Windows para redistribución pública o de terceros. Se permite el uso dentro de su propio entorno.

Para habilitar el uso de esta marca para la instalación de Docker, debe modificar el archivo de configuración del daemon de Docker que, en función de la instalación de Docker, normalmente se puede configurar en el menú de configuración o preferencias de la sección Docker Engine (Motor de Docker) o editando el archivo C:\ProgramData\docker\config\daemon.json directamente.

A continuación, mostramos un ejemplo de la configuración requerida. Reemplace el valor por el URI del repositorio al que está enviando imágenes.

{ "allow-nondistributable-artifacts": [ "111122223333.dkr.ecr.us-west-2.amazonaws.com" ] }

Después de modificar el archivo de configuración del daemon de Docker, debe reiniciar este daemon antes de intentar insertar la imagen. Confirme que la inserción ha funcionado verificando que la capa base se ha integrado con su repositorio.

nota

Las capas base de las imágenes de Windows son grandes. El tamaño de la capa se traducirá en un mayor tiempo de inserción y en que estas imágenes conllevarán costos de almacenamiento adicionales en Amazon ECR. Por estas razones, se recomienda utilizar esta opción únicamente cuando sea estrictamente necesario reducir los tiempos de compilación y los costos de almacenamiento continuos. Por ejemplo, la imagen mcr.microsoft.com/windows/servercore tiene un tamaño aproximado de 1,7 GiB cuando se comprime en Amazon ECR.

Creación de puntos de enlace de la VPC para Amazon ECR

Para crear los puntos de enlace de la VPC para el servicio Amazon ECR, utilice el procedimiento Creación de un punto de enlace de interfaz en la Guía del usuario de Amazon VPC.

Las tareas de Amazon ECS alojadas en instancias de Amazon EC2 requieren los puntos de enlace de Amazon ECR y el punto de enlace de gateway de Amazon S3.

Las tareas de Amazon ECS alojadas en Fargate que utilizan la versión de la plataforma 1.4.0, o una posterior, requieren los puntos de enlace de la VPC de Amazon ECR y los de gateway de Amazon S3.

Las tareas de Amazon ECS alojadas en Fargate que utilizan la versión de la plataforma 1.3.0, o una anterior, solo requieren el punto de enlace de la VPC de Amazon ECR com.amazonaws.region.ecr.dkr y los puntos de enlace de gateway de Amazon S3.

nota

El orden en el que se crean los puntos de enlace no importa.

com.amazonaws.region.ecr.dkr

Este punto de conexión se utiliza para las API de Docker Registry. Los comandos del cliente de Docker como push y pull utilizan este punto de conexión.

Al crear este punto de enlace, debe habilitar un nombre de host de DNS privado. Para ello, asegúrese de que la opción Enable Private DNS Name (Habilitar nombre de DNS privado) está seleccionada en la consola de Amazon VPC al crear el punto de enlace de la VPC.

com.amazonaws.region.ecr.api
nota

La región especificada representa el identificador de región de una AWS región compatible con Amazon ECR, como us-east-2 la región EE.UU. Este (Ohio).

Este punto de enlace se utiliza para las llamadas a la API de Amazon ECR. Acciones de la API como DescribeImages y CreateRepository van a este punto de conexión.

Cuando se crea este punto de enlace, tiene la opción de habilitar un nombre de host DNS privado. Habilite esta configuración seleccionando Enable Private DNS Name (Habilitar nombre de DNS privado) en la consola de VPC al crear el punto de conexión de la VPC. Si habilitas un nombre de host DNS privado para el punto de conexión de la VPC, actualiza el SDK AWS CLI o a la versión más reciente para que no sea necesario especificar una URL de punto final cuando utilices el SDK AWS CLI .

Si habilitas un nombre de host DNS privado y utilizas un SDK o una AWS CLI versión publicada antes del 24 de enero de 2019, debes usar el --endpoint-url parámetro para especificar los puntos finales de la interfaz. En el ejemplo siguiente se muestra el formato de la dirección URL del punto de conexión.

aws ecr create-repository --repository-name name --endpoint-url https://api.ecr.region.amazonaws.com

Si no habilita un nombre de host de DNS privado para el punto de conexión de la VPC, debe utilizar el parámetro --endpoint-url que especifique el ID de punto de conexión de la VPC para el punto de conexión de interfaz. En el ejemplo siguiente se muestra el formato de la dirección URL del punto de conexión.

aws ecr create-repository --repository-name name --endpoint-url https://VPC_endpoint_ID.api.ecr.region.vpce.amazonaws.com

Creación del punto de enlace de gateway de Amazon S3

Para que sus tareas de Amazon ECS extraigan imágenes privadas de Amazon ECR, debe crear un punto de enlace de gateway para Amazon S3. El punto de enlace de gateway es necesario porque Amazon ECR utiliza Amazon S3 para almacenar las capas de imágenes. Cuando sus contenedores descargan imágenes de Amazon ECR, deben acceder a Amazon ECR para obtener el manifiesto de imagen y a Amazon S3 para descargar las capas de imágenes en sí. A continuación, se muestra el Nombre de recurso de Amazon (ARN) del bucket de Amazon S3 que contiene las capas para cada imagen de Docker.

arn:aws:s3:::prod-region-starport-layer-bucket/*

Use el procedimiento Creación de un punto de enlace de gateway en la Guía del usuario de Amazon VPC para crear el siguiente punto de enlace de gateway de Amazon S3 para Amazon ECR. Cuando cree el punto de conexión, asegúrese de seleccionar las tablas de enrutamiento para su VPC.

com.amazonaws.region.s3

El punto de enlace de gateway de Amazon S3 utiliza un documento de políticas de IAM para limitar el acceso al servicio. Se puede utilizar la política de Acceso completo, porque cualquier restricción que haya incluido en los roles de IAM de la tarea u otras políticas de usuario de IAM tienen vigencia sobre esta política. Si quiere limitar el acceso al bucket de Amazon S3 a los permisos mínimos necesarios para utilizar Amazon ECR, consulte Permisos mínimos del bucket de Amazon S3 para Amazon ECR.

Permisos mínimos del bucket de Amazon S3 para Amazon ECR

El punto de enlace de gateway de Amazon S3 utiliza un documento de políticas de IAM para limitar el acceso al servicio. Para permitir solo los permisos mínimos del bucket de Amazon S3 para Amazon ECR, restrinja el acceso al bucket de Amazon S3 que utiliza Amazon ECR al crear el documento de política de IAM para el punto de enlace.

En la siguiente tabla se describen los permisos de política de buckets de Amazon S3 necesarios para Amazon ECR.

Permiso Descripción

arn:aws:s3:::prod-region-starport-layer-bucket/*

Proporciona acceso al bucket de Amazon S3 que contiene las capas para cada imagen de Docker. Representa el identificador de región de una región de AWS compatible con Amazon ECR, como lo es us-east-2 para Este de EE. UU. (Ohio).

Ejemplo

El siguiente ejemplo ilustra cómo proporcionar acceso a los buckets de Amazon S3 necesarios para las operaciones de Amazon ECR.

{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"] } ] }

Cree el punto final de CloudWatch Logs

Las tareas de Amazon ECS que utilizan el tipo de lanzamiento Fargate que utilizan una VPC sin una puerta de enlace a Internet y que también utilizan el controlador de awslogs registro para enviar información de registro a CloudWatch Logs requieren que cree com.amazonaws. terminal CloudWatch de VPC de la interfaz region .logs para registros. Para obtener más información, consulte Uso de CloudWatch registros con puntos de enlace de VPC de interfaz en la Guía del usuario de Amazon CloudWatch Logs.

Creación de una política de punto de enlace para sus puntos de enlace de la VPC de Amazon ECR

Una política de punto de conexión de VPC es una política de recursos de IAM que puede asociar a un punto de conexión cuando crea o modifica el punto de conexión. Si no adjuntas una política al crear un punto de conexión, AWS adjunta una política predeterminada que te permita el acceso total al servicio. Una política de punto de conexión no anula ni sustituye a las políticas de usuario de ni las políticas específicas de los servicios. Se trata de una política independiente para controlar el acceso desde el punto de conexión al servicio especificado. Las políticas de punto de conexión deben escribirse en formato JSON. Para obtener más información, consulte Controlar el acceso a servicios con puntos de conexión de VPC en la Guía del usuario de Amazon VPC.

Recomendamos crear una única política de recursos de IAM y adjuntarla a ambos puntos de enlace de la VPC de Amazon ECR.

A continuación, se muestra un ejemplo de una política de punto de enlace para la Amazon ECR. Esta política permite a un rol de IAM específico extraer imágenes de Amazon ECR.

{ "Statement": [{ "Sid": "AllowPull", "Principal": { "AWS": "arn:aws:iam::1234567890:role/role_name" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Effect": "Allow", "Resource": "*" }] }

El siguiente ejemplo de política de punto de conexión impide que se elimine un repositorio especificado.

{ "Statement": [{ "Sid": "AllowAll", "Principal": "*", "Action": "*", "Effect": "Allow", "Resource": "*" }, { "Sid": "PreventDelete", "Principal": "*", "Action": "ecr:DeleteRepository", "Effect": "Deny", "Resource": "arn:aws:ecr:region:1234567890:repository/repository_name" } ] }

El siguiente ejemplo de política de punto de conexión combina los dos ejemplos anteriores en una única política.

{ "Statement": [{ "Sid": "AllowAll", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" }, { "Sid": "PreventDelete", "Effect": "Deny", "Principal": "*", "Action": "ecr:DeleteRepository", "Resource": "arn:aws:ecr:region:1234567890:repository/repository_name" }, { "Sid": "AllowPull", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::1234567890:role/role_name" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Modificación de la política de punto de enlace de la VPC para Amazon ECR
  1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.

  2. En el panel de navegación, elija Puntos de conexión.

  3. Si aún no ha creado los puntos de enlace de la VPC para Amazon ECR, consulte Creación de puntos de enlace de la VPC para Amazon ECR.

  4. Seleccione el punto de enlace de la VPC de Amazon ECR al que desea agregar una política y elija la pestaña Policy (Política) en la mitad inferior de la pantalla.

  5. Elija Editar política y realice los cambios en la política.

  6. Elija Guardar para guardar el cambio.

Subredes compartidas

No puede crear, describir, modificar ni eliminar puntos de conexión de VPC en subredes que se compartan con usted. No obstante, puede usar los puntos de conexión de VPC en las subredes que se compartan con usted.