Crear repositorios remotos

En esta página se describe cómo crear repositorios remotos de Artifact Registry.

Los repositorios remotos almacenan artefactos de las siguientes fuentes upstream:

  • Repositorios estándar de Artifact Registry.
  • Fuentes externas, como las siguientes:
    • CentOS
    • Debian
    • Docker Hub
    • GitHub Container Registry (ghcr.io)
    • Maven Central
    • Índice de paquetes de Python (PyPI)

Un repositorio remoto actúa como proxy de la fuente upstream para que tengas más control sobre tus dependencias. La primera vez que solicitas una versión de un paquete, Artifact Registry descarga y almacena en caché el paquete en el repositorio remoto. La próxima vez que solicite la misma versión del paquete, Artifact Registry proporcionará la copia almacenada en caché.

Si solicitas un artefacto de una fuente upstream que no existe o que no contiene la versión que has especificado, la solicitud fallará.

Los otros modos de repositorio son los siguientes:

  • Estándar: es el modo de repositorio predeterminado. Puedes subir o publicar artefactos, como paquetes privados, directamente en repositorios estándar. Aunque puedes descargar directamente desde repositorios estándar individuales, acceder a grupos de repositorios con un repositorio virtual simplifica la configuración de las herramientas.
  • Virtual: repositorio que actúa como un único punto de acceso para varios repositorios upstream, incluidos los remotos y los estándar.

Para obtener más información sobre cómo funcionan los repositorios remotos, consulta la descripción general de los repositorios remotos.

Antes de empezar

  1. Habilita Artifact Registry, lo que incluye habilitar la API de Artifact Registry e instalar Google Cloud CLI.
  2. Opcional: configura los valores predeterminados de los comandos de gcloud CLI.
  3. Si necesitas claves de cifrado gestionadas por el cliente (CMEK) para cifrar el contenido del repositorio, crea y habilita una clave en Cloud KMS para el repositorio.
  4. Si quieres autenticarte en un repositorio upstream, habilita la API Secret Manager.

    gcloud services enable secretmanager.googleapis.com \
        --project=PROJECT_ID
    
  5. Si Artifact Registry está en un perímetro de servicio de Controles de Servicio de VPC, habilita la API Access Context Manager si aún no lo has hecho.

    gcloud services enable accesscontextmanager.googleapis.com \
        --project=PROJECT_ID
    
  6. Si quieres definir un repositorio de Artifact Registry como upstream y está en un proyecto diferente al de tu repositorio remoto, debes conceder acceso al proyecto del repositorio upstream a la cuenta de servicio del proyecto del repositorio remoto antes de crear el repositorio remoto.

    Asignar el rol Agente de servicio

    Los repositorios remotos usan el agente de servicio de Artifact Registry para autenticarse en los repositorios upstream de Artifact Registry. Debes conceder al agente de servicio del repositorio remoto acceso de lectura al repositorio upstream.

    Para conceder al agente de servicio del repositorio remoto el rol Agente de servicio de Artifact Registry en el repositorio upstream, ejecuta el siguiente comando:

    
      gcloud projects add-iam-policy-binding UPSTREAM_REPOSITORY \
          --member serviceAccount:service-REMOTE_PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \
          --location=REGION \
          --project=UPSTREAM_PROJECT_ID \
          --role roles/artifactregistry.serviceAgent
      

    Haz los cambios siguientes:

    • UPSTREAM_REPOSITORY es el ID del repositorio upstream. Los repositorios de upstream de Artifact Registry deben ser repositorios en modo estándar.
    • REMOTE_PROJECT_NUMBER es el número de proyecto del Google Cloud proyecto de tu repositorio remoto.
    • REMOTE_PROJECT_ID es el ID del Google Cloud proyecto de tu repositorio remoto.
    • REGION es la región en la que quieres crear el repositorio remoto.
    • UPSTREAM_PROJECT_ID es el ID del Google Cloud proyecto con el repositorio upstream.

Roles obligatorios

