Questa pagina descrive come configurare l'autenticazione con un repository di gemme Ruby di Artifact Registry.
Devi eseguire l'autenticazione in 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 istruzioni per l'installazione, consulta ilGoogle Cloud tutorial per la configurazione di Ruby.
- Verifica che l'account utente o il account di servizio che stai utilizzando disponga delle autorizzazioni richieste 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 i valori predefiniti per i comandi gcloud CLI.
Panoramica
Ruby supporta due metodi per autenticare le richieste al repository Artifact Registry:
- RubyGems CLI: 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 tuo repository.
Interfaccia a riga di comando Bundler: supporta le richieste di pull. Bundler memorizza i pacchetti e gli 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 eseguire nuovamente l'autenticazione delle tue credenziali in Bundler.
Per installare Bundler CLI, inserisci
gem install bundler.
Generare token per l'autenticazione
Per autenticare il pacchetto in Artifact Registry, devi prima generare un token di autenticazione. Puoi quindi utilizzare questo token quando effettui richieste dal tuo pacchetto ad Artifact Registry.
Puoi generare un token di accesso oauth2 utilizzando Google Cloud o un token oauth2l al di fuori di Google Cloud.
I token di accesso sono validi per 60 minuti. Genera un token di accesso poco prima di eseguire comandi che interagiscono con i repository. Se il token di accesso è scaduto, devi generarne uno nuovo.
Genera un token utilizzando gcloud
Per generare un token di accesso oauth2 utilizzando Google Cloud, esegui il seguente comando:
export ACCESS_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
Ora puoi fare riferimento a ACCESS_TOKEN quando effettui richieste dal tuo
pacchetto Ruby ad Artifact Registry.
Genera un token senza utilizzare gcloud
Per generare un token di accesso utilizzando solo la CLI oauth2l, segui questi passaggi:
Installa l'ultima versione di
oauth2leseguendo questo comando:go install github.com/google/oauth2l@latestEsegui questo comando:
export ACCESS_TOKEN="oauth2l fetch --scope cloud-platform"Google Cloud genera un token hash SHA256 e lo memorizza nella variabile
ACCESS_TOKEN. Ora puoi fare riferimento aACCESS_TOKENquando effettui richieste dal tuo pacchetto Ruby ad Artifact Registry.
Esegui l'autenticazione con RubyGems CLI
La CLI RubyGems utilizza token OAuth2 per autenticare una richiesta. Per trasmettere i token OAuth2 alle chiamate ai repository Artifact Registry, devi trasmettere il token OAuth2 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 di pull
Puoi autenticare una richiesta di pull nella riga di comando di Google Cloud CLI o aggiornando il file .gemrc.
Autenticare le richieste di pull nella riga di comando
Per eseguire l'autenticazione per l'ultima versione della gem nella richiesta di pull, esegui questo comando:
gem install GEM_NAME --source https://$ACCESS_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Per l'autenticazione per una versione specifica del gem, aggiungi
-v GEM_VERSION al comando gem install.
Dove:
- GEM_NAME è il nome del gem per cui viene effettuata la richiesta.
- LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
Autenticarsi in un file .gemrc
Puoi configurare il file /.gemrc globale o specifico del progetto per autenticare
le tue origini nelle richieste pull aggiungendo quanto segue:
# File: ~/.gemrc
# Use the ACCESS_TOKEN retrieved from export ACCESS_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
<...>
:sources:
- https://ACCESS_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY/
<...>
Dove:
- ACCESS_TOKEN è il tuo token di accesso OAuth2.
- LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
Per installare un gem 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 questo comando:
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 del gem per cui viene effettuata la richiesta.
- LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
Autenticare le richieste push in un file di credenziali
Lo strumento a riga di comando gem utilizza il file ~/.gem/credentials per archiviare le chiavi API
per il push e il pull di gem. Per configurare il file delle credenziali per
l'autenticazione alle origini nelle richieste push, procedi nel seguente modo:
Aggiorna il file delle credenziali:
Apri
~/.gem/credentialse aggiungi una riga per il tuo 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 ACCESS_TOKENDove:
- RUBYGEMS_ORG_KEY è la chiave API per
RubyGems.org. - LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
- ACCESS_TOKEN è il tuo token di accesso OAuth2.
- RUBYGEMS_ORG_KEY è la chiave API per
Esegui il push del tuo Gem. Tieni presente che non devi impostare
GEM_HOST_API_KEY, in quanto hai già definito la chiave nel file delle credenziali.gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Autenticazione con Bundler
Bundler di Ruby 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 nel 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 posizione regionale o multiregionale 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 nuovamente 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