Configurer l'authentification pour Helm

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

Avant de commencer

  1. S'il n'existe pas de dépôt pour vos graphiques, créez-en un. Choisissez 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 les valeurs par défaut pour les commandes de la Google Cloud CLI.
  4. Installez Helm 3.8.0 ou une version ultérieure. Dans les versions précédentes de Helm, la prise en charge des graphiques au format OCI est une fonctionnalité expérimentale.

    Exécutez helm version pour valider 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 utilisés pour Docker.
Jeton d'accès
Les identifiants par défaut de l'application fournissent des jetons d'accès de courte durée qu'un compte de service utilise 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 est compatible avec les paramètres de registre du fichier de configuration Docker config.json. Helm trouve les paramètres de 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 assistant d'identification pour vous authentifier auprès d'Artifact Registry, 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. Étant donné que le jeton a une courte durée de vie, vous devez le demander moins d'une heure avant de l'utiliser pour vous connecter aux dépôts Artifact Registry.

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 :

  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 ci-dessous.

    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 jeton d'accès.
    • gcloud auth application-default print-access-token correspond à la commande Google Cloud CLI permettant d'obtenir le jeton d'accès du compte de service. Votre jeton d'accès est le mot de passe d'authentification.
    • LOCATION est l'emplacement régional ou multirégional du dépôt où 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.
  • Attribuez 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 de vos comptes de service dédiés sur chaque dépôt 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 compilations de développement peut disposer du rôle Lecteur Artifact Registry pour un dépôt de production et du rôle Rédacteur Artifact Registry pour un dépôt de préproduction.
  • Suivez les bonnes pratiques pour gérer les 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 est le 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é de compte de service pour vous authentifier:

    Linux/macOS

    Exécutez la commande ci-dessous.

    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, telle qu'elle vous a été fournie 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 où l'image est stockée.

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

Étapes suivantes