vault-plugin-secrets-qdrant est un plugin Vault Hashicorp qui étend Vault avec un moteur Secrets pour QDRANT pour JWT Auth.
Il est capable de générer des jetons signés QDRANTS / JWT avec contrôle d'accès granulaire.
Les rôles sont stockés dans le coffre-fort et peuvent être révoqués à tout moment.
Les jetons JWT générés sont éphémères et apatrides; Ils ne sont pas stockés dans un coffre-fort mais peuvent être liés à des rôles et invalidés lorsque le rôle est supprimé.
Le plugin est également en mesure de créer / mettre à jour / supprimer les données des rôles à des serveurs QDrant
Le moteur Qdrant Secrets génère dynamiquement des informations d'identification JWT.
Le plugin prend en charge plusieurs ressources, notamment: config, rôle et JWT.
Veuillez lire la documentation officielle QDRANT pour comprendre les concepts de jeton et d'accès ainsi que le processus d'authentification.
Une main pleine de ressources peut être définie dans le plugin Vault:
La ressource de type config représente la configuration de l'instance de base de données pour les secrets.
| Chemin d'entité | Description | Opérations |
|---|---|---|
| qdrant / config | Liste des instances | liste |
| qdrant / config / | Gérer la configuration de l'instance | écrire, lire, supprimer |
La ressource du role de type représente la configuration des rôles de base de données pour les secrets.
| Chemin d'entité | Description | Opérations |
|---|---|---|
| qdrant / rôle / | Lister les rôles pour | liste |
| qdrant / rôle // | Gérer la configuration du rôle d'instance | écrire, lire, supprimer |
La ressource de type jwt représente les jetons de base de données JWT.
| Chemin d'entité | Description | Opérations |
|---|---|---|
| qdrant / jwt // | Générer un jeton pour le rôle | lire |
Il existe des arguments qui peuvent être transmis aux chemins de main pour config/ (instance de base de données), role/ .
| Clé | Taper | Requis | Exemple | Description |
|---|---|---|---|---|
| URL | bool | vrai | Qdrant: 6334 | Adresse URL de l'instance QDRANT (protocole GRPC) |
| sig_key | chaîne | vrai | clé secrète | Clé secrète pour signer et vérifier les jetons (serveur API-Key). |
| sig_alg | chaîne | vrai | HS256 | Algorithme pour décoder les jetons. |
| jwt_ttl | chaîne | vrai | 300 | Les jetons TTL par défaut par exemple (peuvent être écrasés dans les rôles) |
| TLS | bool | FAUX | vrai | Si défini sur True - Vault ouvrira la connexion TLS GRPC à Qdrant |
| Californie | chaîne | FAUX | eyjhbgc ... | Base64 Cert personnalisé en codé pour TLS |
Remarque: Lorsque vous supprimez une configuration d'instance, tous les rôles associés seront automatiquement supprimés de l'instance QDRANT.
| Clé | Taper | Requis | Exemple | Description |
|---|---|---|---|---|
| jwt_ttl | chaîne | FAUX | 300 | TTL par exemple des jetons |
| réclamations | json | vrai | Attributs d'accès et de filtres (voir Qdrant Doc) |
Remarque: les rôles de voûte synchronisés avec la collection d'instance QDrant sys_roles
Exemple claims
{
"claims":{
"value_exists": {
"collection": "sys_roles",
"matches": [
{ "key": "role", "value": "write2" }
]
},
"access": [
{
"collection": "my_collection",
"access": "r"
}
]
}
}
Afin d'utiliser ce plugin, vous devez l'enregistrer avec Vault. Configurez votre serveur Vault pour avoir une configuration plugins_directory valide.
Remarque: vous pouvez définir api_addr sur votre adresse d'écoute et disable_mlock sur true dans la configuration vault pour pouvoir utiliser le plugin.
Téléchargez la dernière version stable de la page de version et placez-la dans les plugins_directory de votre serveur Vault.
Pour utiliser un plugin Vault, vous avez besoin de la somme SHA256 du plugin.
Exemple comment enregistrer le plugin:
SHA256SUM=$(sha256sum vault-plugin-secrets-qdrant | cut -d' ' -f1)
vault plugin register -sha256 ${SHA256SUM} secret vault-plugin-secrets-qdrant
vault secrets enable -path=qdrant vault-plugin-secrets-qdrant Remarque: vous pouvez utiliser l'indicateur -tls-skip-verify si vous utilisez un certificat auto-signé.
$ make $ make setup-env$ make tests$ make e2e$ make teardown-env$ make cleanLes contributions du code sont très bienvenues .
git checkout -b AmazingFeature )git push origin AmazingFeature )main .