Configurer l'authentification pour Helm

Cette page explique comment configurer Helm pour s'authentifier auprès d'Artifact Registry des dépôts.

Avant de commencer

  1. Si aucun dépôt n'existe pour vos graphiques, Créer un dépôt Choisir Docker comme format de dépôt.
  2. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

    gcloud init
  3. (Facultatif) Configurez des valeurs par défaut pour les commandes de la Google Cloud CLI.
  4. Installez Helm 3.8.0 ou 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 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.

Si possible, utilisez un jeton d'accès pour réduire le risque un 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 trouve les paramètres de registre soit l'emplacement par défaut, soit l'emplacement spécifié par la 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 en utilisant Identifiants par défaut de l'application.

Pour utiliser un jeton d'accès :

  1. 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".

    Accéder à la page "Comptes de service"

  2. Accordez le rôle Artifact Registry approprié au compte de service afin de fournir l'accès au dépôt.

  3. 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
    

    KEY-FILE est le chemin d'accès au fichier de clé du compte de service.

  4. 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
    

    • oauth2accesstoken est le nom d'utilisateur à utiliser lors de l'authentification avec un 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 est le mot de passe pour l'authentification.
    • LOCATION est le régional ou multirégional emplacement du dépôt l'emplacement de stockage de l'image.

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 peuvent disposer du rôle "Lecteur Artifact Registry" un dépôt de production et le rôle "Rédacteur Artifact Registry" 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 :

  1. 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".

    Accéder à la page "Comptes de service"

  2. 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
    

    FILE-NAME correspond au nom de fichier d'origine de la clé et NEW-FILE-NAME est votre fichier de clé encodé en base64.

  3. Accordez le rôle Artifact Registry approprié au compte de service afin de fournir l'accès au dépôt.

  4. 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
    

    • 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 le régional ou multirégional emplacement du dépôt où l'image est stockée.

Helm est désormais authentifié auprès d'Artifact Registry.

Étape suivante