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

Для SMBX могут быть настроены интеграции с рекомендованным АО «СберТех» продуктами Platform V Audit SE, Platform V Synapse Event-domain management (компонент EDMN: Synapse Event Monitoring system (Mayak)), Platform V Monitor (компонент LOGA), а также может быть настроена интеграция с HashiCorp Vault.

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

Настройка интеграции со смежными сервисами происходит в процессе конфигурации параметров в vars.yml при установке (подробно описано в разделе Настройка inventory).

  1. Настройка интеграции с компонентом Аудит продукта Platform V Audit SE производится в файле vars.yml, блок настроек:

artemis:
  audit_configs:
    audit.service.class: ru.sbt.ss.artemis.audit.service.ArtemisLogAuditService # ArtemisLogAuditService или ArtemisHttpAuditService
    audit.service.url: http://url:8080
    audit.service.secret: path/to/encrypt.pass
    audit.service.verify.hostname: "false"
    audit_service_module_id: Artemis_id
    audit_service_module_version: 1.3
    audit.service.metamodel: path/to/audit-metamodel.yml
    audit.service.send.metamodel: "true"
    audit.service.pretty.print: "false"
    audit.service.ignore.errors: "true"
    audit.service.request.timeout.ms: 15000

#    audit.service.ssl.enabled: "false"
#    audit.service.ssl.keystore: /path/to/jks
#    audit.service.ssl.keystore.password: pass
#    audit.service.ssl.key.password: pass
#    audit.service.ssl.truststore: /path/to/jks
#    audit.service.ssl.truststore.password: pass
#    audit.service.ssl.protocol: TLSv1.2
#
#    audit.service.redelivery.enabled: "true"
#    audit.service.redelivery.interval.ms: 30000
#    audit.service.redelivery.initial.delay.ms: 10000
#    audit.service.redelivery.buffers: file-buffer, memory
#    audit.service.redelivery.file-buffer.type: file
#    audit.service.redelivery.file-buffer.file.name: /logs/audit-buffer.log
#    audit.service.redelivery.file-buffer.max.size: 100m
#    audit.service.redelivery.memory.type: queue
#    audit.service.redelivery.memory.max.size: 100m
#
#    audit.service.dead.letter.redelivery.buffers: file-buffer-deadletter
#    audit.service.dead.letter.redelivery.file-buffer-deadletter.type: file
#    audit.service.dead.letter.redelivery.file-buffer-deadletter.file.name: /logs/audit-deadletter.log
#    audit.service.dead.letter.redelivery.file-buffer-deadletter.max.size: 100m

Подключение производится по url, указанном в параметре audit.service.url, с помощью mTLS 1.2+. Параметры подключения к системе аудита по сертификатам заданы в блоке:

    audit.service.ssl.enabled: "false"
    audit.service.ssl.keystore: /path/to/jks
    audit.service.ssl.keystore.password: pass
    audit.service.ssl.key.password: pass
    audit.service.ssl.truststore: /path/to/jks
    audit.service.ssl.truststore.password: pass
    audit.service.ssl.protocol: TLSv1.2
  1. Настройка интеграции с централизованной системой журналирования — компонентом LOGA продукта Platform V Monitor:

artemis:
    logback_kafka_appender:
        enable: false # включение механизма отправки логов в топик Apache Kafka через logback
        topic: artemis_kafka # топик для системных логов
        never_block: false # блокировка работы приложения при недоступности Kafka (по умолчанию - блокируется, при true недоставленные сообщения в Apache Kafka отбрасываются)
        topic_tracing: artemis_kafka_tracing # топик для трейсинг логов
        never_block_tracing: false # блокировка работы приложения при недоступности Kafka (по умолчанию - блокируется, при true недоставленные сообщения в Apache Kafka отбрасываются)
        only_message_in_tracing: true # отправка в топик для трейсинга логов только тела сообщения в json формате
        producer_configs: # настройка Kafka продюсера
        bootstrap.servers: 1.1.1.1:9093,2.2.2.2:9093
        security.protocol: PLAINTEXT
        #ssl.keystore.location: ssl/artemis.jks
        #ssl.keystore.password: _PLACEHOLDER_
        #ssl.key.password: _PLACEHOLDER_
        #ssl.truststore.location: ssl/artemis.jks
        #ssl.truststore.password: _PLACEHOLDER_
        #ssl.endpoint.identification.algorithm: ""
  1. Настройка интеграции с cистемой мониторинга — компонентом EDMN продукта Platform V Event Domain Management производится на стороне EDMN. Подключение осуществляется по параметрам, заданным для JMX:

