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

HTTP API плагина базы данных InfluxDB

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

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

1. Настроить соединение

В дополнение к параметрам, определенным в Движке секретов баз данных, этот плагин имеет несколько параметров для дальнейшей настройки соединения.

Метод Путь

POST

/database/config/:name

1.1. Параметры

  • host (string: <обязательный>) - указывает хост InfluxDB, к которому нужно подключиться.

  • port (int: 8086) - указывает порт по умолчанию, который будет использоваться, если не указан в URI хоста. По умолчанию используется порт передачи InfluxDB по умолчанию - 8086.

  • username (string: <обязательный>) - указывает имя пользователя для доступа с правами суперпользователя.

  • password (string: <обязательный>) - указывает пароль, соответствующий данному имени пользователя.

  • tls (bool: true) - указывает, следует ли использовать TLS при подключении к InfluxDB.

  • insecure_tls (bool: false) - указывает, следует ли пропустить проверку сертификата сервера при использовании TLS.

  • pem_bundle (string: "") - указывает объединенные PEM блоки, содержащие сертификат и закрытый ключ; сертификат, закрытый ключ и сертификат выдачи ЦА или только сертификат ЦА.

  • pem_json (string: "") - указывает JSON, содержащий сертификат и закрытый ключ; сертификат, закрытый ключ и сертификат выдачи ЦА или только сертификат ЦА. Для удобства формат такой же, как и вывод команды issue из движка секретов PKI. Читайте документацию PKI.

  • connect_timeout (string: "5s") - указывает тайм-аут подключения.

  • username_template (string) - шаблон, описывающий, как генерируются динамические имена пользователей.

TLS работает следующим образом:

  • Если tls установлен в true, соединение будет использовать TLS; это происходит автоматически, если установлены pem_bundle, pem_json или insecure_tls.

  • Если insecure_tls установлен в true, соединение не будет выполнять проверку сертификата сервера; это также устанавливает tls в true.

  • Если только issuing_ca установлен в pem_json, или единственный сертификат в pem_bundle является сертификатом ЦА, предоставленный сертификат ЦА будет использоваться для проверки сертификата сервера; в противном случае будут использоваться системные сертификаты ЦА.

  • Если certificate и private_key установлены в pem_bundle или pem_json, клиентская аутентификация будет включена для соединения.

pem_bundle должен состоять из соединенного PEM блока закрытого ключа + клиентского сертификата, сертификата ЦА или обоих. pem_json должен содержать ту же информацию; для удобства формат JSON такой же, как и вывод команды issue из движка секретов PKI.

Пример тела запроса:
{
  "plugin_name": "influxdb-database-plugin",
  "allowed_roles": "readonly",
  "host": "influxdb1.local",
  "username": "user",
  "password": "pass"
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/influxdb/config/connection

2. Операторы

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

2.1. Параметры

Следующие операторы используются этим плагином. Если они не упоминаются в этом списке, плагин не поддерживает этот тип оператора.

  • creation_statements (list: []) - указывает SQL операторы базы данных, выполняемые для создания и настройки пользователя. Должен быть строкой, разделенной точкой с запятой, строкой, закодированной в base64, строковым массивом JSON с сериализацией, или строкой JSON с сериализацией, закодированной в base64. Значения {{username}} и {{password}} будут подставлены. Если не указано, по умолчанию используется обычная программа создания пользователя, которая создает не суперпользователя.

  • revocation_statements (list: []) - указывает SQL операторы базы данных, которые будут выполняться для отзыва пользователя. Должен быть строкой, разделенной точкой с запятой, строкой, закодированной в base64, строковым массивом JSON с сериализацией, или строкой JSON с сериализацией, закодированной в base64. Значение {{username}} будет подставлено. Если не указано, по умолчанию используется обычный оператор удаления пользователя.

  • rollback_statements (list: []) - указывает SQL операторы базы данных, которые будут выполнены для отката операции создания в случае ошибки. Должен быть строкой, разделенной точкой с запятой, строкой, закодированной в base64, строковым массивом JSON с сериализацией или строкой JSON с сериализацией, закодированной в base64. Значение {{username}} будет подставлено. Если не указано, по умолчанию используется обычный оператор удаления пользователя.