Questo documento descrive come configurare l'autenticazione nei repository upstream del registry npm per i repository remoti di Artifact Registry.
Questo documento presuppone che tu abbia già creato un repository remoto npm di Artifact Registry e un account registry npm.
Per ulteriori informazioni sui repository remoti, consulta la Panoramica dei repository remoti.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare l'autenticazione al registry npm per i repository remoti, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Amministratore di Artifact Registry (
roles/artifactregistry.admin
) -
Amministratore di Secret Manager (
roles/secretmanager.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea un token di accesso personale del registry npm
- Accedi al registry npm.
- Crea un token di accesso di sola lettura.
Salvare il token di accesso personale in una versione del secret
- Crea un secret in Secret Manager.
- Salva il token di accesso personale del registry npm come versione del secret.
Concedi all'account di servizio Artifact Registry l'accesso al tuo segreto
L'agente di servizio Artifact Registry agisce per conto di Artifact Registry quando interagisce con i servizi. Google Cloud Per consentire all'agente di servizio di utilizzare i secret memorizzati in Secret Manager, devi concedergli l'autorizzazione per visualizzare la versione del secret.
L'identificatore dell'agente di servizio è:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER è il numero di progetto del Google Cloud progetto in cui è in esecuzione Artifact Registry.
Per concedere all'agente di servizio Artifact Registry il ruolo Funzione di accesso ai secret di Secret Manager:
Console
-
Vai alla pagina Secret Manager nella console Google Cloud.
-
Nella pagina Secret Manager, fai clic sulla casella di controllo accanto al nome del secret.
-
Se non è già aperto, fai clic su Mostra riquadro informazioni per aprirlo.
-
Nel riquadro delle informazioni, fai clic su Aggiungi entità.
-
Nell'area di testo Nuovi principali, inserisci gli indirizzi email dei membri da aggiungere.
-
Nel menu a discesa Seleziona un ruolo, scegli Secret Manager e poi Accesso ai segreti di Secret Manager.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
dove member è un membro IAM, ad esempio un utente, un gruppo o un account di servizio.
C#
Per autenticarti in Artifact Registry, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per autenticarti in Artifact Registry, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per autenticarti ad Artifact Registry, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per autenticarti in Artifact Registry, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per autenticarti ad Artifact Registry, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per autenticarti ad Artifact Registry, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per autenticarti in Artifact Registry, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API
Nota: a differenza degli altri esempi, questo sostituisce l'intero criterio IAM.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"
Per ulteriori informazioni su come concedere o revocare l'accesso ai secret, consulta Gestire l'accesso ai secret.
Aggiungi le credenziali del registry npm al repository remoto
Per aggiornare il repository remoto con le credenziali del registry npm:
Console
Apri la pagina Repositori nella console Google Cloud.
Nell'elenco dei repository, seleziona il repository e fai clic su Modifica repository.
Nella sezione Modalità di autenticazione per repository remoto, aggiorna o aggiungi il nome utente del registry npm e la versione segreta contenente il token di accesso al registry npm.
Interfaccia a riga di comando gcloud
Per aggiornare il repository remoto con le credenziali del registry npm, esegui il comando seguente:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USERNAME \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Sostituisci quanto segue:
REPOSITORY
con il nome del repository remoto di Artifact Registry.PROJECT_ID
con il tuo Google Cloud ID progetto.LOCATION
con la posizione regionale o multiregionale del repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.USERNAME
con il tuo nome utente del registry npm.SECRET_PROJECT_ID
con l'ID del progetto in cui hai creato il segreto.SECRET_ID
con il nome che hai assegnato al secret.SECRET_VERSION
con la versione del secret in cui hai salvato il token di accesso al registry npm.
Le credenziali vengono utilizzate la volta successiva che il repository remoto invia una richiesta per un elemento dall'origine a monte.