artemis:
  jmx_port: 1099 # порт для сбора метрик
  jmx_user: myuser # пользователь для метрик
  jmx_password: mypassword # пароль для метрик
  1. Для SMBX может быть реализована интеграция с системой хранения и выпуска секретов HashiCorp Vault. HashiCorp Vault для SMBX может использоваться для:

  • хранения пароля кластера (параметр secret.artemis.cluster.password в блоке vault_configs);

  • хранения ключей шифрования передаваемых данных, используемых в плагине EncryptionMessagePlugin (параметры secret в блоке encryption_plugin.secrets);

  • выпуска или получения сертификатов для клиентских взаимодействий (остальные параметры в блоке настроек vault_configs);

  • хранения или получения сертификатов для подключения к системе аудита (блок настроек vault_audit_configs).

Настройка интеграции с HashiCorp Vault осуществляется в файле vars.yml в блоках настроек:

encryption_plugin:
    enable: true # активация плагина шифрования сообщений на брокере
...
    secrets: # ключи для шифрования/дешифрования сообщения
      - secret: ./etc/encrypt.pass # путь до ключа для шифрования/дешифрования сообщения
        alias: file_secret # алиас ключа для указания в activeSecret
#      - secret: "vault:/my/store/path:secret_key" # путь до ключа в Vault для шифрования/дешифрования сообщения
#        alias: vault_secret # алиас ключа для указания в activeSecret
...
  vault_audit_configs: # использование Vault для аудита
    ssl.keystore.location: ssl/audit-vault-keystore.jks # Расположение хранилища сертификатов, полученных из HashiCorp Vault
    ssl.keystore.mode: 600 # Права доступа к файлу хранилища сертификатов в POSIX формате, "644" или "w-r--r--"
    ssl.truststore.location: ssl/audit-vault-truststore.jks # Расположение хранилища доверенных сертификатов, полученных из HashiCorp Vault
    ssl.truststore.mode: 600 # Права доступа к файлу хранилища доверенных сертификатов в POSIX формате, "644" или "w-r--r--"
    ssl.vault.address: "https://my.vault:8200/" # Адрес подключения к HashiCorp Vault, обязательный параметр
    ssl.vault.tls.enable: "true" #  Включение протокола TLS при подключении к HashiCorp Vault
    ssl.vault.tls.keystore.location: ssl/vault-client.jks # Расположение хранилища сертификатов для подключения к HashiCorp Vault
    ssl.vault.tls.keystore.password: pass # Пароль от хранилища сертификатов для подключения к HashiCorp Vault
    ssl.vault.tls.key.password: pass # Пароль от сертификата для подключения к HashiCorp Vault
    ssl.vault.tls.truststore.location: ssl/vault-client.jks # Расположение хранилища доверенных сертификатов для подключения к HashiCorp Vault
    ssl.vault.tls.truststore.password: pass # Пароль от хранилища доверенных сертификатов для подключения к HashiCorp Vault
    ssl.vault.auth.type: APPROLE # Тип алгоритма аутентификации в HashiCorp Vault: approle, token, userpass, certificate
    ssl.vault.auth.role.id: 4d980038-***-27d8d0ac2c8d # Идентификатор роли приложения при ssl.vault.auth.type=approle
    ssl.vault.auth.secret.id: 1c7526d2-***-5e97eafbcf1d # Секрет роли приложения при ssl.vault.auth.type=approle
    ssl.vault.pki.role.name: test1 # Имя роли в движке выпуска сертификатов в HashiCorp Vault, обязательный параметр
    ssl.vault.pki.common.name: ArtemisAudit # Значение поля CN в выпускаемом сертификате
    ssl.vault.secret.path: kv1/certstore # Путь до Key-Value хранилища с паролями для хранилищ сертификатов
    ssl.vault.secret.key: key # Имя поля с паролем от ключа
    ssl.vault.secret.keystore: keystore # Имя поля с паролем от хранилища сертификатов ssl.keystore.location
    ssl.vault.secret.truststore: truststore # Имя поля с паролем от хранилища сертификатов ssl.truststore.location
    ssl.vault.engine.version: 1 # Версия Key-Value хранилища секретов
