Otorgue a los servicios de contenedores de Lightsail acceso a los repositorios privados de Amazon ECR - Amazon Lightsail

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.

Otorgue a los servicios de contenedores de Lightsail acceso a los repositorios privados de Amazon ECR

Amazon Elastic Container Registry (AmazonECR) es un servicio AWS gestionado de registro de imágenes de contenedores que admite repositorios privados con permisos basados en recursos mediante AWS Identity and Access Management (). IAM Puedes dar acceso a tus servicios de contenedores de Amazon Lightsail a tus repositorios privados de AmazonECR. Región de AWS A continuación, puede implementar imágenes desde su repositorio privado a sus servicios de contenedor.

Puede gestionar el acceso a sus servicios de contenedores de Lightsail y a sus repositorios privados de ECR Amazon mediante la consola de Lightsail o el (). AWS Command Line Interface AWS CLI Sin embargo, le recomendamos que utilice la consola Lightsail porque simplifica el proceso.

Para obtener más información acerca de los servicios de contenedor, consulte Servicios de contenedores. Para obtener más información sobre AmazonECR, consulta la Guía del ECR usuario de Amazon.

Contenido

Permisos necesarios

El usuario que gestionará el acceso de los servicios de contenedores de Lightsail a los repositorios privados de ECR Amazon debe tener una de las siguientes políticas de permisos. IAM Para obtener más información, consulte Añadir y eliminar permisos de IAM identidad en la Guía del AWS Identity and Access Management usuario.

Concede acceso a cualquier repositorio ECR privado de Amazon

