Résoudre les problèmes d'accès des utilisateurs
Ce document fournit des conseils de dépannage pour les problèmes d'accès utilisateur dans GKE Identity Service.
gcloud anthos create-login-config
ne parvient pas à obtenir clientconfig
Ce problème se produit dans l'un des cas suivants:
- Le fichier kubeconfig transmis à
gcloud anthos create-login-config
est incorrect. - La ressource personnalisée ClientConfig n'est pas présente dans le cluster (GKE Identity Service n'est pas installé sur le cluster).
Message d'erreur
failed to get clientconfig default in namespace kube-public
Solution
Pour résoudre ce problème, procédez comme suit :
- Assurez-vous de disposer du fichier kubeconfig approprié pour votre cluster.
Pour vérifier si la ressource personnalisée ClientConfig se trouve dans le cluster, exécutez la commande suivante:
kubectl --kubeconfig KUBECONFIG get clientconfig default -n kube-public
Si la ressource ClientConfig n'est pas présente dans le cluster, installez et configurez GKE Identity Service sur le cluster. Pour en savoir plus sur les options de configuration des clusters, consultez la page Options de configuration pour les clusters.
Échec de gcloud anthos create-login-config
en raison d'un nom de cluster en double
Ce problème se produit si vous tentez de créer une configuration de connexion pour un cluster dans un fichier contenant déjà une configuration de connexion pour ce cluster.
Message d'erreur
error merging with file FILENAME because FILENAME contains a cluster with the same name as the one read from KUBECONFIG.
Solution
Pour résoudre ce problème, utilisez l'option --output
pour spécifier un nouveau fichier de destination.
Si vous ne fournissez pas --output
, ces données de configuration de connexion sont écrites dans un fichier nommé kubectl-anthos-config.yaml
dans le répertoire actuel.
La commande gcloud anthos auth login
renvoie une erreur proxyconnect tcp
Ce problème se produit en cas d'erreur dans les configurations des variables d'environnement https_proxy
ou HTTPS_PROXY
. Si https://
est spécifié dans les variables d'environnement, les bibliothèques clientes HTTP en langage Go peuvent échouer si le proxy est configuré pour gérer les connexions HTTPS à l'aide d'autres protocoles, tels que Sock5.
Message d'erreur
proxyconnect tcp: tls: first record does not look like a TLS handshake
Solution
Pour résoudre ce problème, modifiez les variables d'environnement https_proxy
et HTTPS_PROXY
pour omettre l'élément https:// prefix
. Sous Windows, modifiez les variables d'environnement système.
Par exemple, remplacez la valeur https://webproxy.example.com:8000
de la variable d'environnement https_proxy
par webproxy.example.com:8000
.
L'accès au cluster échoue lorsque vous utilisez un fichier kubeconfig généré par gcloud anthos auth login
Ce problème se produit lorsque le serveur d'API Kubernetes ne peut pas autoriser l'utilisateur pour l'une des raisons suivantes:
- La configuration utilisée comporte une erreur pour se connecter avec la commande
gcloud anthos auth login
. - Les règles RBAC nécessaires sont incorrectes ou manquantes pour l'utilisateur.
Message d'erreur
Unauthorized
Solution
Pour résoudre ce problème, procédez comme suit :
Vérifiez la configuration utilisée pour vous connecter.
Configuration OIDC
La section
authentication.oidc
du fichier de configuration du cluster d'utilisateur contient des champsgroup
etusername
permettant de définir les options--oidc-group-claim
et--oidc-username-claim
sur le serveur d'API Kubernetes. Lorsque le serveur d'API est présenté avec le jeton d'identité d'un utilisateur, il transfère le jeton à GKE Identity Service, qui renvoie les élémentsgroup-claim
etusername-claim
extraits au serveur d'API. Le serveur d'API utilise la réponse pour vérifier que le groupe ou l'utilisateur correspondant dispose des autorisations appropriées.Vérifiez que les revendications définies pour
group
etuser
dans la sectionauthentication.oidc
du fichier de configuration de cluster sont présentes dans le jeton d'ID.Vérifiez les stratégies RBAC appliquées.
Pour savoir comment configurer les stratégies RBAC appropriées pour GKE Identity Service, consultez la page Configurer le contrôle des accès basé sur les rôles (RBAC).
Les autorisations RBAC pour les groupes ne fonctionnent pas pour les fournisseurs OIDC
Vérifiez si le jeton d'ID contient les informations relatives au groupe.
Une fois que vous avez exécuté la commande
gcloud anthos auth login
pour lancer le flux d'authentification OIDC, le jeton d'ID est stocké dans le fichierkubeconfig
, dans le champid-token
. Utilisez jwt.io pour décoder le jeton d'ID et vérifier s'il contient les informations relatives au groupe de l'utilisateur comme prévu.Si le jeton d'ID ne contient pas d'informations sur le groupe de l'utilisateur, configurez correctement le fournisseur OIDC pour qu'il renvoie les informations sur le groupe conformément à la documentation de votre fournisseur OIDC. Par exemple, si vous utilisez la configuration OIDC du fournisseur d'identité Okta, suivez la documentation du fournisseur d'identité Okta pour configurer des groupes dans le jeton d'ID.
Si le jeton d'ID contient des informations relative au groupe, vérifiez si la clé d'informations sur le groupe dans le jeton d'ID correspond au champ
groupsClaim
configuré dans la sectionoidc
.Par exemple, si le jeton d'ID contient des informations relatives au groupe dans la clé
groups
:"groups" : ["group1", "group2" ...]
La valeur du champ
groupsClaim
doit alors êtregroups
dans la sectionoidc
.Après avoir modifié la configuration dans la section
oidc
, veillez à exécuter à nouveau les instructions répertoriées dans les sections Configurer l'accès des utilisateurs et Accéder aux clusters.
Résoudre les problèmes liés aux fournisseurs d'identité
Si vous rencontrez des problèmes lors de l'utilisation d'OIDC ou de LDAP avec votre cluster GKE, suivez la procédure décrite dans la présente section pour dépanner GKE Identity Service et déterminer s'il y a un problème avec la configuration de votre fournisseur d'identité.
Activer le journal de débogage de GKE Identity Service
Pour résoudre les problèmes d'identité dans votre cluster, activez le journal de débogage de GKE Identity Service.
Appliquez le correctif à votre cluster existant à l'aide de
kubectl patch
:kubectl patch deployment ais \ -n anthos-identity-service --type=json \ -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--vmodule=cloud/identity/hybrid/charon/*=LOG_LEVEL"}]' \ --kubeconfig KUBECONFIG
Remplacez les éléments suivants :
LOG_LEVEL
: pour les journaux les plus détaillés, définissez cette valeur sur le niveau3
lors du dépannage.KUBECONFIG
: chemin d'accès au fichier kubeconfig de votre cluster d'utilisateur.
Consulter le journal du conteneur GKE Identity Service
Recherchez les erreurs ou les avertissements dans les journaux de conteneurs de GKE Identity Service.
Pour consulter les journaux, utilisez
kubectl logs
:kubectl logs -f -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIG
Remplacez
KUBECONFIG
par le chemin d'accès du fichier kubeconfig de votre cluster d'utilisateur.
Redémarrer le pod GKE Identity Service
Si les journaux de conteneur indiquent des problèmes, redémarrez le pod GKE Identity Service.
Pour redémarrer le pod GKE Identity Service, supprimez le pod existant. Un pod de remplacement est automatiquement créé.
kubectl delete pod -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIG
Remplacez
KUBECONFIG
par le chemin d'accès du fichier kubeconfig de votre cluster d'utilisateur.
Résoudre les problèmes de connectivité au fournisseur d'identité
Si le pod GKE Identity Service semble fonctionner correctement, testez la connectivité au fournisseur d'identité distant.
Démarrez un pod Busybox dans le même espace de noms que le pod GKE Identity Service :
kubectl run curl --image=radial/busyboxplus:curl \ -n anthos-identity-service -- sleep 3000 \ --kubeconfig KUBECONFIG
Remplacez
KUBECONFIG
par le chemin d'accès du fichier kubeconfig de votre cluster d'utilisateur.Pour vérifier si vous pouvez récupérer l'URL de découverte, exécutez le pod Busybox et exécutez la commande
curl
:kubectl exec pod/curl -n anthos-identity-service -- \ curl ISSUER_URL \ --kubeconfig KUBECONFIG
Remplacez les éléments suivants :
ISSUER_URL
: URL d'émetteur de votre fournisseur d'identité.KUBECONFIG
: chemin d'accès au fichier kubeconfig de votre cluster d'utilisateur.
Une réponse réussie est un résultat JSON incluant le détail des points de terminaison de fournisseur d'identité.
Si la commande précédente ne renvoie pas le résultat attendu, contactez l'administrateur de votre fournisseur d'identité pour obtenir de l'aide.
La connexion LDAP ne fonctionne pas pour le cluster d'administrateur Google Distributed Cloud
LDAP n'est actuellement compatible qu'avec le cluster d'utilisateur Google Distributed Cloud.