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 Docker Hub, Maven Central, el índice de paquetes de Python (PyPI), Debian o CentOS
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 solicites la misma versión del paquete, Artifact Registry entregará la copia almacenada en caché.
Si solicitas un artefacto de una fuente upstream que no existe o que no contiene la versión que especificaste, la solicitud fallará.
Los otros modos de repositorio son los siguientes:
- Estándar: Es el modo de repositorio predeterminado. Subes o publicas artefactos, como paquetes privados, directamente a 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 herramientas.
- Virtual: Es un repositorio que actúa como un único punto de acceso para varios repositorios ascendentes, incluidos los repositorios remotos y estándar.
Para obtener más detalles sobre el funcionamiento de los repositorios remotos, consulta la descripción general de los repositorios remotos.
Antes de comenzar
- Habilita Artifact Registry, incluida la habilitación de la API de Artifact Registry y la instalación de Google Cloud CLI.
- Opcional: Configura valores predeterminados para los comandos de gcloud CLI.
- Si necesitas claves de encriptación administradas por el cliente (CMEK) para encriptar el contenido del repositorio, crea y habilita una clave en Cloud KMS para el repositorio.
Si quieres autenticarte en un repositorio upstream, habilita la API de Secret Manager.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_ID
Si Artifact Registry se encuentra en un perímetro de servicio de los Controles del servicio de VPC, habilita la API de Access Context Manager si aún no está habilitada.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Si deseas configurar un repositorio de Artifact Registry como tu fuente y se encuentra en un proyecto diferente al de tu repositorio remoto, debes otorgarle a la cuenta de servicio del proyecto del repositorio remoto acceso al proyecto del repositorio de origen antes de crear el repositorio remoto.
Otorga el rol de agente de servicio Los repositorios remotos usan el Agente de servicio de Artifact Registry para autenticarse en los repositorios upstream de Artifact Registry. Debes otorgarle acceso de lectura al repositorio directo al agente de servicio del repositorio remoto.
Para otorgar al agente de servicio del repositorio remoto el rol de 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
Reemplaza lo siguiente:
UPSTREAM_REPOSITORY
es el ID del repositorio upstream. Los repositorios directos de Artifact Registry deben ser repositorios de modo estándar.REMOTE_PROJECT_NUMBER
es el número de proyecto del proyecto Google Cloud de tu repositorio remoto.REMOTE_PROJECT_ID
es el ID del proyecto Google Cloud de tu repositorio remoto.REGION
es la región en la que deseas crear tu repositorio remoto.UPSTREAM_PROJECT_ID
es el ID del proyecto Google Cloud con el repositorio upstream.
Roles obligatorios
Para obtener los permisos que necesitas para administrar repositorios, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Crear repositorios remotos y otorgar acceso a repositorios individuales: Administrador de Artifact Registry (
roles/artifactregistry.admin
) en el proyecto -
Guarda las credenciales de tu repositorio upstream en una versión del secreto:
Administrador de Secret Manager (
roles/secretmanager.admin
) en el proyecto -
Otorga acceso a fuentes upstream fuera de un perímetro de servicio de los Controles del servicio de VPC:
Editor de Access Context Manager (
roles/accesscontextmanager.policyEditor
) en el proyecto, la carpeta o la organización en la que se aplica la política de acceso
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Crea un repositorio remoto
Cuando creas un repositorio remoto, debes configurar los siguientes parámetros, que no se pueden cambiar después de crear el repositorio:
- Formato del artefacto.
- El modo del repositorio está configurado como remoto.
- Fuente upstream del repositorio remoto.
- Ubicación del repositorio.
- Encriptación con Google-owned and Google-managed encryption keys o claves de encriptación administradas por el cliente Artifact Registry usa Google-owned and Google-managed encryption keys de forma predeterminada.
Artifact Registry aplica las restricciones de las políticas de la organización que requieren CMEK para encriptar recursos o limitar las claves de Cloud KMS que se pueden usar para la protección de CMEK.
Crea un repositorio remoto con la consola de Google Cloud
Abre la página Repositorios en la consola de Google Cloud.
Haz clic en Crear repositorio.
Especifica el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
En la sección Formato, selecciona el formato del repositorio.
En la sección Modo de repositorio, selecciona Remoto.
En la sección Fuente del repositorio remoto, selecciona una de las siguientes formas de ingresar la URL del repositorio upstream:
- Selecciona la fuente upstream predeterminada que aparece en la lista para tu tipo de formato.
- Selecciona Personalizado para especificar la URL completa a un repositorio público o privado para los formatos compatibles.
- Selecciona Repositorio de Artifact Registry para elegir un repositorio estándar de Artifact Registry.
Si seleccionaste Personalizado, en el campo Repositorio personalizado, ingresa la URL completa del repositorio. No se puede cambiar la URL después de crear el repositorio.
Para ver ejemplos de algunas URLs de origen comunes, consulta Orígenes personalizados.
Si seleccionaste Repositorio de Artifact Registry, haz lo siguiente:
- En el campo Repositorio de Artifact Registry, ingresa el nombre completo del repositorio que deseas usar como upstream o haz clic en Explorar para ver una lista de los repositorios a los que tienes acceso. Solo se muestran los repositorios del mismo formato que el repositorio remoto.
- Haz clic en el nombre del repositorio que deseas usar como fuente.
- Haz clic en Seleccionar.
Si seleccionaste uno de los flujos ascendentes predefinidos o ingresaste una URL completa con el botón Personalizado, en el Modo de autenticación de repositorio remoto, elige una de las siguientes opciones:
- Autenticado: Para ingresar tu nombre de usuario y secreto para la autenticación en tu repositorio upstream.
- Sin autenticación: Para omitir la autenticación en el repositorio upstream.
Si seleccionaste Autenticado, ingresa lo siguiente:
- En el campo Nombre de usuario, ingresa tu nombre de usuario para el repositorio upstream.
- En el campo Secreto, ingresa la versión del secreto en la que guardaste 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 los flujos ascendentes de repositorios remotos, consulta Configura la autenticación en los flujos ascendentes de repositorios remotos.
En la sección Tipo de ubicación, elige la ubicación para el repositorio:
Elige el tipo de ubicación: Región o Multirregión. La lista de ubicaciones cambia para reflejar tu selección.
En la lista Región o Multirregión, selecciona una ubicación.
Para obtener información sobre los tipos de ubicación y sobre las ubicaciones compatibles, consulta Ubicaciones de repositorios.
Agrega una descripción para el repositorio. Las descripciones ayudan a identificar el propósito del repositorio y el tipo de artefactos que contiene.
No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
Si deseas usar etiquetas para organizar tus repositorios, haz clic en Agregar etiqueta y, luego, ingresa el par clave-valor de la etiqueta. Puedes agregar, editar o quitar etiquetas después de crear el repositorio.
En la sección Encryption, elige el mecanismo de encriptación para el repositorio.
- Google-managed encryption key: Encripta el contenido del repositorio con un Google-owned and Google-managed encryption key.
- 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.
Si deseas usar políticas de limpieza para borrar artefactos que no se usan, en la sección Políticas de limpieza, haz lo siguiente:
- Selecciona Ejecución de prueba para probar la política antes de aplicarla.
- Haz clic en Agregar política para agregar una política de retención o eliminación a tu repositorio.
- Asigna un nombre descriptivo a tu política de limpieza en el campo Nombre.
En la sección Tipo de política, selecciona una de las siguientes opciones:
- Eliminación condicional: Borra artefactos según las condiciones que definas.
- Conservación condicional: Conserva artefactos según las condiciones que definas.
Keep most recent versions: Conserva una cantidad establecida de versiones más recientes por paquete.
Para obtener más detalles sobre las políticas de limpieza, consulta Configura políticas de limpieza.
En la sección Artifact Analysis, elige la configuración de análisis de vulnerabilidades:
Habilitado: Permite el análisis en este repositorio. La API de Container Scanning debe estar habilitada en tu proyecto.
La facturación se iniciará de forma inmediata después de que hayas habilitado la API de Container Scanning. Después de habilitar la API de Container Scanning en un proyecto, se habilita el análisis de vulnerabilidades para todos los repositorios nuevos y existentes. Cuando envías una imagen a Artifact Registry, Artifact Analysis la analiza automáticamente.
Inhabilitado: Evita el análisis en este repositorio. Si la API de Container Scanning está habilitada en tu proyecto, el análisis continúa en otros repositorios; este repositorio se excluirá.
Para obtener más información sobre las opciones de análisis de vulnerabilidades, consulta Habilita y, luego, inhabilita el análisis automático.
Haz clic en Crear.
Artifact Registry crea el repositorio y lo agrega a la lista de repositorios.
Después de crear el repositorio, haz lo siguiente:
- Otorga acceso al repositorio.
- Configura Docker, los administradores de paquetes y otros clientes externos para que se autentiquen en los repositorios.
- Configura los repositorios remotos de Artifact Registry para que se autentiquen en sus fuentes upstream.
- Imágenes de contenedor: Configura la autenticación de repositorio remoto en Docker Hub
- Paquetes de idioma:
- Flujos ascendentes personalizados definidos por el usuario: Configura la autenticación en los flujos ascendentes de repositorios remotos
Crea un repositorio remoto con gcloud CLI
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 autenticar en el repositorio upstream:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Reemplaza lo siguiente:
REMOTE-REPOSITORY-NAME
por el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.PROJECT_ID
por el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.LOCATION
con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el comandogcloud artifacts locations list
.DESCRIPTION
con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.REMOTE-REPOSITORY-DESCRIPTION
con una descripción de la configuración del repositorio externo para este repositorio remoto.USERNAME
de forma opcional, si usas autenticación, con tu nombre de usuario para autenticarte en el repositorio upstreamSECRET_VERSION
de forma opcional, si usas autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstreamUPSTREAM
con el nombre preestablecido upstream, la ruta de acceso del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream
Para los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Para obtener información sobre los flujos ascendentes predefinidos disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.--disable-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para inhabilitar el análisis de vulnerabilidades automático.--allow-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para permitir el análisis de vulnerabilidades automático. Para obtener más información, consulta Habilita o inhabilita el análisis automático.
Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo
en la región us-east1
en el proyecto Google Cloud my-project
y puede autenticarse en el repositorio upstream con el nombre de usuario my-username
y la versión secreta 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 autenticar en los repositorios upstream de Docker Hub, consulta Configura 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 autenticar en el repositorio upstream:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Reemplaza lo siguiente:
REMOTE-REPOSITORY-NAME
por el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.PROJECT_ID
por el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.LOCATION
con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el comandogcloud artifacts locations list
.DESCRIPTION
con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.REMOTE-REPOSITORY-DESCRIPTION
con una descripción de la configuración del repositorio externo para este repositorio remoto.USERNAME
de forma opcional, si usas autenticación, con tu nombre de usuario para autenticarte en el repositorio upstreamSECRET_VERSION
de forma opcional, si usas autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstreamUPSTREAM
con el nombre preestablecido upstream, la ruta de acceso del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream
Para los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Para obtener información sobre los flujos ascendentes predefinidos disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.--disable-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para inhabilitar el análisis de vulnerabilidades automático.--allow-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para permitir el análisis de vulnerabilidades automático. Para obtener más información, consulta Habilita o inhabilita el análisis automático.
Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo
en la región us-east1
en el proyecto Google Cloud my-project
y puede autenticarse en el repositorio upstream con el nombre de usuario my-username
y la versión secreta 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 autenticar en el repositorio upstream:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Reemplaza lo siguiente:
REMOTE-REPOSITORY-NAME
por el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.PROJECT_ID
por el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.LOCATION
con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el comandogcloud artifacts locations list
.DESCRIPTION
con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.REMOTE-REPOSITORY-DESCRIPTION
con una descripción de la configuración del repositorio externo para este repositorio remoto.USERNAME
de forma opcional, si usas autenticación, con tu nombre de usuario para autenticarte en el repositorio upstreamSECRET_VERSION
de forma opcional, si usas autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstreamUPSTREAM
con el nombre preestablecido upstream, la ruta de acceso del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream
Para los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Para obtener información sobre los flujos ascendentes predefinidos disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.--disable-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para inhabilitar el análisis de vulnerabilidades automático.--allow-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para permitir el análisis de vulnerabilidades automático. Para obtener más información, consulta Habilita o inhabilita el análisis automático.
Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo
en la región us-east1
en el proyecto Google Cloud my-project
y puede autenticarse en el repositorio upstream con el nombre de usuario my-username
y la versión secreta 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 autenticar en el repositorio upstream:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Reemplaza lo siguiente:
REMOTE-REPOSITORY-NAME
por el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.PROJECT_ID
por el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.LOCATION
con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el comandogcloud artifacts locations list
.DESCRIPTION
con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.REMOTE-REPOSITORY-DESCRIPTION
con una descripción de la configuración del repositorio externo para este repositorio remoto.USERNAME
de forma opcional, si usas autenticación, con tu nombre de usuario para autenticarte en el repositorio upstreamSECRET_VERSION
de forma opcional, si usas autenticación, con la versión secreta que contiene la contraseña de tu repositorio upstreamUPSTREAM
con el nombre preestablecido upstream, la ruta de acceso del repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream
Para los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Para obtener información sobre los flujos ascendentes predefinidos disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.--disable-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para inhabilitar el análisis de vulnerabilidades automático.--allow-vulnerability-scanning
: Es una marca opcional que configura tu repositorio para permitir el análisis de vulnerabilidades automático. Para obtener más información, consulta Habilita o inhabilita el análisis automático.
Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo
en la región us-east1
en el proyecto Google Cloud my-project
y puede autenticarse en el repositorio upstream con el nombre de usuario my-username
y la versión secreta 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 (versión preliminar)
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"
Reemplaza lo siguiente:
REMOTE_REPOSITORY_NAME
por el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.PROJECT_ID
por el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.LOCATION
con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el comandogcloud artifacts locations list
.DESCRIPTION
con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.REMOTE_REPOSITORY_DESCRIPTION
con una descripción opcional para la configuración del repositorio externo de este repositorio remoto.APT_REPOSITORY_BASE
con uno de los nombres de base de repositorio compatibles que se enumeran en los flujos ascendentes compatibles con el paquete del SO para los repositorios remotos de Apt.APT_REPOSITORY_PATH
con el resto de la URL del repositorio upstream que deseas 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 Debian buster en la región us-east1
en el proyecto my-project
de Google Cloud . 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 (versión preliminar)
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"
Reemplaza lo siguiente:
REMOTE_REPOSITORY_NAME
por el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.PROJECT_ID
por el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.LOCATION
con la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el comandogcloud artifacts locations list
.DESCRIPTION
con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.REMOTE_REPOSITORY_DESCRIPTION
con una descripción opcional para la configuración del repositorio externo de este repositorio remoto.YUM_REPOSITORY_BASE
con uno de los nombres de base de repositorio compatibles que se enumeran en los flujos ascendentes compatibles con el paquete del SO para los repositorios remotos de Yum.YUM_REPOSITORY_PATH
con el resto de la URL del repositorio upstream que deseas almacenar en caché en tu repositorio remoto después de la base del repositorio.
Por ejemplo, el siguiente comando crea un repositorio remoto para los paquetes de Yum
llamado my-repo
en la región us-east1
en el Google Cloud proyecto
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"
Artifact Registry crea tu repositorio. Ejecuta el siguiente comando para ver una descripción del repositorio:
gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
--location=LOCATION
Después de crear el repositorio, haz lo siguiente:
- Otorga acceso al repositorio.
- Configura políticas de limpieza para borrar los artefactos que no se usen.
- Configura Docker, los administradores de paquetes y otros clientes externos para que se autentiquen en los repositorios.
- Configura los repositorios remotos de Artifact Registry para que se autentiquen en sus fuentes upstream.
- Imágenes de contenedor: Configura la autenticación de repositorio remoto en Docker Hub
- Paquetes de idioma:
- Flujos ascendentes personalizados definidos por el usuario: Configura la autenticación en los flujos ascendentes de repositorios remotos
Crea un repositorio remoto con Terraform
Usa el recurso google_artifact_registry_repository para crear repositorios.
Se requiere la versión 5.0.0
o una posterior de terraform-provider-google
.
Si es la primera vez que usas Terraform para Google Cloud, consulta la página Comenzar con Google Cloud en el sitio web de HashiCorp.
En el siguiente ejemplo, se define el proveedor y un repositorio remoto con el nombre del 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.DESCRIPTION
es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.KEY
es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.CONFIG_DESCRIPTION
es la descripción opcional de la fuente remota.DRY_RUN_STATUS
determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se configuran políticas de limpieza en el repositorio. Omítela si no quieres agregar políticas de limpieza al repositorio. *true
: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de prueba. *false
: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura 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 sontagged
,untagged
yany
.any
se aplica a artefactos etiquetados y no etiquetados. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden borrar los artefactos etiquetados.TAG_PREFIX
yTAG_PREFIX_N
son prefijos de etiquetas a los que se aplica la política.PKG_PREFIX
yPKG_PREFIX_N
son prefijos de paquetes a los que se aplica la política.TIME_SINCE_UPLOAD
es el tiempo transcurrido desde que se subió una versión de artefacto al repositorio, especificada como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregandos
,m
,h
od
, respectivamente.KEEP_COUNT
es la cantidad de versiones por paquete de un artefacto que se conservará en tu repositorio.
Maven
Si no especificas una política de versiones, Artifact Registry crea un repositorio de Maven que almacena las versiones de instantáneas y de lanzamiento 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.DESCRIPTION
es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.KEY
es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.CONFIG_DESCRIPTION
es la descripción opcional de la fuente remota.DRY_RUN_STATUS
determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se configuran políticas de limpieza en el repositorio. Omítela si no quieres agregar políticas de limpieza al repositorio. *true
: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de prueba. *false
: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura 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 sontagged
,untagged
yany
.any
se aplica a artefactos etiquetados y no etiquetados. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden borrar los artefactos etiquetados.TAG_PREFIX
yTAG_PREFIX_N
son prefijos de etiquetas a los que se aplica la política.PKG_PREFIX
yPKG_PREFIX_N
son prefijos de paquetes a los que se aplica la política.TIME_SINCE_UPLOAD
es el tiempo transcurrido desde que se subió una versión de artefacto al repositorio, especificada como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregandos
,m
,h
od
, respectivamente.KEEP_COUNT
es la cantidad de versiones por paquete de un artefacto que se conservará en tu repositorio.
Para almacenar versiones de instantáneas y de actualización en diferentes
repositorios, especifica una política de versiones para el
repositorio con un bloque maven_config
. Este bloque admite la siguiente configuración:
version_policy
establece la política de versión con uno de los siguientes valores:VERSION_POLICY_UNSPECIFIED
: Almacena instantáneas y paquetes de lanzamiento. Esta es la configuración predeterminada.- RELEASE: Solo se almacenan paquetes de lanzamiento.
- SNAPSHOT: Almacena solo paquetes de instantáneas.
allow_snapshot_overwrites
configura un repositorio con una política de versionesSNAPSHOT
para aceptar instantáneas no únicas que reemplacen las versiones existentes en el repositorio.
En el siguiente ejemplo, se define un repositorio de Maven con una política de versión 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.DESCRIPTION
es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.KEY
es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.CONFIG_DESCRIPTION
es la descripción opcional de la fuente remota.DRY_RUN_STATUS
determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se configuran políticas de limpieza en el repositorio. Omítela si no quieres agregar políticas de limpieza al repositorio. *true
: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de prueba. *false
: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura 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 sontagged
,untagged
yany
.any
se aplica a artefactos etiquetados y no etiquetados. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden borrar los artefactos etiquetados.TAG_PREFIX
yTAG_PREFIX_N
son prefijos de etiquetas a los que se aplica la política.PKG_PREFIX
yPKG_PREFIX_N
son prefijos de paquetes a los que se aplica la política.TIME_SINCE_UPLOAD
es el tiempo transcurrido desde que se subió una versión de artefacto al repositorio, especificada como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregandos
,m
,h
od
, respectivamente.KEEP_COUNT
es la cantidad de versiones por paquete de un artefacto que se conservará en tu 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.DESCRIPTION
es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.KEY
es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.CONFIG_DESCRIPTION
es la descripción opcional de la fuente remota.DRY_RUN_STATUS
determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se configuran políticas de limpieza en el repositorio. Omítela si no quieres agregar políticas de limpieza al repositorio. *true
: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de prueba. *false
: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura 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 sontagged
,untagged
yany
.any
se aplica a artefactos etiquetados y no etiquetados. Si un repositorio tiene habilitadas las etiquetas inmutables, no se pueden borrar los artefactos etiquetados.TAG_PREFIX
yTAG_PREFIX_N
son prefijos de etiquetas a los que se aplica la política.PKG_PREFIX
yPKG_PREFIX_N
son prefijos de paquetes a los que se aplica la política.TIME_SINCE_UPLOAD
es el tiempo transcurrido desde que se subió una versión de artefacto al repositorio, especificada como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregandos
,m
,h
od
, respectivamente.KEEP_COUNT
es la cantidad de versiones por paquete de un artefacto que se conservará en tu repositorio.
Apt (versión preliminar)
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 del repositorio no están encriptadas.
- CONFIG_DESCRIPTION es la descripción opcional de la fuente remota.
- REPOSITORY_BASE es la base del repositorio público preestablecido para Apt.
Los valores posibles son
DEBIAN
yUBUNTU
. - REPOSITORY_PATH es el repositorio específico de la base. Por ejemplo,
debian/dists/buster
.
Yum (versión preliminar)
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 del repositorio no están encriptadas.
- CONFIG_DESCRIPTION es la descripción opcional de la fuente remota.
- REPOSITORY_BASE es la base del repositorio público preestablecido para Yum.
Los valores posibles son
CENTOS
,CENTOS_DEBUG
,CENTOS_VAULT
,CENTOS_STREAM
,ROCKY
yEPEL
. - REPOSITORY_PATH es el repositorio específico de la base. Por ejemplo,
"centos/8-stream/BaseOS/x86_64/os
.
Artifact Registry crea tu repositorio. Ejecuta el siguiente comando para ver una descripción del repositorio:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Después de crear el repositorio, haz lo siguiente:
- Otorga acceso al repositorio.
- Configura Docker, los administradores de paquetes y otros clientes externos para que se autentiquen en los repositorios.
- Configura los repositorios remotos de Artifact Registry para que se autentiquen en sus fuentes upstream.
- Imágenes de contenedor: Configura la autenticación de repositorio remoto en Docker Hub
- Paquetes de idioma:
- Flujos ascendentes personalizados definidos por el usuario: Configura la autenticación en los flujos ascendentes de repositorios remotos
Cómo editar las descripciones de los repositorios
Puedes cambiar la descripción del repositorio desde la consola de Google Cloud o la CLI de gcloud.
Console
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, selecciona el repositorio y haz clic en Editar repositorio.
Edita la descripción del repositorio y, luego, 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"
Reemplaza lo siguiente:
REPOSITORY
: Es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.PROJECT
: El Google Cloud ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.-
LOCATION
es la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla. DESCRIPTION
: Es una descripción del repositorio.
Acceso a fuentes upstream en un perímetro de servicio
Los servicios de un perímetro de servicio de los Controles del servicio de VPC tienen acceso restringido a los recursos fuera del perímetro.
Puedes permitir o denegar el acceso a las fuentes upstream dentro de un proyecto y una ubicación Google Cloud especificados.
De forma predeterminada, Artifact Registry niega el acceso a las fuentes upstream si no otorgaste acceso de forma explícita.
Para Artifact Registry, el rol requerido es el de administrador de Artifact Registry (roles/artifactregistry.admin
).
Consulta la configuración de las fuentes upstream
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 la configuración de los repositorios remotos en us-east1
en el proyecto my-project
:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Permite el acceso a las fuentes upstream
Para permitir el acceso a fuentes upstream en una ubicación especificada, 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 en 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
Cómo denegar el acceso a las fuentes upstream
Cuando niegas el acceso a las fuentes upstream, los artefactos almacenados en caché existentes en los repositorios remotos aún están disponibles.
Para denegar el acceso a las fuentes upstream en una ubicación especificada, 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 upstream fuera del perímetro para todos los repositorios remotos en us-west1
en el proyecto my-project
:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
¿Qué sigue?
- Crea un repositorio remoto de Docker Hub.
- Obtén más información sobre los repositorios remotos de Artifact Registry.
- Configura la autenticación de repositorios remotos en Docker Hub.