Ce document explique comment configurer l'authentification dans les dépôts en amont Maven Central pour les dépôts distants Artifact Registry.
Ce document suppose que vous avez déjà créé un dépôt distant Maven Artifact Registry et un compte Maven Central.
Pour en savoir plus sur les dépôts distants, consultez la présentation des dépôts distants.
Rôles requis
Pour obtenir les autorisations dont vous avez besoin pour configurer l'authentification auprès de Maven Central pour les dépôts distants, demandez à votre administrateur de vous accorder le les rôles IAM suivants sur le projet:
-
Administrateur Artifact Registry (
roles/artifactregistry.admin
) -
Administrateur Secret Manager (
roles/secretmanager.admin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Créer un jeton d'accès personnel Maven Central
- Connectez-vous à Maven Central.
Créez un jeton d'accès.
Utilisez le code utilisateur de votre jeton d'accès personnel comme nom d'utilisateur lorsque vous ajoutez vos identifiants à Artifact Registry. Pour en savoir plus sur la gestion des jetons utilisateur dans Maven Central, consultez la section Configuration de la sécurité avec des jetons utilisateur.
Enregistrer votre jeton d'accès personnel dans une version secrète
- Créez un secret dans Secret Manager.
- Enregistrez votre jeton d'accès personnel Maven Central en tant que version secrète.
Autoriser le compte de service Artifact Registry à accéder à votre secret
L'agent de service Artifact Registry agit au nom d'Artifact Registry lors de l'interaction avec les services Google Cloud. Pour autoriser l'agent de service à utiliser des secrets stocké dans Secret Manager, vous devez accorder à l'agent de service l'autorisation pour afficher la version de votre secret.
L'identifiant de l'agent de service est le suivant:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER est le numéro du projet du projet Google Cloud dans lequel Artifact Registry est exécuté.
Pour attribuer à l'agent de service Artifact Registry l'accesseur de secrets Secret Manager, procédez comme suit : rôle:
Console
-
Accédez à la page Secret Manager dans la console Google Cloud.
-
Sur la page Secret Manager, cochez la case située à côté du nom du secret.
-
S'il n'est pas déjà ouvert, cliquez sur Afficher le panneau d'informations pour ouvrir celui-ci.
-
Dans le panneau d'informations, cliquez sur Ajouter un compte principal.
-
Dans la zone de texte Nouveaux comptes principaux, saisissez la ou les adresses e-mail des membres à ajouter.
-
Dans la liste déroulante Sélectionner un rôle, sélectionnez Gestionnaire de secrets, puis Accesseur de secrets Secret Manager.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
Où member correspond à un membre IAM, tel qu'un utilisateur, un groupe ou un compte de service.
C#
Pour vous authentifier auprès d'Artifact Registry, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour vous authentifier auprès d'Artifact Registry, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour vous authentifier auprès d'Artifact Registry, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès d'Artifact Registry, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour vous authentifier auprès d'Artifact Registry, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès d'Artifact Registry, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour vous authentifier auprès d'Artifact Registry, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API
Remarque : Contrairement aux autres exemples, ceci remplace l'ensemble de la stratégie 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\"}]}}"
Pour en savoir plus sur l'octroi ou la révocation de l'accès aux secrets, consultez la section Gérer l'accès aux secrets.
Ajouter des identifiants Maven Central à votre dépôt distant
Pour mettre à jour votre dépôt distant avec vos identifiants Maven Central:
Console
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Mode d'authentification du dépôt distant, mettez à jour ou ajoutez votre code utilisateur Maven Central associé à votre jeton d'accès personnel en tant que nom d'utilisateur, ainsi que la version secrète contenant votre jeton d'accès Maven Central.
CLI gcloud
Pour mettre à jour votre dépôt distant avec vos identifiants Maven Central, exécutez la commande suivante :
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
Remplacez les éléments suivants :
REPOSITORY
par le nom de votre instance distante Artifact Registry ; un dépôt de clés.PROJECT_ID
par l'ID de votre projet Google CloudLOCATION
avec l'emplacement régional ou multirégional emplacement du dépôt. Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Afficher une liste des emplacements compatibles, exécutez la commandegcloud artifacts locations list
.USER_CODE
le code utilisateur associé à votre jeton d'accès Maven Central. Pour en savoir plus sur la gestion des jetons utilisateur dans Maven Central, consultez la section Configuration de la sécurité avec des jetons utilisateur.SECRET_PROJECT_ID
par l'ID du projet ; dans lequel vous avez créé votre secret.SECRET_ID
par le nom que vous avez donné à votre secret.SECRET_VERSION
par la version de secret dans laquelle vous avez enregistré votre jeton d'accès Maven Central. s
Vos identifiants seront utilisés la prochaine fois que le dépôt distant enverra une requête pour un artefact de la source en amont.