vault-plugin-secrets-qdrant es un complemento de bóveda Hashicorp que extiende la bóveda con un motor Secrets para QDRANT para JWT Auth.
Es capaz de generar credenciales QDRANT/tokens firmados con control de acceso granular.
Los roles se almacenan en bóveda y se pueden revocar en cualquier momento.
Los tokens JWT generados son efímeros y sin estado; No se almacenan en una bóveda, pero pueden estar obligados a roles e invalidados cuando se elimina el papel.
El complemento también puede crear/eliminar/eliminar datos de roles a un servidor Qdrant
El motor Qdrant Secrets genera credenciales JWT dinámicamente.
El complemento admite varios recursos, que incluyen: config, rol y jwt.
Lea la documentación oficial de Qdrant para comprender los conceptos de token y acceso, así como el proceso de autenticación.
Se puede definir una mano llena de recursos dentro del complemento de bóveda:
El recurso de config de tipo representa la configuración de la instancia de la base de datos para secretos.
| Camino de la entidad | Descripción | Operaciones |
|---|---|---|
| Qdrant/config | Instancias de lista | lista |
| Qdrant/config/ | Administrar configuración de instancia | escribir, leer, eliminar |
El role de recurso de tipo representa la configuración de roles de bases de datos para secretos.
| Camino de la entidad | Descripción | Operaciones |
|---|---|---|
| Qdrant/rol/ | Lista de roles para | lista |
| qdrant/rol // | Administrar la configuración de rol de instancia | escribir, leer, eliminar |
El recurso de tipo jwt representa tokens de base de datos JWT.
| Camino de la entidad | Descripción | Operaciones |
|---|---|---|
| qdrant/jwt // | Generar token para el rol | leer |
Hay argumentos que se pueden pasar a las rutas para config/ (instancia de base de datos), role/ .
| Llave | Tipo | Requerido | Ejemplo | Descripción |
|---|---|---|---|---|
| url | bool | verdadero | Qdrant: 6334 | Dirección de URL de la instancia Qdrant (protocolo GRPC) |
| sig_key | cadena | verdadero | llave secreta | Clave secreta para firmar y verificar los tokens (servidor API-Key). |
| Sig_alg | cadena | verdadero | HS256 | Algoritmo para decodificar los tokens. |
| jwt_ttl | cadena | verdadero | 300 | TTL predeterminado, por ejemplo, los tokens (se pueden sobrescribir en roles) |
| TLS | bool | FALSO | verdadero | Si se establece en True: Vault abrirá la conexión TLS GRPC a Qdrant |
| California | cadena | FALSO | eyjhbgc ... | BASE64 CERVE CA CA CA CON COMO CON CONDUCCIÓN PARA TLS |
Nota: Cuando elimina una configuración de instancia, todos los roles asociados se eliminarán automáticamente de la instancia de QDRANT.
| Llave | Tipo | Requerido | Ejemplo | Descripción |
|---|---|---|---|---|
| jwt_ttl | cadena | FALSO | 300 | Ttl por ejemplo tokens |
| reclamos | json | verdadero | Atributos de acceso y filtros (ver Qdrant Doc) |
Nota: Los roles de bóveda se sincronizan con la colección de instancias Qdrant sys_roles automáticamente
Ejemplo claims
{
"claims":{
"value_exists": {
"collection": "sys_roles",
"matches": [
{ "key": "role", "value": "write2" }
]
},
"access": [
{
"collection": "my_collection",
"access": "r"
}
]
}
}
Para usar este complemento, debe registrarlo con Vault. Configure su servidor Vault para tener una configuración válida plugins_directory .
Nota: es posible que desee establecer api_addr en su dirección de escucha y disable_mlock a true en la configuración vault para poder usar el complemento.
Descargue la última versión estable de la página de lanzamiento y póngala en el plugins_directory de su servidor Vault.
Para usar un complemento de bóveda, necesita la suma SHA256 del complemento.
Ejemplo de cómo registrar el complemento:
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 Nota: Puede usar el indicador -tls-skip-verify si está utilizando un certificado autofirmado.
$ make $ make setup-env$ make tests$ make e2e$ make teardown-env$ make cleanLas contribuciones del código son muy bienvenidas .
git checkout -b AmazingFeature )git push origin AmazingFeature )main .