07Sécurité · Plugin Vault

ClickVault

Plugin du moteur de secrets de base de données HashiCorp Vault pour ClickHouse. Informations d'identification dynamiques, rotation des mots de passe, DDL compatible avec le cluster.

Crée des utilisateurs ClickHouse de courte durée à la demande et alterne les mots de passe selon un calendrier.

Go 1.26+Vault SDKClickHouseDatabase secrets
Dernier commit du dépôt

Chargement des derniers commits…

Lignes sources

1,017

Lignes de test

979

Codecov

85.4%

CI appliqué

YES

01

Problème

ClickHouse ne prend pas en charge les informations d'identification dynamiques natives dans le moteur de secrets de base de données de Vault. Les équipes gérant des clusters ClickHouse ont besoin d'informations d'identification de courte durée et d'une rotation automatisée des mots de passe sans intervention manuelle.

02

Pourquoi c'est dur

Les clusters ClickHouse utilisent DDL distribué (ON CLUSTER) que la plupart des plugins Vault ne gèrent pas. La création d'utilisateur dynamique doit être atomique : si les autorisations échouent, l'utilisateur partiellement créé doit être nettoyé. La rotation des mots de passe doit fonctionner sur les moteurs répliqués et non répliqués. Le plug-in doit implémenter correctement l'interface dbplugin.Database de Vault tout en gérant les différences de syntaxe spécifiques à ClickHouse.

03

Modèle de sécurité

Invariants
Injection SQLBLOCKED
Accès simultanéMUTEX
Création partielleCLEANUP
Collision de nom d'utilisateurGUARDED
Prise en charge de TLSYES
04

Décisions clés

DDL compatible avec les clusters

L'insertion ON CLUSTER garantit que DDL se propage à travers le cluster. Gère les tables de moteur répliquées et non répliquées.

Vérification des privilèges

La vérification de la connexion vérifie que le compte de service dispose des privilèges requis avant d'accepter la configuration.

Nettoyage en cas d'échec

Si la création d'un utilisateur réussit partiellement (par exemple, les autorisations échouent), le plugin supprime l'utilisateur partiellement créé pour éviter les comptes orphelins.