vault-plugin-secrets-qdrant -это плагин Hashicorp Vault, который расширяет хранилище с помощью Secrets Engine для Qdrant для JWT Auth.
Он способен генерировать учетные данные Qdrant/JWT, подписанные токены с гранулированным контролем доступа.
Роли хранятся в хранилище и могут быть отозваны в любое время.
Сгенерированные токены JWT являются эфемерными и без гражданства; Они не хранятся в хранилище, но могут быть связаны с ролями и недействительны, когда роль удалена.
Плагин также способен создавать/обновить/удалить данные о ролях на серверах Qdrant
Двигатель Qdrant Secrets динамически генерирует учетные данные JWT.
Плагин поддерживает несколько ресурсов, в том числе: конфигурация, роль и JWT.
Пожалуйста, прочитайте официальную документацию Qdrant, чтобы понять понятия токена и доступа, а также процесс аутентификации.
Рука, полная ресурсов, может быть определена в плагине Vault:
config ресурса типа представляет конфигурацию экземпляра базы данных для секретов.
| Объект пути | Описание | Операции |
|---|---|---|
| Qdrant/config | Список экземпляров | список |
| Qdrant/config/ | Управлять конфигурацией экземпляра | написать, читать, удалить |
role ресурса типа представляет конфигурацию ролей базы данных для секретов.
| Объект пути | Описание | Операции |
|---|---|---|
| Qdrant/Роль/ | Список ролей для | список |
| Qdrant/ROLE // | Управление конфигурацией роли экземпляра | написать, читать, удалить |
Ресурс типа jwt представляет базу данных JWT Tokens.
| Объект пути | Описание | Операции |
|---|---|---|
| qdrant/jwt // | Генерировать токен для роли | читать |
Существуют аргументы, которые могут быть переданы в пути для config/ (экземпляр базы данных), role/ .
| Ключ | Тип | Необходимый | Пример | Описание |
|---|---|---|---|---|
| URL | буль | истинный | Qdrant: 6334 | Адрес URL -адреса экземпляра Qdrant (протокол GRPC) |
| sig_key | нить | истинный | Секретный ключ | Секретный ключ, чтобы подписать и проверить токены (Api-Key Server). |
| sig_alg | нить | истинный | HS256 | Алгоритм декодировать токены. |
| jwt_ttl | нить | истинный | 300 с | По умолчанию TTL, например, токены (могут быть перезаписаны в ролях) |
| TLS | буль | ЛОЖЬ | истинный | Если установлено в True - Vault откроет TLS GRPC Connection с Qdrant |
| калифорнийский | нить | ЛОЖЬ | eyjhbgc ... | BASE64 CODED CANDEC CA CER для TLS |
Примечание. При удалении конфигурации экземпляра все связанные роли будут автоматически удалены из экземпляра Qdrant.
| Ключ | Тип | Необходимый | Пример | Описание |
|---|---|---|---|---|
| jwt_ttl | нить | ЛОЖЬ | 300 с | TTL, например, токены |
| претензии | json | истинный | Атрибуты доступа и фильтров (см. Qdrant Doc) |
Примечание. Роли Vault Sync с помощью коллекции экземпляров Qdrant sys_roles автоматически
Пример claims
{
"claims":{
"value_exists": {
"collection": "sys_roles",
"matches": [
{ "key": "role", "value": "write2" }
]
},
"access": [
{
"collection": "my_collection",
"access": "r"
}
]
}
}
Чтобы использовать этот плагин, вам нужно зарегистрировать его в хранилище. Настройте свой сервер Vault, чтобы иметь действительную конфигурацию plugins_directory .
Примечание. Возможно, вы захотите установить api_addr на свой адрес прослушивания и disable_mlock в true в конфигурации vault , чтобы иметь возможность использовать плагин.
Загрузите последний стабильный релиз со страницы выпуска и поместите его в plugins_directory вашего сервера Vault.
Чтобы использовать плагин с хранилищем, вам нужна сумма SHA256 плагина.
Пример, как зарегистрировать плагин:
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 Примечание. Вы можете использовать флаг -tls-skip-verify если вы используете саморегистрированный сертификат.
$ make $ make setup-env$ make tests$ make e2e$ make teardown-env$ make cleanКодовые взносы очень приветствуются .
git checkout -b AmazingFeature )git push origin AmazingFeature )main ветвь.