Questa pagina descrive come configurare l'autenticazione con un repository di gemme Ruby di Artifact Registry.
Devi eseguire l'autenticazione ad Artifact Registry quando utilizzi un'applicazione di terze parti per connetterti a un repository.
Non è necessario configurare l'autenticazione per Cloud Build o Google Cloud per gli ambienti di runtime come Google Kubernetes Engine e Cloud Run.
Prima di iniziare
- Se il repository di destinazione non esiste, crea un repository di gemme Ruby.
- Verifica che Ruby sia installato. Per le istruzioni di installazione, consulta il Google Cloud tutorial sulla configurazione di Ruby.
- Verifica che l'account utente o il account di servizio che stai utilizzando disponga delle autorizzazioni necessarie per accedere al repository.
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- (Facoltativo) Configura le impostazioni predefinite per i comandi gcloud CLI.
Panoramica
Ruby supporta due metodi per autenticare le richieste al repository Artifact Registry:
- CLI RubyGems: supporta le richieste push e pull. Questa CLI è disponibile con Ruby per impostazione predefinita. Quando esegui l'autenticazione con RubyGems, devi autenticarti ogni volta che effettui una richiesta push o una richiesta di pull al repository.
CLI Bundler: supporta le richieste pull. Bundler archivia pacchetti e upstream in un gemfile, che consente agli utenti di standardizzare le configurazioni su più macchine senza dover autenticare ogni singola richiesta di pull. Tuttavia, di tanto in tanto devi comunque autenticare di nuovo le credenziali in Bundler.
Per installare la CLI Bundler, inserisci
gem install bundler.
Eseguire l'autenticazione con la CLI RubyGems
La CLI RubyGems utilizza i token OAuth 2.0 per autenticare una richiesta. Per passare i token OAuth 2.0 alle chiamate ai repository Artifact Registry, devi prima generare il token e poi passarlo con l'indirizzo del repository quando effettui una richiesta. I token hanno una durata di un'ora e devono essere aggiornati ogni ora.
Autenticare le richieste pull
Puoi autenticare una richiesta di pull nella riga di comando di Google Cloud CLI o aggiornando il file .gemrc.
Autenticare le richieste pull nella riga di comando
Per eseguire l'autenticazione per l'ultima versione della gem nella richiesta di pull, esegui il comando seguente:
export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
gem install GEM_NAME --source https://$GEM_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Per eseguire l'autenticazione per una versione specifica della gemma, aggiungi
-v GEM_VERSION al comando gem install.
Dove:
- GEM_NAME è il nome della gemma per cui viene effettuata la richiesta.
- LOCATION è la località regionale o multiregionale location del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
Eseguire l'autenticazione in un file .gemrc
Puoi configurare il file /.gemrc globale o specifico del progetto per autenticare le origini nelle richieste pull aggiungendo quanto segue:
# 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/
<...>
Per installare una gemma utilizzando l'origine o le origini definite nel file /.gemrc, esegui:
gem install GEM_NAME
Autenticare le richieste push
Puoi autenticare una richiesta push nella riga di comando di Google Cloud CLI o aggiornando il file delle credenziali.
Autenticare le richieste push nella riga di comando
Per autenticare la richiesta push, esegui il comando seguente:
export GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Dove:
- GEM_NAME è il nome della gemma per cui viene effettuata la richiesta.
- LOCATION è la località regionale o multiregionale location del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
Autenticare le richieste push in un file delle credenziali
Lo strumento a riga di comando gem utilizza il file ~/.gem/credentials per archiviare le chiavi API
per il push e il pull delle gemme. Per configurare il file delle credenziali per autenticare le origini nelle richieste push:
Genera un token di accesso OAuth 2.0 eseguendo il comando seguente:
gcloud auth print-access-tokenQuesto token funge da chiave API per Artifact Registry.
Aggiorna il file delle credenziali:
Apri
~/.gem/credentialse aggiungi una riga per il repository. La chiave è l'URL del repository e il valore èBearer, seguito dal token::rubygems_api_key: RUBYGEMS_ORG_KEY https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY: Bearer OAUTH_TOKENDove:
- RUBYGEMS_ORG_KEY è la chiave API per
RubyGems.org. - LOCATION è la località regionale o multiregionale location del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
- OAUTH_TOKEN è il token di accesso OAuth 2.0.
- RUBYGEMS_ORG_KEY è la chiave API per
Esegui il push della gemma. Tieni presente che non devi impostare
GEM_HOST_API_KEY, perché hai già definito la chiave nel file delle credenziali.gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Eseguire l'autenticazione con Bundler
Ruby Bundler gestisce le dipendenze delle applicazioni in una o più gemme. Per configurare Bundler:
Aggiungi l'indirizzo del repository come
sourcenel gemfile:# Gemfile # <...> source "https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY"Esegui l'autenticazione al repository utilizzando
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
Dove:
- LOCATION è la località regionale o multiregionale location del repository.
- PROJECT è l'ID progetto. Se questo flag viene omesso, viene utilizzato il progetto corrente o predefinito.
- REPOSITORY è l'ID del repository. Se hai configurato un repository Artifact Registry predefinito, questo viene utilizzato quando questo flag viene omesso dal comando.
Di tanto in tanto dovrai eseguire di nuovo l'autenticazione al repository remoto. In questo caso, esegui lo stesso comando di autenticazione del passaggio 2.
Per ulteriori informazioni sulla configurazione di Bundler, consulta la sezione Gemfiles nella documentazione di bundler.io.
Passaggi successivi
- Configurare l'accesso ai repository
- Scopri di più sulla gestione dei repository
- Scopri di più sulla gestione dei pacchetti