Accéder aux clusters à l'aide de GKE Identity Service

GKE Identity Service est un service d'authentification qui vous permet d'utiliser les fournisseurs d'identité existants de votre organisation pour l'authentification auprès de clusters dans plusieurs environnements GKE. Vous pouvez ainsi utiliser le même ID pour vous connecter aux clusters déployés sur Google Cloud, sur site et sur d'autres clouds publics. Ce document est destiné aux développeurs et aux autres utilisateurs de clusters GKE qui doivent accéder aux clusters à l'aide de ce service. Si vous devez vous connecter à des clusters à l'aide de votre ID Google Cloud via la passerelle Connect, consultez la page Utiliser la passerelle Connect.

Si vous êtes un administrateur de cluster ou de plate-forme et avez besoin de configurer GKE Identity Service pour votre organisation ou votre équipe, consultez la page Présentation concernant GKE Identity Service pour obtenir des informations sur les environnements de cluster compatibles, les autres prérequis et les guides de configuration correspondants.

Se connecter aux clusters depuis la ligne de commande

Pour vous authentifier auprès des clusters depuis la ligne de commande, vous devez exécuter des commandes d'authentification gcloud à l'aide d'un fichier de configuration de connexion spécial fourni par votre administrateur de cluster.

Avant de commencer

  1. Assurez-vous que les outils de ligne de commande suivants sont installés :

    • La dernière version de Google Cloud CLI, qui inclut gcloud, l'outil de ligne de commande qui permet d'interagir avec Google Cloud. Si vous devez installer Google Cloud CLI, consultez le guide d'installation.
    • kubectl pour exécuter des commandes sur les clusters Kubernetes. Si vous devez installer kubectl, reportez-vous au guide d'installation.
  2. Exécutez les commandes suivantes pour installer ou mettre à jour le composant anthos-auth :

    gcloud components update
    gcloud components install anthos-auth
  3. Vérifiez que l'outil a bien été installé en exécutant la commande suivante :

    gcloud anthos auth version

    Si un numéro de version vous est renvoyée, cela indique que l'installation a réussi.

Obtenir le fichier de configuration

gcloud CLI se base sur un nom de fichier et un emplacement par défaut sur votre ordinateur local pour votre fichier de configuration d'authentification. Il est possible que votre administrateur copie automatiquement le fichier sur votre ordinateur pour votre compte. Si vous recevez manuellement le fichier et que vous devez l'enregistrer sur votre ordinateur, utilisez les valeurs par défaut pour simplifier vos commandes d'authentification gcloud.

Utilisez les commandes suivantes pour copier le fichier de configuration d'authentification à l'emplacement par défaut :

Linux

mkdir -p  $HOME/.config/google/anthos/
cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml

[AUTH_CONFIG_FILE] est le nom de votre fichier de configuration d'authentification. Par exemple, kubectl-anthos-config.yaml.

macOS

mkdir -p  $HOME/Library/Preferences/google/anthos/
cp [AUTH_CONFIG_FILE] $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

[AUTH_CONFIG_FILE] est le nom de votre fichier de configuration d'authentification. Par exemple, kubectl-anthos-config.yaml.

Windows

md "%APPDATA%\google\anthos"
copy [AUTH_CONFIG_FILE] "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"

[AUTH_CONFIG_FILE] est le nom de votre fichier de configuration d'authentification. Par exemple, kubectl-anthos-config.yaml.

Si vous (ou votre administrateur) choisissez d'utiliser un nom de fichier ou un emplacement différent (par exemple, si votre administrateur fournit le fichier via une URL sécurisée), vous pouvez le spécifier à l'aide de l'option --login-config dans chacune de vos requêtes d'authentification. Pour en savoir plus, consultez la section suivante.

S'authentifier auprès du cluster

