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 (Amazon ECR) es AWS un servicio gestionado de registro de imágenes de contenedores que admite repositorios privados con permisos basados en recursos mediante (IAM). AWS Identity and Access Management Puedes dar acceso a tus servicios de contenedores de Amazon Lightsail a tus repositorios privados de Amazon ECR. 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 Amazon ECR 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 Amazon ECR, consulte la Guía del usuario de Amazon ECR.
Contenido
Permisos necesarios
El usuario que administrará el acceso de los servicios de contenedores de Lightsail a los repositorios privados de Amazon ECR debe tener una de las siguientes políticas de permisos en IAM. Para obtener más información, consulte Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de AWS Identity and Access Management .
Conceder acceso a cualquier repositorio privado de Amazon ECR
La siguiente política de permisos concede a un usuario permiso para configurar el acceso a cualquier repositorio privado de Amazon ECR.
{ "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, sustitúyalo por tu número de ID de AwsAccountId
cuenta. AWS
Conceder acceso a un determinado repositorio privado de Amazon ECR
La siguiente política de permisos concede a un usuario permiso para configurar el acceso a un determinado repositorio privado de Amazon ECR en una Región de AWS específica.
{ "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.
-
Inicie sesión en la consola de Lightsail
. -
En la página de inicio de Lightsail, elija la pestaña Contenedores.
-
Elija el nombre del servicio de contenedor para el que desea configurar el acceso a un repositorio privado de Amazon ECR.
-
Elija la pestaña Imágenes.
-
Elija Agregar repositorio para conceder acceso a su servicio de contenedor a un repositorio privado de Amazon ECR.
nota
Puede elegir Eliminar para eliminar el acceso de su servicio de contenedor a un repositorio privado de Amazon ECR agregado anteriormente.
-
En el menú desplegable que aparece, seleccione el repositorio privado al que desea acceder y luego elija Add (Agregar).
Lightsail tarda unos minutos en activar la función de IAM del extractor de imágenes Amazon ECR para su servicio de contenedores, que incluye un nombre de recurso principal de Amazon (ARN). A continuación, Lightsail añade automáticamente el ARN principal del rol de IAM a la política de permisos del repositorio privado de Amazon ECR 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).
-
Elija Continue (Continuar) cuando se complete la activación.
Después de agregar el repositorio privado de Amazon ECR seleccionado, aparecerá en la sección Repositorios privados de Amazon ECR 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 formato URI que se muestra en la página como valor Image (Imagen) al crear la implementación de su servicio de contenedor. En el URI que especificó, sustituya la
{image tag}
de ejemplo por 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.
Úselo AWS CLI para administrar el acceso a los repositorios privados
La administración del acceso de un servicio de contenedores de Lightsail a un repositorio privado de Amazon ECR 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 Amazon ECR, ya que 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.
-
Activar o desactivar la función de IAM del extractor de imágenes de Amazon ECR: utilice el comando de Lightsail AWS CLI
update-container-service
para activar o desactivar la función de IAM del extractor de imágenes de Amazon ECR. Se crea un nombre de recurso de Amazon (ARN) de entidad principal para el rol de IAM del extractor de imágenes de Amazon ECR cuando lo activa. Para más información, consulte la sección Activar o desactivar el rol de IAM del extractor de imágenes de Amazon ECR de esta guía. -
Determinar si el repositorio privado de Amazon ECR tiene una declaración de política: después de activar el rol de IAM de extractor de imágenes de Amazon ECR, debe determinar si el repositorio privado de Amazon ECR al que desea acceder con su servicio de contenedor tiene una declaración de política existente. Para obtener más información, consulte Determinar si el repositorio privado de Amazon ECR tiene una declaración de política más adelante en esta guía.
Agregue el rol de IAM de entidad principal ARN a su repositorio mediante uno de los siguientes métodos, dependiendo de si su repositorio tiene una declaración de política existente:
-
Agregue una política a un repositorio privado que no tenga una declaración de política: utilice el AWS CLI
set-repository-policy
comando para Amazon ECR para agregar el ARN principal del rol de extractor de imágenes de Amazon ECR para su 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. -
Añadir una política a un repositorio privado que tenga una declaración de política: utilice el AWS CLI
set-repository-policy
comando de Amazon ECR para añadir la función de extractor de imágenes de Amazon ECR para su 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.
-
Activar o desactivar el rol de IAM del extractor de imágenes de Amazon ECR
Complete el siguiente procedimiento para activar o desactivar la función IAM del extractor de imágenes Amazon ECR para su servicio de contenedores Lightsail. Puede activar o desactivar la función de IAM del extractor de imágenes Amazon ECR mediante el comando AWS CLI
update-container-service
de Lightsail. Para obtener más información, consulte la Referencia de comandos. update-container-serviceAWS 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.
-
Abra una ventana del símbolo del sistema o del terminal.
-
Ingrese el siguiente comando para actualizar un servicio de contenedor y activar o desactivar el rol de IAM del extractor de imágenes de Amazon ECR.
aws lightsail update-container-service --service-name
ContainerServiceName
--private-registry-access ecrImagePullerRole={isActive=RoleActivationState
} --regionAwsRegionCode
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 IAM del extractor de imágenes Amazon ECR. -
RoleActivationState
— El estado de activación de la función de IAM del extractor de imágenes Amazon ECR. Especifiquetrue
para activar el rol, ofalse
para desactivarlo. -
AwsRegionCode
— El Región de AWS código del servicio de contenedores (por ejemplo,).us-east-1
Ejemplos:
-
Para activar el rol de IAM del extractor de imágenes de Amazon ECR:
aws lightsail update-container-service --service-name
my-container-service
--private-registry-access ecrImagePullerRole={isActive=true
} --regionus-east-1
-
Para desactivar el rol de IAM del extractor de imágenes de Amazon ECR:
aws lightsail update-container-service --service-name
my-container-service
--private-registry-access ecrImagePullerRole={isActive=false
} --regionus-east-1
-
-
Si:
-
Activó el rol del extractor de imágenes de Amazon ECR: espere al menos 30 segundos después de recibir la respuesta anterior. Luego, continúe al siguiente paso para obtener el ARN de entidad principal del rol de IAM del extractor de imágenes de Amazon ECR para su servicio de contenedor.
-
Desactivó el rol de extractor de imágenes de Amazon ECR: si previamente agregó el ARN de entidad principal del rol de IAM del extractor de imágenes de Amazon ECR a la política de permisos del repositorio privado de Amazon ECR, debe eliminar esa política de permisos del repositorio. Para más información, consulte Eliminación de una declaración de política de repositorio privado en la Guía del usuario de Amazon ECR.
-
-
Escriba el siguiente comando para obtener el ARN de entidad principal del rol de IAM del extractor de imágenes de Amazon ECR para el servicio de contenedor.
aws lightsail get-container-services --service-name
ContainerServiceName
--regionAwsRegionCode
En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
-
ContainerServiceName
— El nombre del servicio de contenedores del que va a obtener el ARN principal del rol de IAM del extractor de imágenes Amazon ECR. -
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
--regionus-east-1
Busque el ARN de entidad principal del rol de IAM del extractor de imágenes ECR 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, debe determinar si existe una declaración de política existente en el repositorio privado de Amazon ECR al que desea acceder mediante su servicio de contenedor. Siga en la sección Determinar si el repositorio privado de Amazon ECR tiene una declaración de política de esta guía.
-
Determinar si el repositorio privado de Amazon ECR tiene una declaración de política
Use el siguiente procedimiento para determinar si el repositorio privado de Amazon ECR tiene una declaración de política. Puede usar el AWS CLI get-repository-policy
comando para Amazon ECR. Para obtener más información, consulte update-container-servicela Referencia de AWS CLI comandos.
nota
Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de poder continuar con este procedimiento. Para obtener más información, consulte Configuración de Amazon ECR en la Guía del usuario de Amazon ECR.
-
Abra una ventana del símbolo del sistema o del terminal.
-
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
--regionAwsRegionCode
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
--regionus-east-1
Debería ver una de las siguientes respuestas:
-
RepositoryPolicyNotFoundException— Tu repositorio privado no tiene una declaración de política. Si su repositorio no tiene una declaración de política, siga los pasos de la sección Agregar una política a un repositorio privado que no tiene una declaración de política más adelante en esta guía.
-
Se ha encontrado una política de repositorio - El repositorio privado tiene una declaración de política y se muestra en la respuesta de su solicitud. Si su repositorio tiene una declaración de política, copie la política existente y luego siga los pasos en la sección Agregar una política a un repositorio privado que no tiene una declaración de política más adelante en esta guía.
-
Agregar una política a un repositorio privado que no tenga una declaración de política
Complete el siguiente procedimiento para agregar una política a un repositorio privado de Amazon ECR que no tenga una declaración de política. La política que añada debe incluir el ARN principal del rol de IAM del extractor de imágenes Amazon ECR de su servicio de contenedores 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 Amazon ECR a sus repositorios privados de Amazon ECR cuando utiliza la consola de Lightsail para configurar el acceso. En ese caso, no tiene que agregar manualmente el rol de extractor de imágenes de Amazon ECR a sus repositorios privados mediante el procedimiento en 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 archivo JSON que contenga la política y, a continuación, haga referencia a ese archivo mediante el comando set-repository-policy
para Amazon ECR. Para obtener más información, consulte la Referencia de set-repository-policycomandos.AWS CLI
nota
Debe instalarlo AWS CLI y configurarlo para Amazon ECR antes de continuar con este procedimiento. Para obtener más información, consulte Configuración de Amazon ECR en la Guía del usuario de Amazon ECR.
-
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úyalo por el ARN principal del rol de IAM del extractor de imágenes Amazon ECR de tu servicio de contenedores que obtuviste anteriormente en esta guía. -
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). -
Anote la ubicación de la ruta del
ecr-policy.json
archivo creado. Especificará en un comando más adelante en este procedimiento. -
Abra una ventana del símbolo del sistema o del terminal.
-
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 --regionAwsRegionCode
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 archivoecr-policy.json
en su equipo que creó 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 --regionus-east-1
-
En Linux o macOS:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-east-1
El servicio de contenedor ahora puede acceder a su repositorio privado y a sus imágenes. Para usar una imagen del repositorio, especifique el siguiente URI como valor de Imagen para la implementación del servicio de contenedor. En el URI, sustituya la
etiqueta
de ejemplo por 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 el URI, sustituya el texto del ejemplo siguiente 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 agregar una política a un repositorio privado de Amazon ECR que tiene una declaración de política. La política que añada debe incluir la política existente y una nueva política que contenga el ARN principal del rol de IAM del extractor de imágenes de Amazon ECR de su servicio de contenedores 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 Amazon ECR a sus repositorios privados de Amazon ECR cuando utiliza la consola de Lightsail para configurar el acceso. En ese caso, no tiene que agregar manualmente el rol de extractor de imágenes de Amazon ECR a sus repositorios privados mediante el procedimiento en 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, se crea un archivo JSON que contiene la política existente y la nueva política. A continuación, haga referencia a ese archivo con el comando set-repository-policy
para Amazon ECR. Para obtener más información, consulte la Referencia de set-repository-policycomandos.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, consulte Configuración de Amazon ECR en la Guía del usuario de Amazon ECR.
-
Abra una ventana del símbolo del sistema o del terminal.
-
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
--regionAwsRegionCode
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
--regionus-east-1
-
-
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. -
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:
-
En el texto que pegó, reemplace
\n
con saltos de línea y borre el resto\
.El resultado debe ser similar al siguiente ejemplo:
-
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" ] } ] } -
En el texto,
IamRolePrincipalArn
sustitúyalo por el ARN principal del rol de IAM del extractor de imágenes Amazon ECR de tu servicio de contenedores que obtuviste anteriormente en esta guía.El resultado debe ser similar al siguiente ejemplo:
-
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). -
Anote la ubicación de la ruta del archivo
ecr-policy.json
. Especificará en un comando más adelante en este procedimiento. -
Abra una ventana del símbolo del sistema o del terminal.
-
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 --regionAwsRegionCode
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 archivoecr-policy.json
en su equipo que creó 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 --regionus-east-1
-
En Linux o macOS:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-east-1
Debería ver una respuesta similar a la del siguiente ejemplo.
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 del repositorio, especifique el siguiente URI como valor de Imagen para la implementación del servicio de contenedor. En el URI, sustituya laetiqueta
de ejemplo por 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 el URI, sustituya el texto del ejemplo siguiente por el suyo propio:
-
AwsAccountId
— Su 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
-