Para obtener los permisos que necesitas para gestionar repositorios, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

  • Crea repositorios remotos y concede acceso a repositorios concretos: Administrador de Artifact Registry (roles/artifactregistry.admin) en el proyecto
  • Guarda las credenciales del repositorio upstream en una versión de secreto: Administrador de Secret Manager (roles/secretmanager.admin) en el proyecto
  • Concede acceso a fuentes ascendentes fuera de un perímetro de servicio de Controles de Servicio de VPC: Editor de Gestor de contextos de acceso (roles/accesscontextmanager.policyEditor) en el proyecto, la carpeta o la organización en los que se aplica la política de acceso

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Crear un repositorio remoto

Cuando creas un repositorio remoto, debes configurar los siguientes ajustes, que no se pueden cambiar una vez creado el repositorio:

  • Formato del artefacto.
  • El modo del repositorio se ha configurado como remoto.
  • Fuente upstream del repositorio remoto.
  • Ubicación del repositorio.
  • Encriptado con Google-owned and Google-managed encryption keys o claves de encriptado gestionadas por el cliente. Artifact Registry usaGoogle-owned and Google-managed encryption keys de forma predeterminada.

Artifact Registry aplica restricciones de políticas de la organización que requieren que se usen CMEK para cifrar recursos o que limitan las claves de Cloud KMS que se pueden usar para la protección con CMEK.

consola

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

    Abre la página Repositorios.

  2. Haz clic en Crear repositorio.

  3. Especifica el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.

  4. En la sección Formato, selecciona el formato del repositorio.

  5. En la sección Modo de repositorio, selecciona Remoto.

  6. En la sección Remote repository source (Fuente del repositorio remoto), selecciona una de las siguientes formas de introducir la URL del repositorio upstream:

    • Selecciona la fuente predefinida de la emisión que aparece en la lista para el tipo de formato.
    • Selecciona Personalizado para especificar la URL completa de un repositorio público o privado de formatos admitidos.
    • Selecciona Repositorio de Artifact Registry para elegir un repositorio estándar de Artifact Registry.
  7. Si ha seleccionado Personalizado, introduzca la URL completa del repositorio en el campo Repositorio personalizado. La URL no se puede cambiar después de crear el repositorio.

    Para ver ejemplos de algunas URLs upstream habituales, consulta Upstreams personalizados.

  8. Si has seleccionado Repositorio de Artifact Registry:

    1. En el campo Repositorio de Artifact Registry, introduce el nombre completo del repositorio que quieras usar como upstream o haz clic en Examinar para ver una lista de los repositorios a los que tienes acceso. Solo se muestran los repositorios que tienen el mismo formato que tu repositorio remoto.
    2. Haz clic en el nombre del repositorio que quieras usar como upstream.
    3. Haz clic en Seleccionar.
  9. Si has seleccionado uno de los upstream predefinidos o has introducido una URL completa con el botón Personalizar, en Modo de autenticación del repositorio remoto, elige una de las siguientes opciones:

    • Autenticado: para introducir tu nombre de usuario y tu secreto para autenticarte en tu repositorio upstream.
    • Sin autenticación: para omitir la autenticación en el repositorio upstream.
  10. Si has seleccionado Autenticado, introduce lo siguiente:

    • En el campo Nombre de usuario, introduce tu nombre de usuario del repositorio upstream.
    • En el campo Secreto, introduce la versión del secreto en la que hayas guardado la contraseña del repositorio upstream.

    Puedes editar estos valores después de crear el repositorio. Para obtener más información sobre la autenticación en repositorios remotos upstream, consulta Configurar la autenticación en repositorios remotos upstream.

  11. En la sección Tipo de ubicación, elija la ubicación del repositorio:

    1. Elige el tipo de ubicación: región o multirregión. La lista de ubicaciones cambiará para reflejar tu selección.

    2. En la lista Región o Multirregión, selecciona una ubicación.

    Para obtener información sobre los tipos de ubicaciones y las ubicaciones admitidas, consulta Ubicaciones de repositorios.

  12. Añade una descripción del repositorio. Las descripciones ayudan a identificar la finalidad del repositorio y el tipo de artefactos que contiene.

    No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.

  13. Si quieres usar etiquetas para organizar tus repositorios, haz clic en Añadir etiqueta e introduce el par clave-valor de la etiqueta. Puedes añadir, editar o quitar etiquetas después de crear el repositorio.

  14. En la sección Cifrado, elige el mecanismo de cifrado del repositorio.

    • Google-managed encryption key: cifra el contenido del repositorio con Google-owned and Google-managed encryption key.
    • Clave gestionada por el cliente: encripta el contenido del repositorio con una clave que controlas a través de Cloud Key Management Service. Para obtener instrucciones sobre cómo configurar las claves, consulta el artículo Configurar claves de cifrado gestionadas por el cliente para repositorios.
  15. Si quieres usar políticas de limpieza para eliminar artefactos sin usar, en la sección Políticas de limpieza, haz lo siguiente:

    1. Selecciona Prueba para probar la política antes de aplicarla.
    2. Haz clic en Añadir política para añadir una política de conservación o eliminación a tu repositorio.
    3. Asigna un nombre descriptivo a la política de limpieza en el campo Nombre.
    4. En la sección Tipo de política, seleccione una de las siguientes opciones:

      • Eliminación condicional: elimina artefactos en función de las condiciones que definas.
      • Conservación condicional: conserva los artefactos en función de las condiciones que definas.
      • Conservar las versiones más recientes: conserva un número determinado de las versiones más recientes por paquete.

      Para obtener más información sobre las políticas de limpieza, consulta Configurar políticas de limpieza.

  16. En la sección Artifact Analysis (Análisis de artefactos), elija la configuración de análisis de vulnerabilidades:

    • Habilitado: permite analizar este repositorio. La API Container Scanning debe estar habilitada en tu proyecto.

      La facturación comienza en el momento en que se habilita la API Container Scanning. Después de habilitar la API Container Scanning en un proyecto, el análisis de vulnerabilidades se habilita en todos los repositorios nuevos y actuales. Cuando envías una imagen a Artifact Registry, Artifact Analysis la analiza automáticamente.

    • Inhabilitado: impide que se analice este repositorio. Si la API Container Scanning está habilitada en tu proyecto, el análisis continuará en otros repositorios, pero este se excluirá.

      Para obtener más información sobre las opciones de análisis de vulnerabilidades, consulta Habilitar e inhabilitar el análisis automático.

  17. Haz clic en Crear.

