gcr.io alojado en Artifact Registry de forma predeterminada

Obtener información para configurar repositorios de gcr.io en Artifact Registry obtén información sobre las diferencias entre los permisos de Artifact Registry y Container Registry, y el bucket de almacenamiento configuración.

Los pasos manuales descritos en este documento se pueden completar con la de migración automática. Si quieres usar la configuración herramienta de migración para realizar la transición de tus proyectos con un uso activo de Container Registry a los repositorios estándar de Artifact Registry o a los repositorios de gcr.io, consulta Automatiza la migración a Artifact Registry.

Baja de Container Registry

Proyectos de Google Cloud que no han usado Container Registry antes A partir del 15 de mayo de 2024, solo se permitirá alojar y administrar imágenes en Artifact Registry. Este cambio afecta lo siguiente:

  • Proyectos creados recientemente.
  • Proyectos existentes en los que no enviaste una imagen a Container Registry.

Organizaciones que no han usado Container Registry antes A partir del 8 de enero de 2024, los repositorios nuevos de gcr.io se alojarán en Artifact Registry de forma predeterminada.

Cuando habilites la API de Artifact Registry en estos proyectos, Artifact Registry controlar automáticamente la creación de repositorios de gcr.io en Artifact Registry y redirecciona las solicitudes al dominio gcr.io al dominio de Artifact Registry adecuado en un repositorio de confianza. A diferencia de la compatibilidad existente con el dominio gcr.io en los proyectos si está activo Container Registry, el redireccionamiento a Artifact Registry será automático.

Container Registry permanecerá disponible en los proyectos en los que se ejecute alguna de las siguientes opciones acciones que ocurrieron antes del 15 de mayo de 2024:

  • Habilitaste la API de Container Registry en el proyecto.
  • Envíaste una imagen a un host de registro del proyecto.

Con el objetivo de prepararte para el próximo cambio, te recomendamos que hagas lo siguiente:

  • Sigue las instrucciones de este documento para configurar proyectos en los que no usan Container Registry para que estén listos para el manejo automático de gcr.io solicitudes cuando se aplican los cambios.
  • Probar la compatibilidad con el dominio gcr.io para verificar que tu automatización existente siga funcionando.

gcr.io repositorios alojados en Artifact Registry se crean en la misma multirregionales compatibles con Container Registry. Si quieres almacenar tus imágenes En otras regiones, debes realizar la transición a los repositorios estándar en el dominio pkg.dev.

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:

  • Para crear repositorios de Artifact Registry y otorgar acceso a repositorios individuales, sigue estos pasos: Administrador de Artifact Registry (roles/artifactregistry.admin) en el proyecto
  • 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) en el proyecto
  • 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) en el proyecto, la carpeta o la organización
  • Para ver una lista de los servicios habilitados en una organización, sigue estos pasos: Visualizador de recursos de Cloud (roles/cloudasset.viewer) en la organización

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.

Antes de comenzar

Puedes enumerar los proyectos en los que se almacena al menos una imagen en Container Registry. Luego, podrás enfocarte en configurar otros proyectos para alojar solicitudes gcr.io. en Artifact Registry con las instrucciones de este documento.

Ejecuta el siguiente comando para buscar el uso de Container Registry en tu organización de Google Cloud.

  gcloud container images list-gcr-usage \
      --organization=ORGANIZATION

Reemplaza ORGANIZATION por tu cuenta de Google Cloud. ID de la organización.

También puedes enumerar el uso de Container Registry para tu proyecto o carpeta. Para ver más para encontrar el uso de Container Registry, consulta Verifica el uso de Container Registry.

Habilita la API

Habilita la API de Artifact Registry para que las solicitudes al dominio gcr.io se se controla automáticamente Artifact Registry cuando surte efecto el hosting automático de gcr.io.

  1. Ejecuta el siguiente comando:

    gcloud services enable \
        artifactregistry.googleapis.com
    
  2. Si normalmente colocas la API de Container Registry en una perímetro de servicio de los Controles del servicio de VPC asegúrate de colocar también la API de Artifact Registry en el perímetro. Consulta Protege repositorios en un perímetro de servicio para obtener instrucciones.

Otorga permisos a los repositorios

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.

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)
  • Borrar 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 un repositorio gcr.io en Artifact Registry la primera vez que se crea una imagen se envía a un nombre de host gcr.io en un proyecto. Administrador de almacenamiento
