Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Движок секретов базы данных Cassandra

Этот движок может использовать внешние X.509-сертификаты в составе TLS или для проверки подписей. Поддержка проверки подписей сертификатов X.509, использующих SHA-1, считается устаревшей и начиная с StarVault 1.12 больше не работает без специальных обходных решений.

Cassandra является одним из поддерживаемых плагинов для движка секретов баз данных. Этот плагин динамически генерирует учетные данные базы данных на основе заранее настроенных ролей для Cassandra.

Дополнительную информацию о настройке движка секретов баз данных см. в документации по Базам данных.

1. Возможности

Имя плагина

Ротация корневых учетных данных

Динамические роли

Статические роли

Кастомизация имени пользователя

cassandra-database-plugin

Да

Да

Да (с версии 1.6+)

Да (с версии 1.7+)

2. Настройка

  1. Для работы StarVault потребуется Cassandra-пользователь со следующими правами:

    Пример:
    GRANT CREATE ON ALL ROLES TO '<ВАШ ПОЛЬЗОВАТЕЛЬ>';
    GRANT ALTER ON ALL ROLES TO '<ВАШ ПОЛЬЗОВАТЕЛЬ>';
    GRANT DROP ON ALL ROLES TO '<ВАШ ПОЛЬЗОВАТЕЛЬ>';
    GRANT AUTHORIZE ON ALL ROLES TO '<ВАШ ПОЛЬЗОВАТЕЛЬ>';
    GRANT AUTHORIZE ON ALL KEYSPACES TO '<ВАШ ПОЛЬЗОВАТЕЛЬ>';
    GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '<ВАШ ПОЛЬЗОВАТЕЛЬ>';
  2. Включите движок секретов базы данных, если он ещё не включён:

    Пример:
    $ starvault secrets enable database
    Success! Enabled the database secrets engine at: database/

    По умолчанию движок включается под именем database. Чтобы активировать его на другом пути, используйте параметр -path.

  3. Задайте конфигурацию StarVault с нужным плагином и параметрами подключения:

    Пример:
    $ starvault write database/config/my-cassandra-database \
        plugin_name="cassandra-database-plugin" \
        hosts=127.0.0.1 \
        protocol_version=4 \
        username=vaultuser \
        password=vaultpass \
        allowed_roles=my-role
  4. Создайте роль, которая сопоставляет имя в StarVault с SQL-запросом для создания учетных данных базы данных:

    Пример:
    $ starvault write database/roles/my-role \
        db_name=my-cassandra-database \
        creation_statements="CREATE USER '{{username}}' WITH PASSWORD '{{password}}' NOSUPERUSER; \
              GRANT SELECT ON ALL KEYSPACES TO {{username}};" \
        default_ttl="1h" \
        max_ttl="24h"
    Success! Data written to: database/roles/my-role

3. Использование

После настройки движка секретов и получения пользователем или машиной токена StarVault с соответствующими правами можно генерировать учетные данные.

  1. Для этого нужно запросить новые данные через endpoint /creds, указав имя роли:

Пример:
$ starvault read database/creds/my-role

Key                Value
---                -----
lease_id           database/creds/my-role/2f6a614c-4aa2-7b19-24b9-ad944a8d4de6
lease_duration     1h
lease_renewable    true
password           7iO-FxlVCdj8szsgGgsL
username           v_vaultuser_my_role_6zjahr4mjn5c9prgucy1_1602541475

4. API

Полный список доступных опций можно найти на странице HTTP API плагина базы данных Cassandra.

Подробнее о работе HTTP API движка секретов для баз данных см. в Движок секретов базы данных (API).