Artifact Registry crea el repositorio y lo añade a la lista de repositorios.

CLI de gcloud

Para crear un repositorio, ejecuta el comando del formato de repositorio adecuado:

Docker

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=docker \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --disable-vulnerability-scanning \
    --remote-docker-repo=UPSTREAM

Marcas opcionales para autenticarte en el repositorio upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Haz los cambios siguientes:

  • REMOTE-REPOSITORY-NAME con el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.
  • PROJECT_ID por el ID del proyecto. Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si defines un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comando gcloud artifacts locations list.
  • DESCRIPTION con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • REMOTE-REPOSITORY-DESCRIPTION con una descripción de la configuración del repositorio externo de este repositorio remoto.
  • USERNAME Opcionalmente, si usas la autenticación, con tu nombre de usuario para autenticarte en el repositorio upstream.
  • SECRET_VERSION opcionalmente, si usas la autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre predefinido del upstream, la ruta del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream.

    En el caso de los repositorios upstream de Artifact Registry, el formato de la ruta del repositorio debe ser similar al siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los upstream predefinidos disponibles y los upstream definidos por el usuario admitidos, consulta Formatos admitidos.

  • --disable-vulnerability-scanning: es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Habilitar o inhabilitar el análisis automático.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 del proyecto Google Cloud my-project y puede autenticarse en el repositorio upstream con el nombre de usuario my-username y la versión del secreto projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=docker \
    --location=us-east1 \
    --description="Remote Docker repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Docker Hub" \
    --remote-username=my-username \
    --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
    --remote-docker-repo=DOCKER-HUB

Para obtener más información sobre cómo autenticarte en repositorios upstream de Docker Hub, consulta Configurar la autenticación de repositorios remotos en Docker Hub.

Maven

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=maven \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --disable-vulnerability-scanning \
    --remote-mvn-repo=UPSTREAM

