vault-plugin-secrets-qdrant é um plug-in Hashicorp Vault que estende o Vault com um mecanismo de segredos para QDRANT para Auth JWT.
É capaz de gerar tokens assinados com credenciais QDRANT/JWT com controle de acesso granular.
Os papéis são armazenados no cofre e podem ser revogados a qualquer momento.
Os tokens JWT gerados são efêmeros e sem estado; Eles não são armazenados em um cofre, mas podem ser obrigados a funções e invalidados quando a função é excluída.
O plug -in também pode criar/atualizar/excluir dados de funções para servidores QDRANT
O mecanismo de segredos Qdrant gera credenciais JWT dinamicamente.
O plug -in suporta vários recursos, incluindo: config, função e jwt.
Leia a documentação oficial do QDRANT para entender os conceitos de token e acesso, bem como o processo de autenticação.
Uma mão cheia de recursos pode ser definida no plug -in do Vault:
O recurso do tipo config representa a configuração da instância do banco de dados para segredos.
| Caminho da entidade | Descrição | Operações |
|---|---|---|
| QDRANT/CONFIG | Instâncias de lista | lista |
| QDRANT/CONFIG/ | Gerenciar a configuração da instância | Escreva, leia, exclua |
O recurso de role de tipo representa a configuração de funções de banco de dados para segredos.
| Caminho da entidade | Descrição | Operações |
|---|---|---|
| qdrant/função/ | Listar funções para | lista |
| QDRANT/ROPE // | Gerenciar a configuração da instância Config | Escreva, leia, exclua |
O recurso do tipo jwt representa tokens JWT de banco de dados.
| Caminho da entidade | Descrição | Operações |
|---|---|---|
| QDRANT/JWT // | Gerar token para o papel | ler |
Existem argumentos que podem ser passados para os caminhos para config/ (instância do banco de dados), role/ .
| Chave | Tipo | Obrigatório | Exemplo | Descrição |
|---|---|---|---|---|
| url | bool | verdadeiro | QDRANT: 6334 | Endereço da URL da instância do QDRANT (protocolo GRPC) |
| sig_key | corda | verdadeiro | chave secreta | Chave secreta para assinar e verificar os tokens (API-Key Server). |
| sig_alg | corda | verdadeiro | HS256 | Algoritmo para decodificar os tokens. |
| jwt_ttl | corda | verdadeiro | 300s | TTL padrão, por exemplo, tokens (pode ser substituído em funções) |
| TLS | bool | falso | verdadeiro | Se definido como true - o Vault abrirá a conexão TLS GRPC com QDRANT |
| ca | corda | falso | eyjhbgc ... | Base64 Cert CA personalizado codificado para TLS |
Nota: Quando você excluir uma configuração de instância, todas as funções associadas serão excluídas automaticamente da instância do QDRANT.
| Chave | Tipo | Obrigatório | Exemplo | Descrição |
|---|---|---|---|---|
| jwt_ttl | corda | falso | 300s | TTL, por exemplo, tokens |
| reivindicações | JSON | verdadeiro | Atributos de acesso e filtros (consulte o QDRANT DOC) |
Nota: Funções do cofre sincronizam com a coleção de instâncias QDRANT sys_roles automaticamente
Exemplo claims
{
"claims":{
"value_exists": {
"collection": "sys_roles",
"matches": [
{ "key": "role", "value": "write2" }
]
},
"access": [
{
"collection": "my_collection",
"access": "r"
}
]
}
}
Para usar este plug -in, você precisa registrá -lo no Vault. Configure o seu servidor Vault para ter uma configuração válida plugins_directory .
NOTA: Você pode definir api_addr para o seu endereço de escuta e disable_mlock como true na configuração vault para poder usar o plug -in.
Faça o download da versão estável mais recente da página de lançamento e coloque -a no plugins_directory do seu servidor Vault.
Para usar um plug -in Vault, você precisa da soma sha256 do plugin.
Exemplo de como registrar o 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 Nota: Você pode usar o sinalizador -tls-skip-verify se estiver usando um certificado autoassinado.
$ make $ make setup-env$ make tests$ make e2e$ make teardown-env$ make cleanAs contribuições de código são muito bem -vindas .
git checkout -b AmazingFeature )git push origin AmazingFeature )main .