Se connecter à l'aide d'un fichier de configuration
GKE Identity Service vous permet de vous connecter aux clusters configurés à partir de la ligne de commande à l'aide d'un nom d'utilisateur et d'un mot de passe fournis par un fournisseur d'identité tiers. Suivez les instructions de cette page si l'administrateur de votre cluster a choisi de partager un fichier de configuration de connexion à utiliser lors de l'authentification avec gcloud CLI. Pour en savoir plus sur l'accès aux clusters, consultez la section Choisir une méthode d'accès pour se connecter aux clusters.
Workflow de connexion
Voici le workflow utilisé par GKE Identity Service pour vous permettre de vous connecter aux clusters configurés à l'aide d'un fichier de configuration de connexion. Le flux exact dépend du type de fournisseur d'identité utilisé.
Workflow OIDC
Avec les fournisseurs OIDC, un administrateur de cluster enregistre GKE Identity Service en tant qu'application cliente pour le fournisseur d'identité et configure chaque cluster. Les administrateurs de cluster peuvent ajouter un contrôle des accès plus précis à l'aide du contrôle des accès basé sur les rôles Kubernetes (RBAC), si nécessaire.
Vous pouvez vous connecter aux clusters de plusieurs façons :
Accès à la ligne de commande
- Authentifiez-vous : exécutez la commande
gcloud anthos auth login
et saisissez vos identifiants de connexion OIDC. Cette opération permet de récupérer un jeton d'identité auprès du fournisseur. - Mettez à jour Kubeconfig : le jeton récupéré est automatiquement ajouté à votre fichier kubeconfig.
- Accédez au cluster : utilisez
kubectl
pour interagir avec votre cluster. Le serveur d'API Kubernetes utilise GKE Identity Service pour valider votre jeton et autoriser l'accès.
Accès à la console Google Cloud
- Lancez la connexion : lorsque vous vous connectez à partir de la console Google Cloud, vous êtes redirigé vers la page de connexion du fournisseur d'identité.
- Authentifiez-vous : saisissez vos identifiants et connectez-vous.
- Accédez au cluster : revenez à la console Google Cloud pour afficher et gérer vos ressources de cluster.
Workflow LDAP
Avec les fournisseurs LDAP, un administrateur de cluster configure GKE Identity Service pour chaque cluster, y compris les identifiants du client LDAP. Les administrateurs de cluster peuvent ajouter un contrôle des accès plus précis à l'aide du contrôle des accès basé sur les rôles Kubernetes (RBAC), si nécessaire.
Accès à la ligne de commande
- Lancez la connexion : exécutez la commande
gcloud anthos auth login
et saisissez vos identifiants de connexion LDAP. - Génération de jetons : GKE Identity Service interroge le serveur LDAP, récupère vos attributs utilisateur et les regroupe dans un jeton de courte durée (STS). Vos identifiants LDAP ne sont pas stockés localement.
- Mettez à jour Kubeconfig : le jeton STS est automatiquement ajouté à votre fichier
kubeconfig
. - Accédez au cluster : utilisez
kubectl
pour interagir avec votre cluster. Le serveur d'API Kubernetes utilise GKE Identity Service pour valider votre jeton et autoriser l'accès. Par défaut, le jeton expire au bout d'une heure, ce qui oblige l'utilisateur à se reconnecter.
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 fourni par votre administrateur de cluster.
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
où [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
où [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"
où [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 :
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]
Remplacez les éléments suivants :
[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 fichierkubeconfig
.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 fichierkubeconfig
à 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 requête 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 requête pour sélectionner une option d'authentification. Pour en savoir plus, consultez la section Choisir une méthode d'authentification.
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 commandeskubectl
pourront l'utiliser pour s'authentifier auprès du serveur d'API Kubernetes sur votre cluster.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
Pour vous connecter à une machine distante et vous authentifier auprès d'un cluster avec SSH, 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]
Remplacez les éléments suivants :
[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]
où [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