Cette page explique comment configurer Helm pour s'authentifier auprès d'Artifact Registry des dépôts.
Avant de commencer
- Si aucun dépôt n'existe pour vos graphiques, Créer un dépôt Choisissez Docker comme format de dépôt.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- (Facultatif) Configurez des valeurs par défaut pour les commandes Google Cloud CLI.
Installez Helm 3.8.0 ou une version ultérieure. Dans les versions précédentes de Helm, les graphiques au format OCI fonctionnalité expérimentale.
Exécutez
helm version
pour vérifier votre version.
Choisir une méthode d'authentification
Dans la plupart des situations, nous vous recommandons d'utiliser un compte de service pour vous authentifier auprès d'Artifact Registry.
Les méthodes d'authentification suivantes sont disponibles :
- Utiliser les identifiants Artifact Registry configurés pour Docker
- Par défaut, Helm peut s'authentifier avec les mêmes identifiants que ceux que vous utilisez pour Docker.
- Jeton d'accès
- Identifiants par défaut de l'application fournissent des jetons d'accès de courte durée pour accéder à vos ressources Google Cloud.
- Fichier de clé JSON
Une paire de clés gérée par l'utilisateur que vous pouvez utiliser comme identifiant pour un compte de service. Les identifiants étant de longue durée, il s'agit de l'option la moins sécurisée de toutes les méthodes d'authentification disponibles.
Dans la mesure du possible, utilisez un jeton d'accès pour réduire le risque d'accès non autorisé à vos artefacts.
Utiliser votre configuration Docker
Par défaut, Helm prend en charge les paramètres de registre dans le fichier de configuration Docker. config.json. Helm recherche les paramètres du registre à l'emplacement par défaut ou à l'emplacement spécifié par la variable d'environnement DOCKER_CONFIG.
Si vous avez configuré Docker avec un outil d'aide à la connexion pour s'authentifier auprès d'Artifact Registry, de Helm utilise votre configuration existante pour les dépôts Docker Artifact Registry.
Un jeton d'accès
Les jetons d'accès sont des jetons de courte durée qui permettent d'accéder à vos ressources Google Cloud. Comme le jeton a une courte durée de vie, vous devez demander moins d'une heure avant de l'utiliser pour vous connecter à Artifact Registry des dépôts.
Google Cloud obtient un jeton d'accès à l'aide des identifiants par défaut de l'application.
Pour utiliser un jeton d'accès :
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 le rôle Artifact Registry approprié au compte de service afin de fournir l'accès au dépôt.
Attribuez l'emplacement du fichier de clé du compte de service à la variable
GOOGLE_APPLICATION_CREDENTIALS
afin que l'assistant d'identification Artifact Registry puisse obtenir votre clé lors de la connexion aux dépôts.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
Où KEY-FILE est le chemin d'accès au fichier de clé du compte de service.
Obtenez un jeton d'accès en tant qu'identifiant lorsque vous vous authentifiez auprès d'Artifact Registry avec Docker.
Linux/macOS
Exécutez la commande suivante :
gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://LOCATION-docker.pkg.dev
Windows
Exécutez la commande suivante :
gcloud auth application-default print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://LOCATION-docker.pkg.dev
Où
oauth2accesstoken
est le nom d'utilisateur à utiliser pour s'authentifier avec un jeton d'accès.gcloud auth application-default print-access-token
correspond à la Google Cloud CLI. pour obtenir le jeton d'accès du compte de service. Votre accès le jeton est le mot de passe pour l'authentification.- LOCATION est l'emplacement régional ou multirégional du dépôt dans lequel l'image est stockée.
Helm est désormais authentifié auprès d'Artifact Registry.
Un fichier de clé JSON
Toute personne ayant accès à une clé privée valide pour un compte de service peut accéder aux ressources via le compte de service. Notez que le cycle de vie de l'accès de la clé au compte de service (et par conséquent, aux données auxquelles le compte de service a accès) est indépendant du cycle de vie de l'utilisateur ayant téléchargé la clé.
Suivez les instructions ci-dessous pour limiter l'accès à vos dépôts :
- Créer des comptes de service dédiés permettant uniquement d'interagir avec les dépôts.
- Attribuer le rôle Artifact Registry spécifique pour l'accès requis par le compte de service. Par exemple, un compte de service qui ne télécharge que des artefacts ne nécessite que le rôle de lecteur Artifact Registry.
- Configurez les autorisations pour vos comptes de service dédiés sur chaque plutôt qu'au niveau du projet. Vous pouvez ensuite spécifier l'accès en fonction du contexte du dépôt. Par exemple, un compte de service pour les builds de développement peut avoir le rôle de lecteur Artifact Registry pour un dépôt de production et le rôle d'écrivain Artifact Registry pour un dépôt de préproduction.
- Suivez les bonnes pratiques de gestion des clés de compte de service.
Pour créer un nouveau compte de service et une clé de compte de service à n'utiliser qu'avec les dépôts Artifact Registry, procédez comme suit :
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".
Vous avez la possibilité d'encoder tous les contenus du fichier de clé en base64.
Linux
base64 FILE-NAME > NEW-FILE-NAME
macOS
base64 -i FILE-NAME -o NEW-FILE-NAME
Windows
Base64.exe -e FILE-NAME > NEW-FILE-NAME
Où FILE-NAME correspond au nom de fichier d'origine de la clé et NEW-FILE-NAME correspond à votre fichier de clé encodé en base64.
Accordez le rôle Artifact Registry approprié au compte de service afin de fournir l'accès au dépôt.
Utilisez la clé du compte de service pour vous authentifier :
Linux/macOS
Exécutez la commande suivante :
cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \ https://LOCATION-docker.pkg.dev
Windows
Exécutez la commande suivante :
helm registry login -u KEY-TYPE --password-stdin https://LOCATION-docker.pkg.dev < KEY-FILE
Où
- KEY-TYPE est l'un des éléments suivants :
_json_key
si vous utilisez la clé de compte de service au format JSON tel qu'il vous a été fourni lors de la création du fichier._json_key_base64
si vous avez codé en base64 l'ensemble du contenu du fichier.
- KEY-FILE est le nom du fichier de clé du compte de service au format JSON.
- LOCATION est l'emplacement régional ou multirégional du dépôt dans lequel l'image est stockée.
- KEY-TYPE est l'un des éléments suivants :
Helm est désormais authentifié avec Artifact Registry.