Questo documento descrive come configurare l'autenticazione nei repository upstream di Maven Central per i repository remoti di Artifact Registry.
Questo documento presuppone che tu abbia già creato un repository remoto Maven di Artifact Registry e un account Maven Central.
Per ulteriori informazioni sui repository remoti, vedi la Panoramica dei repository remoti.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare l'autenticazione a Maven Central per i repository remoti, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
-
Artifact Registry Admin (
roles/artifactregistry.admin
) -
Amministratore Secret Manager (
roles/secretmanager.admin
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci 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 Maven Central
- Accedi a Maven Central.
Crea un access-token.
Utilizza il codice utente per il tuo token di accesso personale come nome utente quando aggiungi le tue credenziali ad Artifact Registry. Per ulteriori informazioni sulla gestione dei token utente in Maven Central, vedi Configurazione della sicurezza con i token utente.
Salva il token di accesso personale in una versione del secret
- Crea un secret in Secret Manager.
- Salva il token di accesso personale di Maven Central come versione secret.
Concedi all'account di servizio Artifact Registry l'accesso al tuo secret
L'agente di servizio Artifact Registry agisce per conto di Artifact Registry quando interagisce con Google Cloud i servizi. Per consentire all'agente di servizio di utilizzare i secret memorizzati in Secret Manager, devi concedere all'agente di servizio 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 progetto Google Cloud in cui è in esecuzione Artifact Registry.
Per concedere all'agente di servizio Artifact Registry il ruolo Secret Manager Secret Accessor:
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 informazioni, fai clic su Aggiungi entità.
-
Nell'area di testo Nuove entità, inserisci gli indirizzi email dei membri da aggiungere.
-
Nel menu a discesa Seleziona un ruolo, scegli Secret Manager e poi Secret Manager Secret Accessor.
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 eseguire l'autenticazione in Artifact Registry, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per eseguire l'autenticazione in Artifact Registry, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per eseguire l'autenticazione in Artifact Registry, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Artifact Registry, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per eseguire l'autenticazione in Artifact Registry, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Artifact Registry, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per eseguire l'autenticazione in Artifact Registry, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
API
Nota: a differenza degli altri esempi, questo sostituisce l'intera policy 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 saperne di più sulla concessione o la revoca dell'accesso ai secret, vedi Gestire l'accesso ai secret.
Aggiungere le credenziali di Maven Central al repository remoto
Per aggiornare il repository remoto con le credenziali di Maven Central:
Console
Apri la pagina Repository nella console Google Cloud .
Nell'elenco dei repository, seleziona il repository e fai clic su Modifica repository.
Nella sezione Modalità di autenticazione del repository remoto, aggiorna o aggiungi il codice utente di Maven Central associato al tuo token di accesso personale come nome utente e la versione del secret contenente il token di accesso di Maven Central.
Interfaccia a riga di comando gcloud
Per aggiornare il repository remoto con le credenziali di Maven Central, esegui il seguente comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USER_CODE \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Sostituisci quanto segue:
REPOSITORY
con il nome del tuo repository remoto di Artifact Registry.PROJECT_ID
con l'ID progetto Google Cloud .LOCATION
con la località regionale o multiregionale per il repository. Puoi omettere questo flag se imposti un valore predefinito. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.USER_CODE
il codice utente associato al tuo token di accesso a Maven Central. Per ulteriori informazioni sulla gestione dei token utente in Maven Central, vedi Configurazione della sicurezza con i token utente.SECRET_PROJECT_ID
con l'ID progetto del progetto in cui hai creato il secret.SECRET_ID
con il nome che hai dato al secret.SECRET_VERSION
con la versione del secret in cui hai salvato il token di accesso a Maven Central.
Le tue credenziali vengono utilizzate la volta successiva che il repository remoto invia una richiesta per un artefatto dall'origine upstream.