Vous devez vous authentifier auprès d'Artifact Registry lorsque vous utilisez une application tierce pour vous connecter à un dépôt.
Vous n'avez pas besoin de configurer l'authentification pour Cloud Build ni pour Google Cloud les environnements d'exécution tels que Google Kubernetes Engine et Cloud Run, mais vous devez vérifier que les autorisations requises sont configurées.
Node.js est compatible avec deux méthodes d'authentification des requêtes dans votre dépôt Artifact Registry :
- Jetons d'accès : utilisez des jetons d'accès lorsque l'authentification dans votre application est gérée par un utilisateur humain.
- Authentification par mot de passe : utilisez cette option lorsqu'une application n'est pas compatible avec Identifiants par défaut de l'application, mais permet l'authentification avec un nom d'utilisateur et un mot de passe.
Avant de commencer
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisezla en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
- (Facultatif) Configurez des valeurs par défaut pour les commandes gcloud CLI.
- Si vous vous connectez aux dépôts à partir de Windows, installez PowerShell.
- Créez un compte de service pour agir au nom de votre application.
- Si vous débutez avec npm, lisez la présentation pour en savoir plus sur les packages concernés et le fichier de configuration pour vos paramètres d'authentification.
Générer des jetons pour l'authentification
Pour authentifier votre package dans Artifact Registry, vous devez d'abord générer un jeton d'authentification. Vous pouvez ensuite utiliser ce jeton lorsque vous effectuez des requêtes depuis votre package vers Artifact Registry.
Vous pouvez générer un jeton d'accès oauth2 à l'aide de Google Cloud ou un
oauth2l jeton en dehors de Google Cloud.
La durée de validité des jetons d'accès est de 60 minutes. Générez un jeton d'accès peu de temps avant d'exécuter des commandes qui interagissent avec les dépôts. Si votre jeton d'accès a expiré, vous devez en générer un nouveau.
Générer un jeton à l'aide de gcloud
Pour générer un jeton d'accès oauth2 à l'aide de Google Cloud, exécutez la commande suivante
:
export ACCESS_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
Vous pouvez maintenant référencer ACCESS_TOKEN lorsque vous effectuez des requêtes depuis votre package Node.js vers Artifact Registry.
Générer un jeton sans utiliser gcloud
Pour générer un jeton d'accès à l'aide de la CLI oauth2l uniquement, procédez comme suit :
Installez la dernière version de
oauth2len exécutant la commande suivante :go install github.com/google/oauth2l@latestExécutez la commande suivante :
export ACCESS_TOKEN="oauth2l fetch --scope cloud-platform"Google Cloud génère un jeton de hachage SHA256 et le stocke dans la variable
ACCESS_TOKEN. Vous pouvez maintenant référencerACCESS_TOKENlorsque vous effectuez des requêtes depuis votre package Node.js vers Artifact Registry.
Configurer l'authentification par mot de passe avec des clés de compte de service
Utilisez cette approche lorsque votre application Node.js nécessite une authentification avec un nom d'utilisateur et un mot de passe donnés.
Les clés de compte de service sont des identifiants de longue durée. Suivez les instructions ci-dessous pour limiter l'accès à vos dépôts :
- Envisagez d'utiliser un compte de service dédié pour interagir avec les dépôts.
- Attribuez le rôle Artifact Registry minimal requis par le compte de service. Par exemple, attribuez le lecteur Artifact Registry à un compte de service qui télécharge les artefacts uniquement.
- Si les groupes de votre organisation nécessitent différents niveaux d'accès à des dépôts spécifiques, accordez l'accès au niveau du dépôt plutôt qu'au niveau du projet.
- Suivez les bonnes pratiques de gestion des identifiants.
Pour créer un compte de service et configurer l'authentification :
Créez un compte de service pour agir au nom de votre application ou sélectionnez un compte de service existant que vous utilisez pour l'automatisation.
Vous aurez besoin de l'emplacement du fichier de clé de compte de service pour configurer l'authentification avec Artifact Registry. Pour les comptes existants, vous pouvez afficher les clés et en créer sur la page "Comptes de service".
Attribuez le rôle Artifact Registry spécifique au compte de service pour fournir l'accès au dépôt.
Si vous souhaitez activer le compte de service dans la session gcloud CLI actuelle, exécutez la commande suivante :
gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILEOù
- ACCOUNT est l'utilisateur ou le compte de service.
- KEY-FILE est le chemin d'accès au fichier de clé JSON du compte de service.
Exécutez la commande suivante pour imprimer la configuration du dépôt :
gcloud artifacts print-settings npm [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION] --scope=@SCOPE-NAME --json-key=KEY-FILEOù
- PROJECT est l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
- REPOSITORY est l'ID du dépôt. Si vous avez configuré un dépôt Artifact Registry par défaut, il est utilisé lorsque cette option est omise dans la commande.
- LOCATION est l'emplacement régional ou multirégional location du dépôt.
SCOPE-NAME est le nom du champ d'application npm à associer au dépôt.
L'utilisation de champs d'application vous permet de toujours publier et installer des packages à partir du dépôt approprié.
Les packages sans champ d'application sont associés à votre registre npm par défaut, généralement le registre npm public. Si vous ne spécifiez pas de champ d'application, la configuration renvoyée définit votre dépôt Artifact Registry comme registre par défaut. Cela peut poser problème si vos projets Node.js doivent installer des packages à partir du registre npm public et de votre dépôt Artifact Registry.
KEY-FILE est le chemin d'accès au fichier de clé JSON du compte de service.
Ajoutez les paramètres de configuration renvoyés au fichier de configuration .npmrc de vos projets Node.js. Ce fichier se trouve généralement dans le même répertoire que
package.json. Assurez-vous d'inclure ces paramètres dans les projets Node.js pour les packages que vous publiez, ainsi que pour les projets qui installeront des dépendances à partir de votre dépôt npm.Si vous avez d'autres dépôts Node.js auxquels vous connecter, répétez les étapes précédentes pour obtenir les paramètres et les ajouter au fichier
.npmrc.
Étape suivante
- Configurer l'accès aux dépôts
- En savoir plus sur la gestion des dépôts
- En savoir plus sur la gestion des packages