Qu’est-ce qu’une session de support ?
- La passerelle de session, une API authentifiée intégrée à l’outil de diagnostic, avec les endpoints
enable,disableetstatus. Chaque appel à la passerelle nécessite un jeton d’identification OIDC à courte durée de vie dont l’adresse e-mail figure dans votre liste d’autorisation des opérateurs. - Le fichier de session local, pour les installations sur VM Linux, écrit directement sur l’hôte avec un accès root.
kubectl port-forward (le tunnel utilise le TLS du serveur API) ou via une ressource Ingress qui termine TLS avec un certificat émis par une AC.
Vous définissez votre politique de session, y compris la liste d’autorisation des opérateurs, lors de l’exécution de clicklink clctl init.
Activation et désactivation des sessions
- Kubernetes
- VM Linux
La passerelle écoute sur le port 8443 du pod de l’outil de diagnostic. Si vous avez accès au cluster, accédez-y via un port-forward ; le tunnel s’appuie sur le TLS du serveur d’API Kubernetes :Ensuite, dans un autre terminal, activez une session :Vérifiez-la ou désactivez-la de la même façon :L’identité OIDC de l’appelant doit figurer dans la liste d’autorisation des opérateurs ; les appelants non authentifiés ou non autorisés reçoivent une erreur 401 ou 403, et la tentative est consignée. Si vous préférez ne pas exiger d’identifiants de cluster, le chart peut exposer la passerelle via un Ingress facultatif qui termine TLS à l’aide d’un certificat émis par une CA ; consultez la configuration.
Expiration de la session
session enable --duration permet de définir une durée pouvant aller jusqu’à 24 heures. Lorsque la session expire ou dès que vous exécutez session disable, l’outil de diagnostic cesse d’accepter les commandes. La désactivation de la session permet une révocation immédiate : aucun redémarrage ni aucune coordination avec ClickHouse ne sont nécessaires.
Liste d’autorisation des opérateurs
- Kubernetes : définissez
clctl.gateway.allowedOperatorsdans votre fichier de surcharge de valeurs. La liste est générée dans une ConfigMap que la passerelle relit toutes les 30 secondes ; ainsi, une modification des valeurs suivie dehelm upgraderenouvelle la liste d’autorisation sans redémarrer le pod. - VM Linux : la liste d’autorisation se trouve dans
/etc/clicklink/allowed-operators.txt, écrit parclicklink clctl inità partir des adresses e-mail d’opérateurs que vous fournissez.
Ce que les opérateurs peuvent faire pendant une session
- Des requêtes SQL en lecture seule sur vos clusters en tant qu’utilisateur
pcm_troubleshooter, limitées à une liste explicite de tables autorisées. La liste d’autorisation par défaut couvre les tables ClickHousesystem, telles quesystem.parts,system.merges,system.replicas,system.metricsetsystem.settings;system.query_logetsystem.text_logsont systématiquement refusées, de sorte que l’historique des requêtes ne quitte jamais votre environnement. La liste d’autorisation par défaut inclut toutefoissystem.processes, dont la colonnequeryaffiche le texte des instructions en cours d’exécution à ce moment-là ; retirez cette table de la liste d’autorisation de la session (troubleshooter.allowedTablesdans la surcouche Helm,troubleshooter.allowed_tablesdans le fichier de configuration de la VM) si le texte des requêtes en cours ne doit jamais être visible lors d’une session. L’utilisateur dispose uniquement de privilègesSELECTpar table, sans privilège d’écriture, DDL ni d’administration. - Des vues Kubernetes en lecture seule sur chaque déploiement provisionné (les bundles d’accès sont associés à des ServiceAccounts Kubernetes sur les deux cibles d’installation) :
get,listetwatchsur les pods, les journaux de pods, les services, les configmaps, les événements, les PersistentVolumeClaims, les déploiements, les statefulsets et les replicasets dans les espaces de noms autorisés. Sans bundle provisionné, l’outil de diagnostic refuse catégoriquement les commandes de type kubectl.
exec, delete ou patch ; les opérateurs ne peuvent donc pas ouvrir de shell dans vos pods ni modifier quoi que ce soit via le connecteur. La liste complète des privilèges et du RBAC figure dans la référence du modèle de privilèges.
Journal d’audit
/var/log/clicklink/troubleshoot-audit.log sous la forme d’un objet JSON par ligne (NDJSON). Le champ submitted_by enregistre l’identité associée à chaque entrée, laquelle dépend de son origine : les appels de passerelle contiennent l’adresse e-mail attestée par le jeton validé, jamais une valeur fournie par le client ; les modifications de session effectuées localement sur une VM enregistrent l’utilisateur hôte à l’origine de l’appel ; et les commandes exécutées au cours d’une session enregistrent l’identité de l’organisation transmise sur le canal de commandes authentifié. Une entrée d’activation de session via la passerelle se présente comme suit :
clctl.session.enable, clctl.session.disable et clctl.session.status ; la valeur de --reason lors de l’activation est enregistrée dans command_text. Les commandes exécutées pendant une session sont consignées selon le même schéma. status distingue les appels réussis des tentatives unauthorized, forbidden et rate_limited, de sorte que les accès refusés apparaissent également dans le journal.
Sur une VM, lisez directement le fichier avec clicklink clctl troubleshoot audit tail. Sur Kubernetes, le journal se trouve dans le pod de l’outil de diagnostic et l’image de conteneur ne contient pas d’interpréteur de commandes ; appelez donc le lecteur intégré au binaire via kubectl exec :
Masquage
/etc/clicklink/redaction-patterns.yaml ; une entrée portant le même nom qu’un modèle intégré le remplace. Le démon refuse de démarrer si le fichier de modèles n’est pas valide, et clicklink clctl preflight le valide : ainsi, une configuration de masquage défectueuse échoue explicitement au lieu de laisser passer silencieusement des données.
- Architecture : toutes les connexions établies par le connecteur et les flux de données associés aux sessions.
- Configuration : paramètres de passerelle, de liste d’autorisation et de masquage.
- FAQ : questions sur la révocation, l’audit et l’egress des données.