(roles/storage.admin)
Administrador del repositorio Create-on-push de Artifact Registry
(roles/artifactregistry.createOnPushRepoAdmin)
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.

Configuración del bucket de almacenamiento

Cuando creas un repositorio en Artifact Registry, Artifact Registry no crea buckets de Cloud Storage correspondientes en tu proyecto. Si tienes automatización para Container Registry que interactúa directamente con los buckets de almacenamiento, debes actualizar para que realice los cambios correspondientes en el repositorio de Artifact Registry.

Por ejemplo, si otorgas de manera programática permisos de Cloud Storage en buckets almacenamiento para Container Registry, debes actualizar esa automatización a fin de que otorgue Permisos de Artifact Registry en los repositorios de Artifact Registry que alojan imágenes para el dominio gcr.io.

En Artifact Registry, configuras el método de encriptación para los datos almacenados en un repositorio. en lugar de un bucket de almacenamiento. El hosting automático de gcr.io en Artifact Registry crea gcr.io repositorios encriptados con claves de propiedad y administradas por Google. Si quieres usar claves de encriptación administradas por el cliente (CMEK), debes crear el gcr.io se recopila por tu cuenta y especifica CMEK como el método de encriptación cuando de crearlos.

Para crear un repositorio gcr.io de forma manual, sigue estos pasos:

  1. Si usas CMEK, crea la clave que usarás con este repositorio y otorga los permisos para usar la clave. Consulta Habilita claves de encriptación administradas por el cliente.

  2. Agrega el repositorio.

    Console

    1. Abre la página Repositorios en la consola de Google Cloud.

      Abrir la página Repositorios

    2. Haz clic en Crear repositorio.

    3. Especifica el nombre del repositorio.

      Nombre de host de Container Registry Nombre del repositorio de Artifact Registry
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    4. Especifica Docker como el formato del repositorio.

    5. En Tipo de ubicación, especifica la multirregión del repositorio:

      Nombre de host de Container Registry Ubicación del repositorio de Artifact Registry
      gcr.io us
      asia.gcr.io asia
      eu.gcr.io europa
      us.gcr.io us
    6. Agrega una descripción para el repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.

    7. En la sección Encriptación, elige el mecanismo de encriptación para del repositorio.

      • Clave administrada por Google: Encripta el contenido del repositorio con un Clave de Google y administrada por Google.
      • Clave administrada por el cliente: Encripta el contenido de un repositorio mediante una clave que controlas a través de Cloud Key Management Service. Si deseas obtener instrucciones para la configuración de claves, consulta Configura CMEK para repositorios.
    8. Haga clic en Crear.

    gcloud

    Ejecuta el siguiente comando para crear un repositorio nuevo.

    gcloud artifacts repositories create REPOSITORY \
        --repository-format=docker \
        --location=LOCATION \
        --description=DESCRIPTION \
        --kms-key=KMS-KEY
    

    Reemplaza los siguientes valores:

    • REPOSITORY es el nombre del repositorio.

      Nombre de host de Container Registry Nombre del repositorio de Artifact Registry
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    • LOCATION es la multirregión del repositorio:

      Nombre de host de Container Registry Ubicación del repositorio de Artifact Registry
      gcr.io us
      asia.gcr.io asia
      eu.gcr.io europa
      us.gcr.io us
    • DESCRIPTION es una descripción del repositorio. Qué no debes hacer incluyen datos sensibles, ya que las descripciones del repositorio no están encriptadas.

    • KMS-KEY es la ruta de acceso completa a la encriptación de Cloud KMS. si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:

      projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
      

      Reemplaza los siguientes valores:

      • KMS-PROJECT es el proyecto en el que se almacena tu clave.
      • KMS-LOCATION es la ubicación de la clave.
      • KEY-RING es el nombre del llavero de claves.
      • KEY es el nombre de la clave.

    Para confirmar que el repositorio se creó, enumera tus repositorios con el siguiente comando:

    gcloud artifacts repositories list
    

¿Qué sigue?

Configurar la compatibilidad con el dominio gcr.io en un proyecto de prueba para verificar que la automatización y la integración servicios como Cloud Build, Google Kubernetes Engine o Cloud Functions, funcionan como lo esperado.