Marcas opcionales para autenticarte en el repositorio upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Haz los cambios siguientes:

  • REMOTE-REPOSITORY-NAME con el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.
  • PROJECT_ID por el ID del proyecto. Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si defines un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comando gcloud artifacts locations list.
  • DESCRIPTION con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • REMOTE-REPOSITORY-DESCRIPTION con una descripción de la configuración del repositorio externo de este repositorio remoto.
  • USERNAME Opcionalmente, si usas la autenticación, con tu nombre de usuario para autenticarte en el repositorio upstream.
  • SECRET_VERSION opcionalmente, si usas la autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre predefinido del upstream, la ruta del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream.

    En el caso de los repositorios upstream de Artifact Registry, el formato de la ruta del repositorio debe ser similar al siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los upstream predefinidos disponibles y los upstream definidos por el usuario admitidos, consulta Formatos admitidos.

  • --disable-vulnerability-scanning: es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Habilitar o inhabilitar el análisis automático.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 del proyecto Google Cloud my-project y puede autenticarse en el repositorio upstream con el nombre de usuario my-username y la versión del secreto projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=maven \
    --location=us-east1 \
    --description="Remote Maven repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Maven Central" \
    --remote-username=my-username \
    --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
    --remote-mvn-repo=MAVEN-CENTRAL

npm

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=npm \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --disable-vulnerability-scanning \
    --remote-npm-repo=UPSTREAM

Marcas opcionales para autenticarte en el repositorio upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Haz los cambios siguientes:

  • REMOTE-REPOSITORY-NAME con el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.
  • PROJECT_ID por el ID del proyecto. Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si defines un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comando gcloud artifacts locations list.
  • DESCRIPTION con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • REMOTE-REPOSITORY-DESCRIPTION con una descripción de la configuración del repositorio externo de este repositorio remoto.
  • USERNAME Opcionalmente, si usas la autenticación, con tu nombre de usuario para autenticarte en el repositorio upstream.
  • SECRET_VERSION opcionalmente, si usas la autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre predefinido del upstream, la ruta del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream.

    En el caso de los repositorios upstream de Artifact Registry, el formato de la ruta del repositorio debe ser similar al siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los upstream predefinidos disponibles y los upstream definidos por el usuario admitidos, consulta Formatos admitidos.

  • --disable-vulnerability-scanning: es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Habilitar o inhabilitar el análisis automático.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 del proyecto Google Cloud my-project y puede autenticarse en el repositorio upstream con el nombre de usuario my-username y la versión del secreto projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=npm \
    --location=us-east1 \
    --description="Remote npm repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Public npm registry" \
    --remote-username=my-username \
    --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
    --remote-npm-repo=NPMJS

Python

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=python \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --disable-vulnerability-scanning \
    --remote-python-repo=UPSTREAM

Marcas opcionales para autenticarte en el repositorio upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Haz los cambios siguientes:

  • REMOTE-REPOSITORY-NAME con el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.
  • PROJECT_ID por el ID del proyecto. Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si defines un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comando gcloud artifacts locations list.
  • DESCRIPTION con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • REMOTE-REPOSITORY-DESCRIPTION con una descripción de la configuración del repositorio externo de este repositorio remoto.
  • USERNAME Opcionalmente, si usas la autenticación, con tu nombre de usuario para autenticarte en el repositorio upstream.
  • SECRET_VERSION opcionalmente, si usas la autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre predefinido del upstream, la ruta del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream.

    En el caso de los repositorios upstream de Artifact Registry, el formato de la ruta del repositorio debe ser similar al siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los upstream predefinidos disponibles y los upstream definidos por el usuario admitidos, consulta Formatos admitidos.

  • --disable-vulnerability-scanning: es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Habilitar o inhabilitar el análisis automático.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 del proyecto Google Cloud my-project y puede autenticarse en el repositorio upstream con el nombre de usuario my-username y la versión del secreto projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=python \
    --location=us-east1 \
    --description="Remote Python repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="PyPI" \
    --remote-username=my-username \
    --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
    --remote-python-repo=PYPI

Apt (vista previa)

gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
    --project=PROJECT_ID \
    --repository-format=apt \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
    --remote-apt-repo=APT_REPOSITORY_BASE \
    --remote-apt-repo-path="APT_REPOSITORY_PATH"