La siguiente política de permisos concede a un usuario permiso para configurar el acceso a cualquier repositorio ECR privado de Amazon.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:*:AwsAccountId:repository/*" } ] }

En la política, AwsAccountId sustitúyalo por tu número de ID de AWS cuenta.

Otorgar acceso a un repositorio ECR privado específico de Amazon

La siguiente política de permisos otorga a un usuario permiso para configurar el acceso a un repositorio ECR privado de Amazon específico, en un repositorio específico Región de AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:AwsRegion:AwsAccountId:repository/RepositoryName" } ] }

En el comando, sustituya el texto del ejemplo siguiente por el suyo:

  • AwsRegion— El Región de AWS código (por ejemplous-east-1) del repositorio privado. El servicio de contenedores de Lightsail debe estar en el Región de AWS mismo lugar que los repositorios privados a los que desea acceder.

  • AwsAccountId— El número de identificación de su AWS cuenta.

  • RepositoryName— El nombre del repositorio privado al que quieres gestionar el acceso.

A continuación se muestra un ejemplo de la política de permisos rellenada con valores de ejemplo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-private-repo" } ] }

Utilice la consola de Lightsail para gestionar el acceso a los repositorios privados

Complete el siguiente procedimiento para utilizar la consola de Lightsail para gestionar el acceso de un servicio de contenedores de Lightsail a un repositorio privado de Amazon. ECR

  1. Inicie sesión en la consola de Lightsail.

  2. En el panel de navegación izquierdo, elija Contenedores.

  3. Elija el nombre del servicio de contenedores para el que quiere configurar el acceso a un repositorio ECR privado de Amazon.

    Servicio de contenedores en la consola de Lightsail
  4. Elija la pestaña Imágenes.

    Pestaña Imágenes en la página de administración de servicios de contenedores de la consola Lightsail
  5. Selecciona Añadir repositorio para conceder acceso a tu servicio de contenedores a un repositorio ECR privado de Amazon.

    nota

    Puedes elegir Eliminar para eliminar el acceso a tu servicio de contenedores desde un repositorio ECR privado de Amazon que hayas añadido anteriormente.

    Sección de repositorios ECR privados de Amazon de la pestaña Imágenes
  6. En el menú desplegable que aparece, seleccione el repositorio privado al que desea acceder y luego elija Add (Agregar).

    Selección desplegable de repositorios ECR privados de Amazon

    Lightsail tarda unos minutos en activar la función de IAM extractor de imágenes de ECR Amazon para su servicio de contenedores, que incluye un nombre de recurso principal de Amazon (). ARN A continuación, Lightsail añade automáticamente IAM el rol ARN principal a la política de permisos del repositorio privado de ECR Amazon que haya seleccionado. Esto otorga al servicio de contenedor acceso al repositorio privado y a sus imágenes. No cierre la ventana del navegador hasta que el modal que aparece indique que el proceso se completó y pueda elegir Continue (Continuar).

    Modal que confirma que se están añadiendo permisos al repositorio ECR privado de Amazon
  7. Elija Continue (Continuar) cuando se complete la activación.

    Una vez añadido el repositorio ECR privado de Amazon seleccionado, aparece en la sección de repositorios ECR privados de Amazon de la página. La página incluye instrucciones sobre cómo implementar una imagen del repositorio privado en su servicio de contenedores de Lightsail. Para usar una imagen de su repositorio privado, especifique el URI formato que se muestra en la página como valor de imagen al crear el despliegue del servicio de contenedores. En el URI que especifique, sustituya el ejemplo por {image tag} la etiqueta de la imagen que desee implementar. Para obtener más información, consulte Creación y administración de implementaciones del servicio de contenedor.

    Próximos pasos después de añadir un repositorio ECR privado de Amazon

Úsalo AWS CLI para gestionar el acceso a los repositorios privados

La administración del acceso de un servicio de contenedores de Lightsail a un repositorio privado de ECR Amazon mediante AWS CLI() requiere AWS Command Line Interface los siguientes pasos:

importante

Le recomendamos que utilice la consola de Lightsail para gestionar el acceso de un servicio de contenedores de Lightsail a un repositorio privado de ECR Amazon, ya que esto simplifica el proceso. Para obtener más información, consulte Uso de la consola de Lightsail para administrar el acceso a los repositorios privados, anteriormente en esta guía.

  1. Activar o desactivar la IAM función de extractor de ECR imágenes de Amazon: utilice el AWS CLI update-container-service comando de Lightsail para activar o desactivar la función de extractor de imágenes de Amazon. ECR IAM Al activarla, se crea un nombre de recurso principal de Amazon (ARN) para la IAM función de extracción de ECR imágenes de Amazon. Para obtener más información, consulta la sección Activar o desactivar la IAM función de extractor de ECR imágenes de Amazon de esta guía.

  2. Determina si tu repositorio ECR privado de Amazon tiene una declaración de política: después de activar la IAM función de extractor de ECR imágenes de Amazon, debes determinar si el repositorio ECR privado de Amazon al que quieres acceder con tu servicio de contenedores tiene una declaración de política vigente. Para obtener más información, consulta Determinar si tu repositorio ECR privado de Amazon tiene una declaración de política más adelante en esta guía.

    Puedes añadir el IAM rol principal ARN a tu repositorio mediante uno de los siguientes métodos, en función de si tu repositorio cuenta con una declaración de política vigente:

    1. Agrega una política a un repositorio privado que no tenga una declaración de política: usa el AWS CLI set-repository-policy comando para que Amazon ECR añada el rol principal del extractor de ECR imágenes de Amazon ARN para tu servicio de contenedores a un repositorio privado que tenga una política existente. Para más información, consulte Agregar una política a un repositorio privado que no tiene una declaración de política más adelante en esta guía.

    2. Agrega una política a un repositorio privado que tenga una declaración de política: usa el AWS CLI set-repository-policy comando para que Amazon ECR añada el rol de extractor de ECR imágenes de Amazon para tu servicio de contenedores a un repositorio privado que no tenga una política existente. Para más información, consulte Agregar una política a un repositorio privado que tiene una declaración de política más adelante en esta guía.

Activa o desactiva la función de extractor de ECR imágenes de Amazon IAM

Complete el siguiente procedimiento para activar o desactivar la IAM función de extractor de ECR imágenes de Amazon para su servicio de contenedores Lightsail. Puedes activar o desactivar la IAM función de extractor de ECR imágenes de Amazon mediante el AWS CLI update-container-service comando de Lightsail. Para obtener más información, consulte update-container-service en la Referencia de los comandos de AWS CLI .

nota

Debe instalar AWS CLI y configurar Lightsail para poder continuar con este procedimiento. Para obtener más información, consulte Configurar AWS CLI para que funcione con Lightsail.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Introduce el siguiente comando para actualizar un servicio de contenedores y activar o desactivar la función de extractor IAM de ECR imágenes de Amazon.

    aws lightsail update-container-service --service-name ContainerServiceName --private-registry-access ecrImagePullerRole={isActive=RoleActivationState} --region AwsRegionCode

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • ContainerServiceName— El nombre del servicio de contenedores para el que se va a activar o desactivar la función de extractor IAM de ECR imágenes de Amazon.

    • RoleActivationState— El estado de activación de la IAM función de extracción ECR de imágenes de Amazon. Especifique true para activar el rol, o false para desactivarlo.

    • AwsRegionCode— El Región de AWS código del servicio de contenedores (por ejemplo,us-east-1).

    Ejemplos:

    • Para activar la IAM función de extractor ECR de imágenes de Amazon:

      aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=true} --region us-east-1
    • Para desactivar la función de extractor IAM de ECR imágenes de Amazon:

      aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=false} --region us-east-1
  3. Si:

    • Se activó la función de extractor de ECR imágenes de Amazon: espere al menos 30 segundos después de recibir la respuesta anterior. Luego, continúa con el siguiente paso para obtener el IAM rol principal ARN de extractor de ECR imágenes de Amazon para tu servicio de contenedores.

    • Se ha desactivado la función de extractor de ECR imágenes de Amazon: si anteriormente has añadido la IAM función principal de extracción de ECR imágenes de Amazon ARN a la política de permisos de tu repositorio ECR privado de Amazon, debes eliminar esa política de permisos de tu repositorio. Para obtener más información, consulta la declaración de política sobre cómo eliminar un repositorio privado en la Guía del ECR usuario de Amazon.

  4. Introduce el siguiente comando para obtener el principal IAM rol ARN de extractor de ECR imágenes de Amazon para tu servicio de contenedores.

    aws lightsail get-container-services --service-name ContainerServiceName --region AwsRegionCode

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • ContainerServiceName— El nombre de su servicio de contenedores para el que obtendrá el IAM rol principal ARN de Amazon ECR Image Puller.

    • AwsRegionCode— El Región de AWS código del servicio de contenedores (por ejemplo,us-east-1).

    Ejemplo:

    aws lightsail get-container-services --service-name my-container-service --region us-east-1

    Busque el IAM rol principal del extractor de ECR imágenes ARN en la respuesta. Si aparece un rol, cópielo o anótelo. Lo necesitará para la siguiente sección de esta guía. A continuación, debes determinar si existe una declaración de política en el repositorio ECR privado de Amazon a la que quieras acceder con tu servicio de contenedores. Continúa con la sección Determina si tu repositorio ECR privado de Amazon tiene una declaración de política de esta guía.

Determina si tu repositorio ECR privado de Amazon tiene una declaración de política

Usa el siguiente procedimiento para determinar si tu repositorio ECR privado de Amazon tiene una declaración de política. Puedes usar el AWS CLI get-repository-policy comando para AmazonECR. Para obtener más información, consulte update-container-service en la Referencia de los comandos de AWS CLI .

nota

Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de poder continuar con este procedimiento. Para obtener más información, consulta Configuración con Amazon ECR en la Guía del ECR usuario de Amazon.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Escriba el siguiente comando para obtener la declaración de política correspondiente a un repositorio privado específico.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • RepositoryName— El nombre del repositorio privado para el que desea configurar el acceso a un servicio de contenedores de Lightsail.

    • AwsRegionCode— El Región de AWS código del repositorio privado (por ejemplo,us-east-1).

    Ejemplo:

    aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1

    Debería ver una de las siguientes respuestas:

Agregar una política a un repositorio privado que no tenga una declaración de política

Complete el siguiente procedimiento para añadir una política a un repositorio ECR privado de Amazon que no tenga una declaración de política. La política que añada debe incluir la IAM función principal de extracción de ECR imágenes de Amazon en su servicio ARN de contenedores de Lightsail. Esto otorga acceso a su servicio de contenedor para desplegar imágenes desde el repositorio privado.

importante

Lightsail añade automáticamente la función de extractor de imágenes de ECR Amazon a sus repositorios privados de ECR Amazon cuando utiliza la consola de Lightsail para configurar el acceso. En ese caso, no tienes que añadir manualmente la función de extractor de ECR imágenes de Amazon a tus repositorios privados mediante el procedimiento de esta sección. Para obtener más información, consulte Uso de la consola de Lightsail para administrar el acceso a los repositorios privados, anteriormente en esta guía.

Puede agregar una política a un repositorio privado mediante la AWS CLI. Para ello, debe crear un JSON archivo que contenga la política y, a continuación, hacer referencia a ese archivo con el set-repository-policy comando de AmazonECR. Para obtener más información, consulte set-repository-policy en la Referencia de los comandos de AWS CLI .

nota

Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de continuar con este procedimiento. Para obtener más información, consulta Configuración con Amazon ECR en la Guía del ECR usuario de Amazon.

  1. Abra un editor de texto y pegue la siguiente declaración de política en un nuevo archivo de texto.

    { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "IamRolePrincipalArn" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

    En el texto, IamRolePrincipalArn sustitúyelo por el IAM rol principal ARN de extractor de ECR imágenes de Amazon de su servicio de contenedores que obtuvo anteriormente en esta guía.

  2. Guarde el archivo como ecr-policy.json en una ubicación accesible del equipo (por ejemplo, C:\Temp\ecr-policy.json en Windows o /tmp/ecr-policy.json en macOS o Linux).

  3. Anote la ubicación de la ruta del ecr-policy.json archivo creado. Especificará en un comando más adelante en este procedimiento.

  4. Abra una ventana del símbolo del sistema o del terminal.

  5. Ingrese el siguiente comando para establecer la declaración de política para el repositorio privado al que desea acceder con su servicio de contenedor.

    aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • RepositoryName— El nombre del repositorio privado para el que quieres añadir la política.

    • path/to/— La ruta al ecr-policy.json archivo de tu ordenador que creaste anteriormente en esta guía.

    • AwsRegionCode— El Región de AWS código del repositorio privado (por ejemplo,us-east-1).

    Ejemplos:

    • En Windows:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
    • En Linux o macOS:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1

    El servicio de contenedor ahora puede acceder a su repositorio privado y a sus imágenes. Para usar una imagen de su repositorio, especifique lo siguiente URI como valor de imagen para la implementación del servicio de contenedores. En elURI, sustituya el ejemplo por tag la etiqueta de la imagen que desea implementar. Para obtener más información, consulte Creación y administración de implementaciones del servicio de contenedor.

    AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag

    En elURI, sustituya el siguiente texto de ejemplo por el suyo propio:

    • AwsAccountId— Tu número AWS de ID de cuenta.

    • AwsRegionCode— El Región de AWS código del repositorio privado (por ejemplo,us-east-1).

    • RepositoryName— El nombre del repositorio privado desde el que se va a implementar una imagen de contenedor.

    • ImageTag— La etiqueta de la imagen del contenedor del repositorio privado que se va a implementar en el servicio de contenedores.

    Ejemplo:

    111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage

Agregar una política a un repositorio privado que tenga una declaración de política

Complete el siguiente procedimiento para añadir una política a un repositorio ECR privado de Amazon que tenga una declaración de política. La política que añada debe incluir la política existente y una nueva política que incluya la IAM función principal de extracción de ECR imágenes de Amazon ARN de su servicio de contenedores de Lightsail. Esto mantiene los permisos existentes en su repositorio privado a la vez que otorga acceso a su servicio de contenedor para implementar imágenes desde el repositorio privado.

importante

Lightsail añade automáticamente la función de extractor de imágenes de ECR Amazon a sus repositorios privados de ECR Amazon cuando utiliza la consola de Lightsail para configurar el acceso. En ese caso, no tienes que añadir manualmente la función de extractor de ECR imágenes de Amazon a tus repositorios privados mediante el procedimiento de esta sección. Para obtener más información, consulte Uso de la consola de Lightsail para administrar el acceso a los repositorios privados, anteriormente en esta guía.

Puede agregar una política a un repositorio privado mediante la AWS CLI. Para ello, cree un JSON archivo que contenga la política existente y la nueva política. A continuación, haz referencia a ese archivo con el set-repository-policy comando de AmazonECR. Para obtener más información, consulte set-repository-policy en la Referencia de los comandos de AWS CLI .

nota

Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de poder continuar con este procedimiento. Para obtener más información, consulta Configuración con Amazon ECR en la Guía del ECR usuario de Amazon.

  1. Abra una ventana del símbolo del sistema o del terminal.

  2. Escriba el siguiente comando para obtener la declaración de política correspondiente a un repositorio privado específico.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • RepositoryName— El nombre del repositorio privado para el que desea configurar el acceso a un servicio de contenedores de Lightsail.

    • AwsRegionCode— El Región de AWS código del repositorio privado (por ejemplo,us-east-1).

    Ejemplo:

    aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1
  3. En la respuesta, copie la política existente y continúe con el siguiente paso.

    Debe copiar solo el contenido del policyText que aparece entre las comillas dobles, como se destaca en el siguiente ejemplo.

    Respuesta al get-repository-policy comando para un repositorio privado que no tiene una declaración de política
  4. Abra un editor de texto y pegue la política existente de su repositorio privado que copió en el paso anterior.

    El resultado debe ser similar al siguiente ejemplo:

    Ejemplo de JSON archivo de declaración de política
  5. En el texto que pegó, reemplace \n con saltos de línea y borre el resto \.

    El resultado debe ser similar al siguiente ejemplo:

    Ejemplo de JSON archivo de declaración de política editado
  6. Pegue la siguiente declaración política al final del archivo de texto.

    , { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "IamRolePrincipalArn" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }
  7. En el texto, IamRolePrincipalArn sustitúyelo por el IAM rol principal ARN de extractor de ECR imágenes de Amazon de su servicio de contenedores que obtuvo anteriormente en esta guía.

    El resultado debe ser similar al siguiente ejemplo:

    Ejemplo de archivo completo de declaración JSON de política
  8. Guarde el archivo como ecr-policy.json en una ubicación accesible del equipo (por ejemplo, C:\Temp\ecr-policy.json en Windows o /tmp/ecr-policy.json en macOS o Linux).

  9. Anote la ubicación de la ruta del archivo ecr-policy.json. Especificará en un comando más adelante en este procedimiento.

  10. Abra una ventana del símbolo del sistema o del terminal.

  11. Ingrese el siguiente comando para establecer la declaración de política para el repositorio privado al que desea acceder con su servicio de contenedor.

    aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode

    En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:

    • RepositoryName— El nombre del repositorio privado para el que desea añadir la política.

    • path/to/— La ruta al ecr-policy.json archivo de tu ordenador que creaste anteriormente en esta guía.

    • AwsRegionCode— El Región de AWS código del repositorio privado (por ejemplo,us-east-1).

    Ejemplos:

    • En Windows:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
    • En Linux o macOS:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1

    Debería ver una respuesta similar a la del siguiente ejemplo.

    Respuesta al set-repository-policy comando

    Si ejecuta el comando get-repository-policy de nuevo, debería ver la nueva declaración de política adicional en su repositorio privado. El servicio de contenedor ahora puede acceder a su repositorio privado y a sus imágenes. Para usar una imagen de su repositorio, especifique lo siguiente URI como valor de imagen para la implementación del servicio de contenedores. En elURI, sustituya el ejemplo por tag la etiqueta de la imagen que desea implementar. Para obtener más información, consulte Creación y administración de implementaciones del servicio de contenedor.

    AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag

    En elURI, sustituya el siguiente texto de ejemplo por el suyo propio:

    • AwsAccountId— Tu número AWS de ID de cuenta.

    • AwsRegionCode— El Región de AWS código del repositorio privado (por ejemplo,us-east-1).

    • RepositoryName— El nombre del repositorio privado desde el que se va a implementar una imagen de contenedor.

    • ImageTag— La etiqueta de la imagen del contenedor del repositorio privado que se va a implementar en el servicio de contenedores.

    Ejemplo:

    111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage