Transición a repositorios estándar

Si actualmente usas Container Registry para administrar tus imágenes de contenedor, esta se explica cómo configurar un repositorio estándar de Artifact Registry y cómo usar repositorios difiere de usar Container Registry.

Estas instrucciones están destinadas principalmente a los administradores de repositorios. Para obtener información sobre cómo cambió la compilación, el envío, la extracción y la implementación de imágenes, consulta el la siguiente información:

Antes de comenzar

  1. Habilita la API de Artifact Registry desde la Consola de Google Cloud o con el comando:

    gcloud services enable artifactregistry.googleapis.com
    
  2. Instala gcloud CLI si aún no lo has hecho. esté instalado. En el caso de una instalación existente, ejecuta el siguiente comando para actualizar componentes a las versiones más recientes:

    gcloud components update
    
  3. Obtén información sobre los precios de Artifact Registry antes cuando comiences la transición.

Roles obligatorios

A fin de obtener los permisos que necesita para configurar los repositorios de gcr.io, solicita a tu administrador que te otorgue el los siguientes roles de IAM en el proyecto de Google Cloud:

  • Para crear repositorios de Artifact Registry y otorgar acceso a repositorios individuales, sigue estos pasos: Administrador de Artifact Registry (roles/artifactregistry.admin)
  • Para ver y administrar la configuración existente de Container Registry aplicada a los buckets de almacenamiento de Cloud Storage, sigue estos pasos: Administrador de almacenamiento (roles/storage.admin)
  • Para otorgar acceso al repositorio a nivel de proyecto, haz lo siguiente: Administrador de IAM de proyecto (roles/resourcemanager.projectIamAdmin) o un rol que incluya permisos equivalentes, como Administrador de carpetas (roles/resourcemanager.folderAdmin) o Administrador de la organización (roles/resourcemanager.organizationAdmin)

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

También puedes obtener los permisos necesarios a través de funciones personalizadas o cualquier otro rol predefinido.

Descripción general

Los repositorios estándar son repositorios normales de Artifact Registry que admitir todas las funciones.

Para mayor simplicidad, en las instrucciones de esta página, se supone que Container Registry y Artifact Registry están en el mismo proyecto de Google Cloud. Puedes continúas usando ambos servicios mientras haces la transición a Artifact Registry para que Puedes seguir los pasos de configuración de forma gradual y actualizar la automatización. Si es necesario, puedes configurar Artifact Registry en otro proyecto y realizar los mismos pasos generales.

Artifact Registry también ofrece los repositorios de gcr.io. Estos repositorios pueden redireccionar el tráfico de gcr.io de tus registros existentes a los repositorios de Artifact Registry correspondientes. Ofrecen algunas retrocompatibilidad con Container Registry, pero también tienen algunas funciones limitaciones. Sin embargo, si tienes muchas herramientas configuración, secuencias de comandos o código con referencias de gcr.io, un enfoque más táctico puede ser necesario para la transición a Artifact Registry. Revisa el la documentación de transición para con compatibilidad con el dominio gcr.io para crear una la decisión adecuada.

Pasos para la transición

En esta guía, se muestra cómo completar los siguientes pasos:

  1. Crea un repositorio de Docker para tus contenedores. Debes crear un repositorio para poder enviar imágenes a este.
  2. Otorga permisos al repositorio.
  3. Configura la autenticación para que puedas conectarte con tu repositorio nuevo.
  4. Si es necesario, copia imágenes desde Container Registry. que quieres usar en tu nuevo repositorio.
  5. Intenta enviar y extraer tus contenedores.
  6. Intenta implementar tus imágenes en un entorno de ejecución.
  7. Configura las funciones adicionales.
  8. Limpia imágenes en Container Registry cuando se realice la transición. que se completó.

Crea repositorios

Container Registry crea automáticamente un bucket de almacenamiento en una multirregión si no enviaste una imagen allí antes.

En Artifact Registry, debes crear un repositorio antes de poder subir imágenes. Cuando creas un repositorio, debes especificar lo siguiente:

  • El formato del repositorio. Artifact Registry almacena contenedores en repositorios de Docker.
  • Una ubicación regional o multirregional para el repositorio.

    Cuando elijas una ubicación para tus repositorios de Artifact Registry, ten en cuenta la proximidad de los repositorios con tu otra infraestructura y tus usuarios. Si planeas copiar imágenes de Container Registry a Artifact Registry, las diferencias en la ubicación pueden afectar el costo de copia.

  • Una clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación.

    En Container Registry, configuras el bucket de almacenamiento de Container Registry para usar CMEK. En Artifact Registry, configuras repositorios usen CMEK cuando las crees. Para obtener más información sobre el uso de CMEK con Artifact Registry, consulta Habilita claves de encriptación administradas por el cliente.

Container Registry aloja contenedores en el dominio gcr.io. Artifact Registry aloja contenedores en el dominio pkg.dev.

Si deseas obtener más información sobre cómo crear repositorios, incluidos los que usan CMEK para la encriptación, consulta Crea repositorios.

Otorga permisos

Container Registry usa roles de Cloud Storage para controlar el acceso. Artifact Registry tiene su propio IAM roles y estos roles separan los roles de administración de repositorios, operaciones de lectura, escritura y Container Registry.

Asignar rápidamente los permisos existentes otorgados en buckets de almacenamiento a los campos sugeridos Para los roles de Artifact Registry, usa la herramienta de asignación de roles.

Como alternativa, puedes ver una lista de principales con acceso al almacenamiento buckets con la consola de Google Cloud.

  1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. Haz clic en el bucket de almacenamiento del host de registro que quieres ver. En los nombres de bucket, PROJECT-ID es tu Google Cloud ID del proyecto:

    • gcr.io: artifacts.PROJECT-ID.appspot.com
    • asia.gcr.io: asia.artifacts.PROJECT-ID.appspot.com
    • eu.gcr.io: eu.artifacts.PROJECT-ID.appspot.com
    • us.gcr.io: us.artifacts.PROJECT-ID.appspot.com
  3. Haz clic en la pestaña Permisos.

  4. En la pestaña Permisos, haz clic en la pestaña secundaria Ver por rol.

  5. Expande un rol para ver las principales que lo tienen.

La lista incluye los roles de IAM otorgados directamente en el bucket y roles heredados del proyecto superior. Según el rol, puedes elegir el rol de Artifact Registry más adecuado para otorgar.

Cloud Storage y roles básicos

Otorga a los usuarios y las cuentas de servicio que actualmente acceden a Container Registry con acceso a repositorios de Artifact Registry. Para Cloud Storage roles heredados del proyecto superior, debes verificar que la principal que actualmente usa Container Registry. Es posible que algunas principales solo accedan a otros buckets de Cloud Storage que no están relacionados con Container Registry.

Los roles básicos de propietario, editor y visualizador que existían antes de IAM tienen acceso limitado a buckets de almacenamiento. No proporcionan de forma intrínseca todo el acceso a Cloud Storage recursos que implican sus nombres y proporcionan permisos adicionales para otros servicios de Google Cloud. Verifica qué usuarios y cuentas de servicio requieren acceso a Artifact Registry y usa la tabla de asignación de roles como ayuda otorgas los roles correctos si el acceso a Artifact Registry es adecuado.

En la siguiente tabla, se asignan los roles de Artifact Registry según los permisos que otorga roles predefinidos de Cloud Storage para el acceso a Container Registry. Artifact Registry los roles proporcionan una separación adicional de permisos que no está disponible en los roles predefinidos de Cloud Storage.

Acceso requerido Rol actual Rol de Artifact Registry Dónde otorgar el rol
Solo imágenes de extracción (solo lectura) Visualizador de objetos de Storage
(roles/storage.objectViewer)
Lector de Artifact Registry
(roles/artifactregistry.reader)
Repositorio de Artifact Registry o proyecto de Google Cloud
Envía y extrae imágenes (lectura y escritura) Escritor de buckets heredados de Storage
(roles/storage.legacyBucketWriter)
Escritor de Artifact Registry
(roles/artifactregistry.writer)
Repositorio de Artifact Registry o proyecto de Google Cloud
Envía, extrae y borra imágenes Escritor de buckets heredados de Storage
(roles/storage.legacyBucketWriter)
Administrador del repositorio de Artifact Registry
(roles/artifactregistry.repoAdmin)
Repositorio de Artifact Registry o proyecto de Google Cloud
Crea, administra y borra repositorios Administrador de almacenamiento
(roles/storage.admin)
Administrador de Artifact Registry
(roles/artifactregistry.Admin)
Proyecto de Google Cloud
Roles del agente de servicio heredados del proyecto

Las cuentas de servicio predeterminadas para los servicios de Google Cloud tienen sus propias roles otorgados a nivel de proyecto. Por ejemplo, el agente de servicio para Cloud Run tiene el rol de agente de servicio de Cloud Run.

En la mayoría de los casos, estos roles del agente de servicio contienen valores predeterminados los permisos para Container Registry y Artifact Registry no es necesario que hagas cambios adicionales si ejecutas Usa Artifact Registry en el mismo proyecto que tu Container Registry existente. servicio.

Consulta las referencia del rol del agente de servicio para obtener detalles sobre los permisos en roles de agente de servicio.

Funciones personalizadas

Usa la tabla de asignación de roles como ayuda para decidir rol que otorgar a los usuarios o cuentas de servicio según el nivel de acceso que necesitan.

Para obtener instrucciones sobre cómo otorgar roles de Artifact Registry, consulta Configura roles y permisos.

Autentícate en el repositorio

Artifact Registry admite los mismos métodos de autenticación que Container Registry.

Si usas el auxiliar de credenciales de Docker, haz lo siguiente:

  • Debes usar la versión 2.0 o una posterior para interactuar con los repositorios de Artifact Registry. La versión independiente está disponible en GitHub.
  • Debes configurar el auxiliar de credenciales con las ubicaciones de Artifact Registry que deseas usar. De forma predeterminada, el auxiliar de credenciales solo configura el acceso a los hosts de Container Registry.

Si quieres obtener detalles sobre cómo configurar la autenticación, consulta Configura la autenticación para Docker.

Copia contenedores desde Container Registry

Si hay contenedores en Container Registry que desees seguir usando en Artifact Registry, existen varias opciones para copiarlos. Para instrucciones detalladas, consulta Copia imágenes desde Container Registry

Envía y extrae imágenes

Los comandos de Docker que usas para etiquetar, enviar y extraer imágenes Artifact Registry son similares a las que usas en Container Registry. Existen dos diferencias clave:

  • El nombre de host para los repositorios de Docker de Artifact Registry incluye una ubicación seguido de -docker.pkg.dev. Los ejemplos incluyen australia-southeast1-docker.pkg.dev, europe-north1-docker.pkg.dev, y europe-docker.pkg.dev.
  • Como Artifact Registry admite varios repositorios de Docker en un solo proyecto, debes especificar el nombre del repositorio en los comandos.

Por ejemplo, en Container Registry, este comando envía la imagen my-image al registro eu.gcr.io en el proyecto my-project.

docker push eu.gcr.io/my-project/my-image

En Artifact Registry, este comando envía la imagen my-image al repositorio regional europe-north1-docker.pkg.dev en el repositorio my-repo y el proyecto my-project.

docker push europe-north1-docker.pkg.dev/my-project/my-repo/my-image

Para obtener más información sobre cómo enviar y extraer imágenes en Artifact Registry, consulta Cómo enviar y extraer imágenes.

Implementa imágenes

Las cuentas de servicio para las integraciones comunes de Google Cloud tienen las siguientes características: configurado con permisos predeterminados para repositorios en mismo proyecto.

La compilación de imágenes y su envío a un repositorio con Cloud Build en general funciona de la misma manera que en Container Registry. La diferencia clave en Artifact Registry es que debe existir un repositorio de destino antes de enviar imágenes a este, incluida la primera imagen que envías.

Asegúrate de crear los repositorios que necesitas antes de ejecutar los comandos que envían imágenes, incluidos el comando de Docker docker push y el comando de Cloud Build gcloud builds submit.

Los compiladores de Cloud Build aún se alojan en gcr.io. Para obtener más información, consulta Integración en Cloud Build.

Otras funciones

En esta sección, se describe la configuración de otras funciones que puedes haber configurado en Container Registry.

Artifact Analysis

Artifact Analysis admite Container Registry y Artifact Registry. La documentación de Artifact Analysis incluye ambos productos.

  • Ambos productos usan las mismas APIs de Artifact Analysis. Cuándo habilitas las APIs de Artifact Analysis en Container Registry o En Artifact Registry, las APIs están activadas para ambos productos.
  • Ambos productos usan los mismos temas de Pub/Sub para Notificaciones de Artifact Analysis.
  • Puedes seguir usando gcloud container images para enumerar las notas y los casos asociados con las rutas de imágenes de gcr.io.
Container Registry Artifact Registry
Busca vulnerabilidades de SO y de paquetes de idioma con análisis a pedido. en imágenes con un SO compatible. El análisis automático solo devuelve resultados de información sobre vulnerabilidades. Más información sobre los tipos de en tiempo real.
Análisis a pedido
Búsqueda automática
  • El comando de Google Cloud CLI gcloud container images incluye marcas para ver los resultados del análisis incluidas las vulnerabilidades y otros metadatos.
  • Los análisis solo devuelven información sobre vulnerabilidades del SO para imágenes en Container Registry con los sistemas operativos compatibles.
Analiza vulnerabilidades de paquetes de SO y de idioma con conjuntos de datos análisis automático. Más información sobre los tipos de en tiempo real.
Análisis a pedido
Búsqueda automática
  • El comando de Google Cloud CLI gcloud imágenes de Docker de artefactos incluye marcas para ver los resultados del análisis. incluidas las vulnerabilidades y otros metadatos.
  • Los análisis devuelven información sobre vulnerabilidades del SO para imágenes en Artifact Registry con los sistemas operativos compatibles y el paquete de idiomas información sobre vulnerabilidades para los sistemas operativos de la seguridad de la información.

Notificaciones de Pub/Sub

Artifact Registry publica cambios en el mismo tema gcr que Container Registry. No se requiere ninguna configuración adicional si ya usas Pub/Sub con Container Registry en el mismo proyecto que Artifact Registry.

Si configuras Artifact Registry en un proyecto diferente, es posible que el tema gcr no exista. Para obtener instrucciones de configuración, consulta Configura notificaciones de Pub/Sub.

Perímetros de servicio

Con los Controles del servicio de VPC, puedes configurar perímetros de seguridad en torno a los recursos de tus servicios administrados por Google y controlar el movimiento de datos en los límites perimetrales.

Consulta Asegura repositorios en un perímetro de servicio para obtener instrucciones.

Limpia las imágenes de Container Registry

Cuando estés listo para dejar de usar Container Registry, borra los archivos restantes a través de la eliminación de los buckets de almacenamiento de Container Registry.

Para borrar cada bucket de almacenamiento de Container Registry, sigue estos pasos:

Console

  1. Ve a la página de Cloud Storage en la consola de Google Cloud.
  2. Selecciona el bucket de almacenamiento que quieras borrar. En los nombres de bucket, PROJECT-ID es tu cuenta de Google Cloud ID del proyecto:

    • gcr.io: artifacts.PROJECT-ID.appspot.com
    • asia.gcr.io: asia.artifacts.PROJECT-ID.appspot.com
    • eu.gcr.io: eu.artifacts.PROJECT-ID.appspot.com
    • us.gcr.io: us.artifacts.PROJECT-ID.appspot.com
  3. Haz clic en Borrar. Aparecerá un cuadro de diálogo de confirmación.

  4. Para confirmar la eliminación, ingresa el nombre del bucket y, luego, haz clic en Borrar.

gcloud

Si quieres borrar de forma masiva cien mil imágenes o más de un bucket, evitar el uso de gcloud CLI, ya que el proceso de eliminación tarda mucho tiempo en completarse. Usar la consola de Google Cloud para realizar la operación en su lugar. Para obtener más información, consulta borrar objetos de Cloud Storage de forma masiva

Para borrar un bucket, usa gcloud storage rm. con la marca --recursive.

gcloud storage rm gs://BUCKET-NAME --recursive

Reemplaza BUCKET-NAME por el almacenamiento de Container Registry. el nombre del bucket. En los nombres de bucket, PROJECT-ID es tu Google Cloud ID del proyecto:

  • gcr.io: artifacts.PROJECT-ID.appspot.com
  • asia.gcr.io: asia.artifacts.PROJECT-ID.appspot.com
  • eu.gcr.io: eu.artifacts.PROJECT-ID.appspot.com
  • us.gcr.io: us.artifacts.PROJECT-ID.appspot.com

La respuesta se ve como el siguiente ejemplo:

Removing gs://artifacts.my-project.appspot.com/...

Si otros servicios de Google Cloud se ejecutan en la misma proyecto, deja habilitada la API de Container Registry. Si intentas Inhabilitar la API de Container Registry. Container Registry muestra una advertencia si otros servicios con un dependencias estén habilitadas en el proyecto. Inhabilita la API de Container Registry inhabilita automáticamente cualquier servicio en el mismo proyecto con una configuración aunque actualmente no uses Container Registry con esos de Google Cloud.

¿Qué sigue?