L'authentification sur Artifact Registry diffère pour l'importation
téléchargement de modules Go empaquetés. Lors du packaging et de l'importation d'un module Go dans
Artifact Registry, l'outil gcloud CLI recherche les identifiants
votre environnement de configurer l'authentification dans l'ordre suivant, sauf si
--json_key
est transmis pour utiliser une clé de compte de service.
Identifiants par défaut de l'application (ADC), stratégie qui recherche les identifiants dans l'ordre suivant :
Identifiants définis dans la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
.Les identifiants que le compte de service par défaut pour Compute Engine Fonctions Google Kubernetes Engine, Cloud Run, App Engine ou Cloud Run fournit.
Les identifiants fournis par la Google Cloud CLI, y compris les identifiants utilisateur de la commande
gcloud auth application-default login
.
La variable GOOGLE_APPLICATION_CREDENTIALS
fait en sorte que le compte
une authentification explicite, ce qui facilite
le dépannage. Si
vous n'utilisez pas la variable, vérifiez que tous les comptes utilisés par l'ADC ont
les autorisations requises ; Par exemple,
default service account pour les VM Compute Engine, les nœuds Google Kubernetes Engine
Cloud Run dispose d'un accès en lecture seule aux dépôts. Si vous
à l'aide du compte de service par défaut,
vous devez modifier les autorisations.
Lors du téléchargement de modules Go empaquetés à utiliser comme dépendances à partir de Artifact Registry, le binaire Go utilise les identifiants de votre fichier netrc pour s'authentifier auprès d'Artifact Registry. Pour simplifier le processus d'authentification, vous pouvez utiliser l'assistant d'identification Go pour actualiser les jetons de votre fichier netrc afin de vous authentifier auprès d'Artifact Registry.
L'emplacement de votre fichier netrc peut être défini à l'aide de la variable d'environnement netrc.
Si la variable NETRC
n'est pas définie, la commande go
lit
$HOME/.netrc
sur les plates-formes de type UNIX ou %USERPROFILE%\_netrc
sous Windows.
Artifact Registry est compatible avec les méthodes d'authentification suivantes lorsque vous utilisez des identifiants dans votre fichier netrc :
- Identifiants de courte durée (recommandé)
- Utilisez l'assistant d'identification Go d'Artifact Registry pour mettre à jour les jetons d'authentification dans votre fichier netrc à l'aide des identifiants de votre environnement, ou ajoutez manuellement vos identifiants Artifact Registry au fichier netrc.
- Utiliser une clé de compte de service
- Choisissez cette option lorsque vous ne pouvez pas utiliser les identifiants dans votre environnement pour l'authentification unique. Vous pouvez utiliser Artifact Registry l'outil d'aide à la connexion Go pour ajouter le clé de compte de service non chiffrée à votre fichier netrc ou ajoutez-la manuellement le fichier.
Avant de commencer
- Installer OK 1.15 ou version ultérieure.
Installez le module complémentaire gcloud CLI package-go-module:
gcloud components install package-go-module
Configurer l'environnement Go
Demandez à Go de télécharger des modules depuis Artifact Registry, le service public Go module proxy, puis "source" dans cet ordre:
export GOPROXY=https://LOCATION-go.pkg.dev/PROJECT/REPOSITORY,https://proxy.golang.org,direct
Remplacez les éléments suivants :
- LOCATION est l'emplacement régional ou multirégional lieu du dépôt.
- PROJECT est votre Google Cloud ID du projet.
- REPOSITORY est le nom du dépôt dans lequel package est stocké.
Excluez votre module de la vérification à l'aide de la base de données publique des sommes de contrôle:
export GONOSUMDB=MODULE_PATH_REGEX
Remplacez MODULE_PATH_REGEX par le chemin d'accès de votre module ou par un chemin d'accès si vous souhaitez exclure plusieurs modules.
Par exemple, pour exclure le module
example.com/foo
de la vérification, utilisez la base de données publique de somme de contrôle, exécutez la commande suivante:export GONOSUMDB=example.com/foo
La commande suivante exclut tous les modules dont le chemin d'accès commence par d'être vérifié de
example.com
à l'aide de la base de données de somme de contrôle publique:export GONOSUMDB=example.com/*
Ajouter des identifiants Artifact Registry à votre fichier netrc
Exécutez la commande suivante pour ajouter vos identifiants Artifact Registry à votre netrc à l'aide de l'assistant d'identification Go:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ --json_key=PATH_TO_JSON_KEY
Où :
- LOCATION est l'emplacement régional ou multirégional lieu de votre dépôt. Pour ajouter plusieurs zones géographiques, saisissez-les par une virgule liste séparée.
PATH_TO_JSON_KEY facultatif. Chemin d'accès à votre compte de service .
L'assistant d'identification Go ajoute des paramètres à votre fichier netrc pour l'authentification à Artifact Registry. Si vous transmettez l'indicateur
--json_key
, la clé est ajoutée à votre fichier netrc pour l'authentification par mot de passe.
Si vous utilisez des identifiants éphémères pour l'authentification à Artifact Registry, vous devez actualiser votre jeton OAuth en exécutant la commande suivante avant d'utiliser votre module comme dépendance:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 refresh
S'authentifier à l'aide d'une clé de compte de service
Utilisez cette approche lorsque vous devez vous authentifier avec un nom d'utilisateur et un mot de passe.
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 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".
Accordez les Rôle Artifact Registry au compte de service pour fournir le dépôt y accéder.
Exécutez la commande suivante pour ajouter les identifiants de votre compte de service à votre netrc à l'aide de l'assistant d'identification Go:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ --json_key=PATH_TO_JSON_KEY
Où :
- LOCATION est l'emplacement régional ou multirégional lieu de votre dépôt. Pour ajouter plusieurs zones géographiques, saisissez-les par une virgule liste séparée.
PATH_TO_JSON_KEY est le chemin d'accès au fichier JSON du compte de service. fichier de clé.
L'assistant d'identification Go ajoute la clé du compte de service à votre répertoire netrc pour l'authentification par mot de passe.
Vous pouvez aussi ajouter manuellement la clé de votre compte de service au fichier netrc au format suivant:
machine LOCATION.pkg.dev
login _json_key_base64
password KEY
Remplacez les éléments suivants :
- LOCATION avec l'emplacement régional ou multirégional lieu de votre dépôt.
- KEY par la clé encodée en base64 figurant dans le fichier de clé de votre compte de service ;
Ajouter l'assistant d'identification Go à GONOPROXY
Avant d'utiliser l'assistant d'identification Go, vous devez l'ajouter à la liste GONOPROXY
pour forcer Go à le télécharger directement à partir de GitHub. Si vous avez d'autres modules
à télécharger directement à partir de la source, vous pouvez les ajouter dans des fichiers
comme illustré dans l'exemple suivant:
export GONOPROXY=MODULE_PATH1, MODULE_PATH2
Où MODULE_PATH1 et MODULE_PATH2 sont les chemins d'accès aux modules à télécharger. de la source.
Pour ajouter l'assistant d'identification Go à votre liste GONOPROXY
et l'exécuter pour le configurer, procédez comme suit :
vos identifiants:
Ajouter l'assistant d'identification Go à votre
GONOPROXY
export GONOPROXY=github.com/GoogleCloudPlatform/artifact-registry-go-tools
Exécutez la commande suivante pour ajouter vos identifiants Artifact Registry à votre fichier netrc avec l'outil de package de module Go :
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ [--json_key=path/to/service/account/key.json]
Où LOCATION correspond à la région lieu de votre dépôt. Pour ajouter plusieurs zones géographiques, saisissez-les d'une liste d'éléments séparés par une virgule.
L'assistant d'identification Go ajoute des paramètres à votre fichier netrc pour l'authentification à Artifact Registry. Si vous transmettez l'option
--json_key
, la clé est ajoutée à votre fichier netrc pour l'authentification par mot de passe.