En esta página, se describe cómo configurar la autenticación con un repositorio de gemas de Ruby de Artifact Registry.
Debes autenticarte en Artifact Registry cuando uses una aplicación de terceros para conectarte a un repositorio.
No es necesario configurar la autenticación para Cloud Build ni para Google Cloud entornos de ejecución como Google Kubernetes Engine y Cloud Run.
Antes de comenzar
- Si el repositorio de destino no existe, crea un repositorio de gemas de Ruby.
- Verifica que Ruby esté instalado. Para obtener instrucciones de instalación, consulta el Google Cloud instructivo para configurar Ruby.
- Verifica que la cuenta de usuario o la cuenta de servicio que usas tenga los permisos necesarios para acceder al repositorio.
-
Instala la Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
- (Opcional) Configura valores predeterminados para los comandos de gcloud CLI.
Descripción general
Ruby admite dos métodos para autenticar solicitudes a tu repositorio de Artifact Registry:
- CLI de RubyGems: Admite solicitudes de envío y extracción. Esta CLI está disponible con Ruby de forma predeterminada. Cuando te autenticas con RubyGems, debes hacerlo cada vez que realices una solicitud de envío o extracción a tu repositorio.
CLI de Bundler: Admite solicitudes de extracción. Bundler almacena paquetes y transmisiones ascendentes en un archivo Gemfile, lo que permite a los usuarios estandarizar la configuración en varias máquinas sin necesidad de autenticar cada solicitud de extracción individual. Sin embargo, debes volver a autenticar tus credenciales en Bundler de vez en cuando.
Para instalar la CLI de Bundler, ingresa
gem install bundler.
Autentica con la CLI de RubyGems
La CLI de RubyGems usa tokens de OAuth2 para autenticar una solicitud. Para pasar tokens de OAuth2 a las llamadas a tus repositorios de Artifact Registry, debes primero generar el token y, luego, pasarlo con la dirección de tu repositorio cuando realices una solicitud. Los tokens tienen una vida útil de una hora y deben actualizarse cada hora.
Autentica solicitudes de extracción
Puedes autenticar una solicitud de extracción en la línea de comandos de Google Cloud CLI o actualizar tu archivo .gemrc.
Autentica solicitudes de extracción en la línea de comandos
Para autenticar la versión más reciente de la gema en tu solicitud de extracción, ejecuta el siguiente comando:
export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
gem install GEM_NAME --source https://$GEM_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Para autenticar una versión específica de la gema, agrega
-v GEM_VERSION al comando gem install.
Aquí:
- GEM_NAME es el nombre de la gema para la que se realiza la solicitud.
- LOCATION es la ubicación regional o multirregional del repositorio.
- PROJECT es el ID del proyecto que contiene el repositorio.
- REPOSITORY es el ID del repositorio.
Autentica en un archivo .gemrc
Puedes configurar tu archivo /.gemrc global o específico del proyecto para autenticar tus fuentes en las solicitudes de extracción agregando lo siguiente:
# File: ~/.gemrc
# Use the GEM_TOKEN retrieved from export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
<...>
:sources:
- https://GEM_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPO/
<...>
Para instalar una gema con la fuente o las fuentes definidas en tu archivo /.gemrc, ejecuta lo siguiente:
gem install GEM_NAME
Autentica solicitudes de envío
Puedes autenticar una solicitud de envío en la línea de comandos de Google Cloud CLI o actualizar tu archivo de credenciales.
Autentica solicitudes de envío en la línea de comandos
Para autenticar tu solicitud de envío, ejecuta el siguiente comando:
export GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Aquí:
- GEM_NAME es el nombre de la gema para la que se realiza la solicitud.
- LOCATION es la ubicación regional o multirregional del repositorio.
- PROJECT es el ID del proyecto que contiene el repositorio.
- REPOSITORY es el ID del repositorio.
Autentica solicitudes de envío en un archivo de credenciales
La herramienta de línea de comandos gem usa el archivo ~/.gem/credentials para almacenar claves de API
para enviar y extraer gemas. Para configurar tu archivo de credenciales para autenticar tus fuentes en las solicitudes de envío, haz lo siguiente:
Ejecuta el siguiente comando para generar un token de acceso de OAuth2:
gcloud auth print-access-tokenEste token actúa como tu clave de API para Artifact Registry.
Actualiza tu archivo de credenciales:
Abre
~/.gem/credentialsy agrega una línea para tu repositorio. La clave es la URL de tu repositorio y el valor esBearer, seguido de tu token::rubygems_api_key: RUBYGEMS_ORG_KEY https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY: Bearer OAUTH_TOKENAquí:
- RUBYGEMS_ORG_KEY es la clave de API para
RubyGems.org. - LOCATION es la ubicación regional o multirregional del repositorio.
- PROJECT es el ID del proyecto que contiene el repositorio.
- REPOSITORY es el ID del repositorio.
- OAUTH_TOKEN es tu token de acceso de OAuth2.
- RUBYGEMS_ORG_KEY es la clave de API para
Envía tu gema. Ten en cuenta que no necesitas configurar
GEM_HOST_API_KEY, ya que ya definiste la clave en tu archivo de credenciales.gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Autentica con Bundler
El Ruby Bundler administra las dependencias de la aplicación en una o más gemas. Para configurar Bundler, haz lo siguiente:
Agrega la dirección de tu repositorio como una
sourceen tu archivo Gemfile:# Gemfile # <...> source "https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY"Autentica en tu repositorio con
bundle config:export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)" export HOST="https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY" bundle config $HOST $GEM_TOKEN
Aquí:
- LOCATION es la ubicación regional o multirregional del repositorio.
- PROJECT es el ID del proyecto. Si se omite esta marca, se usa el proyecto predeterminado o actual.
- REPOSITORY es el ID del repositorio. Si configuraste un repositorio predeterminado de Artifact Registry, se usa cuando se omite esta marca del comando.
Deberás volver a autenticarte en tu repositorio remoto de vez en cuando. En este caso, ejecuta el mismo comando de autenticación del paso 2.
Para obtener más información sobre la configuración de Bundler, consulta Gemfiles en la documentación de bundler.io.
¿Qué sigue?
- Configura el acceso a los repositorios
- Obtén más información sobre cómo administrar repositorios
- Obtén más información sobre cómo administrar paquetes