...
  vault_configs: # использование Vault для брокера SMBX
    ssl.keystore.location: path/to/artemis-vault-keystore.jks # Расположение хранилища сертификатов, полученных из HashiCorp Vault
    ssl.keystore.mode: 600 # Права доступа к файлу хранилища сертификатов в POSIX формате, "644" или "w-r--r--"
    ssl.truststore.location: path/to/artemis-vault-truststore.jks # Расположение хранилища доверенных сертификатов, полученных из HashiCorp Vault
    ssl.truststore.mode: 600 # Права доступа к файлу хранилища доверенных сертификатов в POSIX формате, "644" или "w-r--r--"
    ssl.vault.address: "https://my.vault:8200/" # Адрес подключения к HashiCorp Vault, обязательный параметр
    ssl.vault.tls.enable: "true" #  Включение протокола TLS при подключении к HashiCorp Vault
    ssl.vault.tls.keystore.location: path/to/vault-client.jks # Расположение хранилища сертификатов для подключения к HashiCorp Vault
    ssl.vault.tls.keystore.password: pass # Пароль от хранилища сертификатов для подключения к HashiCorp Vault
    ssl.vault.tls.key.password: pass # Пароль от сертификата для подключения к HashiCorp Vault
    ssl.vault.tls.truststore.location: path/to/vault-client.jks # Расположение хранилища доверенных сертификатов для подключения к HashiCorp Vault
    ssl.vault.tls.truststore.password: pass # Пароль от хранилища доверенных сертификатов для подключения к HashiCorp Vault
    ssl.vault.auth.type: APPROLE # Тип алгоритма аутентификации в HashiCorp Vault: approle, token, userpass, certificate
    ssl.vault.auth.role.id: 4d980038-***-27d8d0ac2c8d # Идентификатор роли приложения при ssl.vault.auth.type=approle
    ssl.vault.auth.secret.id: 1c7526d2-***-5e97eafbcf1d # Секрет роли приложения при ssl.vault.auth.type=approle
    ssl.vault.pki.role.name: Role_name # Имя роли для выпуска сертификатов в HashiCorp Vault, обязательный параметр
    ssl.vault.pki.common.name: CN_Artemis # Значение поля CN в выпускаемом сертификате
    ssl.vault.secret.path: path/to/certstore # Путь до Key-Value хранилища с паролями для хранилищ сертификатов
    ssl.vault.secret.key: key # Имя поля с паролем от ключа
    ssl.vault.secret.keystore: keystore # Имя поля с паролем от хранилища сертификатов ssl.keystore.location
    ssl.vault.secret.truststore: truststore # Имя поля с паролем от хранилища сертификатов ssl.truststore.location
    ssl.vault.engine.version: 1 # Версия Key-Value хранилища секретов
    secret.artemis.cluster.password: vault:kv1/certstore:clusterPass # Путь до пароля кластера

Также возможно реализовать получение значений параметров ansible из HashiCorp Vault. Для этого при указании параметров в файле vars.yml вместо значений параметров используется специальный синтаксис. Например:

ansible_password: "{{ lookup('hashi_vault', 'url=*** namespace=*** auth_method=approle role_id=*** secret_id=*** secret=*** validate_certs=0') }}"

, где:

  • url – URL для подключения к HashiCorp Vault. Например: https://my.vault.address;

  • namespace – используемый namespace;

  • auth_method – метод аутентификации. Например: approle;

  • role_id – используемый role.id;

  • secret_id – используемый secret.id;

  • secret – путь: ключ для получаемого секрета. Например: kv1/company/secret_keys:jks_password;

  • validate_certs – проверка доверия сертификата HashiCorp Vault.

Параметры подключения и аутентификации запрашиваются предварительно у администраторов HashiCorp Vault.

В результате значение переменной ansible_password будет получено из HashiCorp Vault при запуске установки.