Конфигурация Secman#

Представленный конфигурационный файл sec-config.yaml содержит все ключевые параметры для корректной работы интеграции с сервисом Secman, а также настройки аудита.

Пример структуры файла#

secman:
  instances:
    secman_id1:
      url: "{URL}"
      namespace: "{NAMESPACE}"
      approle_path: "{APPROLE_PATH}"
      kv_path: "{KV_PATH}"
      pki_path: "{PKI_PATH}"
      pki_server_role: "{SERVER_ROLE}"
      pki_client_role: "{CLIENT_ROLE}"
      client_common_name: "{COMMON_NAME}"
      alt_names: "{ALT_NAMES}"
    secman_id2:
      url: "{URL}"
      namespace: "{NAMESPACE}"
      approle_path: "{APPROLE_PATH}"
      kv_path: "{KV_PATH}"
      pki_path: "{PKI_PATH}"
      pki_server_role: "{SERVER_ROLE}"
      pki_client_role: "{CLIENT_ROLE}"
      client_common_name: "{COMMON_NAME}"

  decryptor:
    private_key_path: "{PRIVATE_KEY_PATH}"
    encrypted_secman_path: "{ENCRYPTED_PATH}"

  use_tls_from_secman_instance: "secman_id1"

api_key: "{API_KEY_TEMPLATE}"

audit:
  is_enabled: true
  log_dml: false
  application: "VectorDB"
  system_id: "{SYSTEM_ID}"
  log_file_path: "/home/<username>/audit.log"
  log_file_permissions: 0o644
  buffer_size_bytes: 16

auth:
  protect_healthcheck: true
  enable_rbac: true
  subject_regex: "CN=([^,]+)"
  auth_flow: ["bootstrap"]
  bootstrap:
    principals:
      - principal_name: "bob"
        roles: ["dcl_admin"]
        password_hash: "{PASSWORD_HASH}"
    roles:
      dcl_admin:
        - read_role
        - write_role
        - read_principal
        - write_principal
        - cluster_manage
        - cluster_info
        - collection_info

ldap:
  url: "ldaps://example.sbt:636"
  base_dn: "ou=users,dc=example,dc=org"
  user_dn: "uid={},ou=users,dc=example,dc=org"
  search_filter: "(&(objectClass=inetOrgPerson)(sAMAccountName={}))"
  attribute: "sAMAccountName"
  ca_path: ./downloaded_certs/ca_chain.pem
  tls_skip_verify: true
  pool_max_capacity: 8
  backoff_max_elapsed_time: 25s
  backoff_max_interval: 10s

token:
  expiration: 4h

ephemeral_api_key:
  enabled: false
  rotation_interval: 5m

audit:
  enabled: true
  log_dml: false
  application: "VectorDB"
  system_id: "system_id"
  log_file_path: "/home/<username>/audit.log"
  log_file_permissions: 0o644
  buffer_size_bytes: 16

Секция secman#

Подсекция instances#

Определяет конфигурации для одного или нескольких экземпляров Secman.

Параметр

Тип

Описание

url

Строка

Адрес сервера Secman (например, https://secman.example.com)

namespace

Строка

Пространство имен в Secman для изоляции данных

approle_path

Строка

Путь к approle для аутентификации

kv_path

Строка

Путь к хранилищу ключ-значение (Key-Value Store) для секретов

pki_path

Строка

Путь к PKI (Public Key Infrastructure) для управления сертификатами

pki_server_role

Строка

Роль для генерации сертификатов сервера

pki_client_role

Строка

Роль для генерации клиентских сертификатов

client_common_name

Строка

Общее имя (Common Name, CN) для клиентских сертификатов

alt_names

Строка

Альтернативные имена (SANs) для клиентских сертификатов

Подсекция decryptor#

Настройки для расшифровки данных, зашифрованных Secman.

Параметр

Тип

Описание

private_key_path

Строка

Путь к приватному ключу для расшифровки данных

encrypted_secman_path

Строка

Путь к зашифрованному файлу с данными Secman, в котором хранятся пары role_id и secret_id по id instance Secman

Параметр use_tls_from_secman_instance#

Указывает, какой экземпляр Secman использовать для получения TLS-конфигурации.

Параметр

Тип

Описание

use_tls_from_secman_instance

Строка

Имя экземпляра Secman из instances (например, secman_id1)

Секция api_key#

Определяет способ получения API-ключа из Secman.

Параметр

Тип

Описание

api_key

Строка

Шаблон для динамического получения API-ключа (например, ${vault:secman_id1:kv:api_key.key})

Секция auth#

Настройки авторизации и ролевой модели (RBAC).

Параметр

Тип

Описание

protect_healthcheck

Логический

Настройка авторизации по сертификатам. Доступны только /metrics и /health, остальное требует JWT токена

enable_rbac

Логический

Включение/выключение Role-Based Access Control (Ролевой модели доступа)

subject_regex

Строка

Регулярное выражение для извлечения имени из поля Subject сертификата

auth_flow

Список строк

Перечисление шагов аутентификации

bootstrap

Структура

Настройки для первоначальной настройки ролевой модели

principals

Список строк

Список имен пользователей

roles

Список строк

Список ролей, связанных с пользователями

password_hash

Строка

Хешированный пароль для аутентификации

Секция ldap#

Настройки интеграции с LDAP.

Параметр

Тип

Описание

url

Строка

Адрес LDAP сервера

base_dn

Строка

Базовая точка поиска в LDAP-дереве

user_dn

Строка

Шаблон для построения DN (Distinguished Name) пользователя

search_filter

Строка

Фильтр поиска для нахождения пользователя

attribute

Строка

Атрибут для поиска

ca_path

Строка

Путь к файлу с цепочкой сертификатов CA (также ищет сертификаты, скачанные с Secman, и системные сертификаты)

tls_skip_verify

Логический

Пропускать проверку SSL-сертификата(значение по умолчанию: false)

pool_max_capacity

Целое число

Максимальное количество соединений в пуле

backoff_max_elapsed_time

Строка

Максимальное время ожидания при повторных попытках (значение по умолчанию: 15s)

backoff_max_interval

Строка

Максимальный интервал между повторными попытками (значение по умолчанию: 5s)

Секция token#

Настройка времени жизни JWT-токена (значение по умолчанию: 1h).

Параметр

Тип

Описание

expiration

Строка

Время жизни токена

Секция ephemeral_api_key#

Параметр

Тип

Описание

enabled

Логический

Активация механизма ротации ключчей

rotation_interval

Строка

Интервал обновления ключа

torage_path

Строка

Путь к каталогу на файловой системе, используемый для долговременного хранения зашифрованного значения API-ключа

Секция audit#

Настройка конфигурации аудита.

Параметр

Тип

Описание

enabled

Логический

Включение/выключение аудита

log_dml

Логический

Включение/выключения логирования DML событий

application

Строка

Переменная для подстановки в «dtz hostname application message»

system_id

Строка

Переменная для подстановки в поле system_id аудит события

log_file_path

Строка

Имя и путь к файлу лога аудита

log_file_permissions

Целое число (восьмеричное число с обозначенным префиксом 0o)

Права на файл лога аудита

buffer_size_bytes

Целое число (десятичное)

Размер audit buffer queue