Haz los cambios siguientes:

  • REMOTE_REPOSITORY_NAME con el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.
  • PROJECT_ID por el ID del proyecto. Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si defines un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comando gcloud artifacts locations list.
  • DESCRIPTION con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • REMOTE_REPOSITORY_DESCRIPTION con una descripción opcional de la configuración del repositorio externo de este repositorio remoto.
  • APT_REPOSITORY_BASE con uno de los nombres base de repositorio admitidos que se indican en la sección Paquetes de SO admitidos de fuentes ascendentes de los repositorios remotos de Apt.
  • APT_REPOSITORY_PATH con el resto de la URL del repositorio upstream que quieras almacenar en caché en tu repositorio remoto después de la base del repositorio.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo para almacenar en caché el repositorio de Debian Buster en la región us-east1 del proyecto Google Cloud my-project. La URL completa del repositorio upstream es http://deb.debian.org/debian/dists/buster.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=apt \
    --location=us-east1 \
    --description="Apt remote repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Debian buster distribution" \
    --remote-apt-repo=DEBIAN \
    --remote-apt-repo-path="debian/dists/buster"

Yum (vista previa)

gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
    --project=PROJECT_ID \
    --repository-format=yum \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
    --remote-yum-repo=YUM_REPOSITORY_BASE \
    --remote-yum-repo-path="YUM_REPOSITORY_PATH"

Haz los cambios siguientes:

  • REMOTE_REPOSITORY_NAME con el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.
  • PROJECT_ID por el ID del proyecto. Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si defines un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comando gcloud artifacts locations list.
  • DESCRIPTION con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • REMOTE_REPOSITORY_DESCRIPTION con una descripción opcional de la configuración del repositorio externo de este repositorio remoto.
  • YUM_REPOSITORY_BASE con uno de los nombres base de repositorio admitidos que se indican en la sección Paquetes de SO admitidos por Yum para repositorios remotos de Yum.
  • YUM_REPOSITORY_PATH con el resto de la URL del repositorio upstream que quieras almacenar en caché en tu repositorio remoto después de la base del repositorio.

Por ejemplo, el siguiente comando crea un repositorio remoto para paquetes Yum llamado my-repo en la región us-east1 del proyecto Google Cloud my-project para el repositorio upstream 9-stream/BaseOs/x86_64/os. La URL completa del repositorio es https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=yum \
    --location=us-east1 \
    --description="Yum remote repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="CentOS 8 x86" \
    --remote-yum-repo=CENTOS_STREAM \
    --remote-yum-repo-path="9-stream/BaseOs/x86_64/os"

Go

Los repositorios remotos de Go de Artifact Registry solo admiten el upstream público https://proxy.golang.

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=go \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --remote-go-repo=https://proxy.golang.org

Haz los cambios siguientes:

  • REMOTE-REPOSITORY-NAME es el nombre del repositorio. Los nombres de los repositorios deben ser únicos en cada ubicación de repositorio de un proyecto.
  • PROJECT_ID es el ID del proyecto. Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si defines un valor predeterminado. Para ver una lista de las ubicaciones admitidas, ejecuta el comando gcloud artifacts locations list.

  • DESCRIPTION es una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.

  • REMOTE-REPOSITORY-DESCRIPTION es una descripción de la configuración del repositorio externo de este repositorio remoto.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 del proyecto Google Cloud my-project.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=go \
    --location=us-east1 \
    --description="Remote Go repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Go proxy" \
    --remote-go-repo=https://proxy.golang.org

Artifact Registry crea el repositorio. Ejecuta el siguiente comando para ver una descripción del repositorio:

gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
    --location=LOCATION

Terraform

Usa el recurso google_artifact_registry_repository para crear repositorios. Se requiere la versión terraform-provider-google 5.0.0 o una posterior.

Si no has usado Terraform para Google Cloud, consulta la página Empezar Google Cloud del sitio web de HashiCorp.

En el siguiente ejemplo se define el proveedor y un repositorio remoto con el nombre de recurso de Terraform my-repo.

Docker

provider "google" {
    project = "PROJECT-ID"
}