Exécutez des commandes gcloud pour vous authentifier auprès de vos clusters :

  1. Exécutez la commande gcloud anthos auth login pour lancer le processus d'authentification :

    gcloud anthos auth login \
     --cluster [CLUSTER_NAME] \
     --user [USER_NAME] \
     --login-config [AUTH_CONFIG_FILE_PATH] \
     --login-config-cert [CA_CERT_PEM_FILE] \
     --kubeconfig [CLUSTER_KUBECONFIG]

    où :

    • [CLUSTER_NAME] (facultatif) spécifie le nom de votre cluster. Si cette option est omise, vous êtes invité à choisir parmi les clusters spécifiés dans votre fichier de configuration d'authentification.

    • [USER_NAME] (facultatif) spécifie le nom d'utilisateur des identifiants enregistrés dans le fichier kubeconfig. La valeur par défaut est [CLUSTER_NAME]-anthos-default-user.

    • [AUTH_CONFIG_FILE_PATH] (facultatif) spécifie le chemin d'accès personnalisé ou l'URL de l'emplacement auquel votre fichier de configuration d'authentification est enregistré ou hébergé. Vous pouvez omettre ce paramètre si le fichier se trouve à l'emplacement par défaut. Exemple : --login-config /path/to/custom/authentication-config.yaml

    • [CA_CERT_PEM_FILE] (facultatif) spécifie le chemin d'accès à un fichier de certificat PEM de votre autorité de certification. Si votre fichier de configuration d'authentification est hébergé de manière sécurisée, vous pouvez utiliser une connexion HTTPS pour y accéder. Exemple : --login-config-cert my-cert.pem

    • [CLUSTER_KUBECONFIG] (facultatif) spécifie le chemin d'accès personnalisé au fichier kubeconfig de votre cluster. Les jetons d'ID OIDC renvoyés par votre fournisseur OpenID sont enregistrés dans le fichier kubeconfig.

      Utilisez cette option si votre fichier kubeconfig se trouve ailleurs que dans l'emplacement par défaut. Si cette option est omise, les jetons d'authentification sont ajoutés au fichier kubeconfig à l'emplacement par défaut. Exemple : --kubeconfig /path/to/custom.kubeconfig

    Exemples :

    • S'authentifier auprès d'un cluster spécifique :

      gcloud anthos auth login --cluster my-production-cluster
      
    • Utiliser une invite pour sélectionner le cluster auprès duquel l'authentification doit s'effectuer :

      gcloud anthos auth login
      

      Résultat :

      Please use the --cluster flag to specify a cluster from the list below:
      Source: $HOME/.config/google/anthos/kubectl-anthos-config.yaml
      1. Cluster: projects/1000000000000/locations/global/memberships/gke-gcp-cluster ServerIP: https://104.198.180.50:440
      2. Cluster: projects/1000000000000/locations/global/memberships/gke-baremetal-cluster ServerIP: https://104.198.180.51:440
      3. Cluster: projects/1000000000000/locations/global/memberships/gke-onprem-cluster ServerIP: https://104.198.180.52:440
      4. Cluster: projects/1000000000000/locations/global/memberships/gke-aws-cluster ServerIP: https://104.198.180.53:440
      
    • Utiliser un fichier de configuration d'authentification hébergé :

      gcloud anthos auth login \
       --cluster my-production-cluster \
       --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \
       --login-config-cert my-cert.pem
      
    • Utilisez une invite pour sélectionner une option d'authentification. Pour en savoir plus à ce sujet et obtenir un exemple, consultez la section Choisir une méthode d'authentification ci-dessous.

  2. Saisissez vos identifiants dans l'écran d'autorisation basé sur navigateur qui s'affiche. En cas de réussite de l'authentification, votre fichier kubeconfig contient maintenant un jeton d'ID. Vos commandes kubectl pourront l'utiliser pour s'authentifier auprès du serveur d'API Kubernetes sur votre cluster.

  3. Vérifiez que l'authentification a réussi en exécutant l'une des commandes kubectl pour accéder à une ressource de votre cluster. Par exemple, si vous avez accès à la ressource "nœuds" du cluster (cet accès est configuré par votre administrateur de cluster), vous devriez pouvoir exécuter la commande suivante et afficher les nœuds du cluster :

    kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]

Pour en savoir plus sur l'accès des utilisateurs, consultez la section Résoudre les problèmes d'accès des utilisateurs.

Choisir une méthode d'authentification

Si votre administrateur de cluster a configuré plusieurs fournisseurs d'identité pour votre cluster (par exemple, un fournisseur OIDC et un serveur LDAP) et n'a pas configuré de fournisseur par défaut, vous êtes invité à sélectionner une option d'authentification sur la page de connexion, comme dans l'exemple suivant :

gcloud anthos auth login

Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel

Please enter your numeric choice:

1

Setting Preferred Authentication option to [LDAP Server]

Indiquez le chiffre correspondant à votre choix, puis poursuivez la procédure de connexion, comme décrit dans la section S'authentifier auprès du cluster ci-dessus.

L'option d'authentification choisie est conservée et réutilisée jusqu'à ce que l'administrateur du cluster change le fournisseur par défaut ou que vous le modifiiez vous-même. Pour modifier votre option d'authentification préférée, utilisez l'option --set-preferred-authentication.

gcloud anthos auth login --set-preferred-authentication

Un résultat semblable à l'exemple suivant, vous permettant de choisir une nouvelle option d'authentification préférée, devrait s'afficher :

Your current authentication method is [1] AD Server. Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel

Please enter your numeric choice:

2

Setting Preferred Authentication option to [OIDC]

S'authentifier via SSH depuis une machine distante

Supposons que vous souhaitiez vous connecter en SSH à un ordinateur distant et vous authentifier auprès d'un cluster depuis cette machine distante. Pour ce faire, votre fichier de configuration d'authentification doit se trouver sur la machine distante et vous devez être en mesure d'accéder à votre fournisseur OpenID depuis votre machine locale.

Sur votre machine locale, exécutez la commande suivante :

ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]

où :

  • [USER_NAME] et [REMOTE_MACHINE] sont les valeurs standards permettant de se connecter en SSH.

  • [LOCAL_PORT] est un port ouvert de votre choix sur votre machine locale que vous utiliserez pour accéder à la machine distante.

  • [REMOTE_PORT] est le port que vous avez configuré pour votre URL de redirection OIDC. Vous le trouverez dans le champ kubectlRedirectURI de votre fichier de configuration d'authentification.

Dans votre shell SSH, exécutez la commande suivante pour lancer l'authentification :

gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]

[AUTH_CONFIG_FILE] est le chemin d'accès à votre fichier de configuration d'authentification sur la machine distante.

Sur votre ordinateur local, dans un navigateur, accédez à http://localhost:[LOCAL_PORT]/login et suivez la procédure de connexion OIDC.

Le fichier kubeconfig sur la machine distante contient maintenant le jeton dont vous avez besoin pour accéder au cluster.

Dans votre shell SSH, vérifiez que vous avez accès au cluster :

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes

Se connecter aux clusters depuis la console Google Cloud (fournisseurs OIDC uniquement)

Suivez les instructions de la page Travailler avec des clusters depuis la console Google Cloud.