resource "google_artifact_registry_repository" "my-repo" {
  location      = "LOCATION"
  repository_id = "REPOSITORY_ID"
  description   = "DESCRIPTION"
  format        = "docker"
  kms_key_name = "KEY"
  mode          = "REMOTE_REPOSITORY"
  remote_repository_config {
    description = "CONFIG_DESCRIPTION"
    docker_repository {
      public_repository = "DOCKER_HUB"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-ID es el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • KEY es el nombre de la clave de Cloud Key Management Service si usas claves de cifrado gestionadas por el cliente (CMEK) para el cifrado. Omite este argumento para usar el ajuste predeterminado, que son las claves de cifrado gestionadas por Google.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza eliminan artefactos o solo registra qué artefactos se eliminarían si se definieran políticas de limpieza en el repositorio. Omítelo si no quieres añadir políticas de limpieza al repositorio. * true: define las políticas para que se ejecuten en el modo de prueba de funcionamiento. No se elimina ningún artefacto en el modo de prueba. * false: aplica las políticas de limpieza. Los artefactos se eliminan o se conservan en función de las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configurar políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica tanto a los artefactos etiquetados como a los que no lo están. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden eliminar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas a los que se aplica la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquete para aplicar la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión de un artefacto al repositorio, especificado como duración. Puedes especificar duraciones en segundos, minutos, horas o días añadiendo s, m, h o d, respectivamente.
    • KEEP_COUNT es el número de versiones por paquete de un artefacto que se va a conservar en el repositorio.

Maven

Si no especificas una política de versiones, Artifact Registry crea un repositorio de Maven que almacena tanto las versiones de lanzamiento como las de instantánea de los paquetes de forma predeterminada.

provider "google" {
    project = "PROJECT-ID"
}

resource "google_artifact_registry_repository" "my-repo" {
  location      = "LOCATION"
  repository_id = "REPOSITORY_ID"
  description   = "DESCRIPTION"
  format        = "maven"
  kms_key_name = "KEY"
  mode          = "REMOTE_REPOSITORY"
  remote_repository_config {
    description = "CONFIG_DESCRIPTION"
    maven_repository {
      public_repository = "MAVEN_CENTRAL"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-ID es el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • KEY es el nombre de la clave de Cloud Key Management Service si usas claves de cifrado gestionadas por el cliente (CMEK) para el cifrado. Omite este argumento para usar el ajuste predeterminado, que son las claves de cifrado gestionadas por Google.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza eliminan artefactos o solo registra qué artefactos se eliminarían si se definieran políticas de limpieza en el repositorio. Omítelo si no quieres añadir políticas de limpieza al repositorio. * true: define las políticas para que se ejecuten en el modo de prueba de funcionamiento. No se elimina ningún artefacto en el modo de prueba. * false: aplica las políticas de limpieza. Los artefactos se eliminan o se conservan en función de las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configurar políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica tanto a los artefactos etiquetados como a los que no lo están. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden eliminar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas a los que se aplica la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquete para aplicar la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión de un artefacto al repositorio, especificado como duración. Puedes especificar duraciones en segundos, minutos, horas o días añadiendo s, m, h o d, respectivamente.
    • KEEP_COUNT es el número de versiones por paquete de un artefacto que se va a conservar en el repositorio.

Para almacenar versiones de lanzamiento y de instantánea en repositorios diferentes, especifica una política de versiones para el repositorio mediante un bloque maven_config. Este bloque admite los siguientes ajustes:

  • version_policy define la política de versiones con uno de los siguientes valores:
    • VERSION_POLICY_UNSPECIFIED: almacena la captura y los paquetes de lanzamiento. Esta es la opción predeterminada.
    • RELEASE: solo paquetes de lanzamiento de la tienda.
    • SNAPSHOT: almacena solo los paquetes de la captura.
  • allow_snapshot_overwrites configura un repositorio con una política de versiones SNAPSHOT para aceptar snapshots no únicos que sobrescriban las versiones existentes en el repositorio.

En el siguiente ejemplo se define un repositorio de Maven con una política de versiones de lanzamiento.

provider "google" {
project = "my-project"
}

resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta

location = "LOCATION"
repository_id = "my-repo"
description = "Maven repository"
format = "MAVEN"
mode = "REMOTE_REPOSITORY"
maven_config {
  version_policy = "RELEASE"
}
}

npm

provider "google" {
    project = "PROJECT-ID"
}

resource "google_artifact_registry_repository" "my-repo" {
  location      = "LOCATION"
  repository_id = "REPOSITORY_ID"
  description   = "DESCRIPTION"
  format        = "npm"
  kms_key_name = "KEY"
  mode          = "REMOTE_REPOSITORY"
  remote_repository_config {
    description = "CONFIG_DESCRIPTION"
    npm_repository {
      public_repository = "NPMJS"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-ID es el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • KEY es el nombre de la clave de Cloud Key Management Service si usas claves de cifrado gestionadas por el cliente (CMEK) para el cifrado. Omite este argumento para usar el ajuste predeterminado, que son las claves de cifrado gestionadas por Google.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza eliminan artefactos o solo registra qué artefactos se eliminarían si se definieran políticas de limpieza en el repositorio. Omítelo si no quieres añadir políticas de limpieza al repositorio. * true: define las políticas para que se ejecuten en el modo de prueba de funcionamiento. No se elimina ningún artefacto en el modo de prueba. * false: aplica las políticas de limpieza. Los artefactos se eliminan o se conservan en función de las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configurar políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica tanto a los artefactos etiquetados como a los que no lo están. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden eliminar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas a los que se aplica la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquete para aplicar la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión de un artefacto al repositorio, especificado como duración. Puedes especificar duraciones en segundos, minutos, horas o días añadiendo s, m, h o d, respectivamente.
    • KEEP_COUNT es el número de versiones por paquete de un artefacto que se va a conservar en el repositorio.

Python

provider "google" {
    project = "PROJECT-ID"
}

resource "google_artifact_registry_repository" "my-repo" {
  location      = "LOCATION"
  repository_id = "REPOSITORY_ID"
  description   = "DESCRIPTION"
  format        = "python"
  kms_key_name = "KEY"
  mode          = "REMOTE_REPOSITORY"
  remote_repository_config {
    description = "CONFIG_DESCRIPTION"
    python_repository {
      public_repository = "PYPI"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-ID es el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • KEY es el nombre de la clave de Cloud Key Management Service si usas claves de cifrado gestionadas por el cliente (CMEK) para el cifrado. Omite este argumento para usar el ajuste predeterminado, que son las claves de cifrado gestionadas por Google.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza eliminan artefactos o solo registra qué artefactos se eliminarían si se definieran políticas de limpieza en el repositorio. Omítelo si no quieres añadir políticas de limpieza al repositorio. * true: define las políticas para que se ejecuten en el modo de prueba de funcionamiento. No se elimina ningún artefacto en el modo de prueba. * false: aplica las políticas de limpieza. Los artefactos se eliminan o se conservan en función de las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configurar políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica tanto a los artefactos etiquetados como a los que no lo están. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden eliminar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas a los que se aplica la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquete para aplicar la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión de un artefacto al repositorio, especificado como duración. Puedes especificar duraciones en segundos, minutos, horas o días añadiendo s, m, h o d, respectivamente.
    • KEEP_COUNT es el número de versiones por paquete de un artefacto que se va a conservar en el repositorio.

Apt (vista previa)

  provider "google" {
  project = "PROJECT_ID"
}

resource "google_artifact_registry_repository" "my-repo" {
  location      = "LOCATION"
  repository_id = "REPOSITORY_ID"
  description   = "DESCRIPTION"
  format        = "APT"
  mode          = "REMOTE_REPOSITORY"
  remote_repository_config {
    description = "CONFIG_DESCRIPTION"
    apt_repository {
      public_repository {
        repository_base = "REPOSITORY_BASE"
        repository_path = "REPOSITORY_PATH"
      }
    }
  }
}

Dónde

  • PROJECT-ID es el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • CONFIG_DESCRIPTION es la descripción opcional de la fuente remota.
  • REPOSITORY_BASE es el repositorio público predefinido de Apt. Los valores posibles son DEBIAN y UBUNTU.
  • REPOSITORY_PATH es el repositorio específico de la base. Por ejemplo, debian/dists/buster.

Yum (vista previa)

  provider "google" {
  project = "PROJECT_ID"
}

resource "google_artifact_registry_repository" "my-repo" {
  location      = "LOCATION"
  repository_id = "REPOSITORY_ID"
  description   = "DESCRIPTION"
  format        = "YUM"
  mode          = "REMOTE_REPOSITORY"
  remote_repository_config {
    description = "CONFIG_DESCRIPTION"
    yum_repository {
      public_repository {
        repository_base = "REPOSITORY_BASE"
        repository_path = "REPOSITORY_PATH"
      }
    }
  }
}

Dónde

  • PROJECT-ID es el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están cifradas.
  • CONFIG_DESCRIPTION es la descripción opcional de la fuente remota.
  • REPOSITORY_BASE es el repositorio público predefinido de Yum. Los valores posibles son CENTOS, CENTOS_DEBUG, CENTOS_VAULT, CENTOS_STREAM, ROCKY y EPEL.
  • REPOSITORY_PATH es el repositorio específico de la base. Por ejemplo, "centos/8-stream/BaseOS/x86_64/os.

Artifact Registry crea el repositorio. Ejecuta el siguiente comando para ver una descripción del repositorio:

gcloud artifacts repositories describe REPOSITORY \
    --location=LOCATION

Una vez que hayas creado el repositorio, haz lo siguiente:

Editar descripciones de repositorios

Puedes cambiar la descripción del repositorio desde la Google Cloud consola o la CLI de gcloud.

Consola

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

    Abre la página Repositorios.

  2. En la lista de repositorios, selecciona el repositorio y haz clic en Editar repositorio.

  3. Edita la descripción del repositorio y haz clic en Guardar.

gcloud

Para actualizar la descripción del repositorio, ejecuta el siguiente comando:

gcloud artifacts repositories update REPOSITORY \
    --project=PROJECT \
    --location=LOCATION \
    --description="DESCRIPTION"

Haz los cambios siguientes:

  • REPOSITORY: el nombre del repositorio. Si has configurado un repositorio predeterminado, puedes omitir esta marca para usar el predeterminado.
  • PROJECT: el ID del proyecto. Google Cloud Si se omite esta marca, se usará el proyecto actual o el predeterminado.
  • LOCATION es la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios de una ubicación específica. Si has configurado una ubicación predeterminada, puedes omitir esta marca para usarla.
  • DESCRIPTION: una descripción del repositorio.

Acceso a fuentes upstream en un perímetro de servicio

Los servicios de un perímetro de servicio de Controles de Servicio de VPC tienen acceso restringido a los recursos que están fuera del perímetro.

Puedes permitir o denegar el acceso a fuentes de origen en un proyecto y una ubicación especificados.Google Cloud

De forma predeterminada, Artifact Registry deniega el acceso a las fuentes upstream si no lo has concedido explícitamente.

En Artifact Registry, el rol necesario es Administrador de Artifact Registry (roles/artifactregistry.admin).

Ver la configuración de las fuentes de origen

Para ver la configuración de una combinación específica de proyecto y ubicación, ejecuta el siguiente comando:

gcloud artifacts vpcsc-config describe \
    --project=PROJECT_ID \
    --location=LOCATION

Por ejemplo, usa el siguiente comando para ver los ajustes de los repositorios remotos en us-east1 del proyecto my-project:

gcloud artifacts vpcsc-config describe \
    --project=my-project \
    --location=us-east1

Permitir el acceso a fuentes de origen

Para permitir el acceso a fuentes de upstream en una ubicación específica, ejecuta el siguiente comando:

gcloud artifacts vpcsc-config allow \
    --project=PROJECT_ID \
    --location=LOCATION

Por ejemplo, usa el siguiente comando para permitir que todos los repositorios remotos de us-east1 del proyecto my-project accedan a sus fuentes upstream fuera del perímetro:

gcloud artifacts vpcsc-config allow \
    --project=my-project \
    --location=us-east1

Denegar el acceso a las fuentes de origen

Si deniega el acceso a las fuentes de origen, los artefactos almacenados en caché en los repositorios remotos seguirán estando disponibles.

Para denegar el acceso a las fuentes de origen en una ubicación específica, ejecuta el siguiente comando:

gcloud artifacts vpcsc-config deny \
    --project=PROJECT_ID \
    --location=LOCATION

Por ejemplo, usa el siguiente comando para bloquear el acceso a las fuentes de origen fuera del perímetro de todos los repositorios remotos de us-west1 en el proyecto my-project:

gcloud artifacts vpcsc-config deny \
    --project=my-project \
    --location=us-west1

Siguientes pasos