Настройка интеграции#
Для SMBX могут быть настроены интеграции с рекомендованным АО «СберТех» продуктами Platform V Audit SE, Platform V Synapse Event-domain management (компонент EDMN: Synapse Event Monitoring system (Mayak)), Platform V Monitor (компонент LOGA), HashiCorp Vault, а также IAM Proxy.
На усмотрение пользователя может быть настроена интеграция с аналогичным по функциональности продуктом от других производителей.
Настройка интеграции со смежными сервисами происходит в процессе конфигурации параметров в vars.yml при установке (подробно описано в разделе Настройка inventory).
Настройка интеграции с компонентом Аудит продукта 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
Настройка интеграции с централизованной системой журналирования — компонентом 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: { IP_ADDRESS1 }:9093,{ IP_ADDRESS2 }:9093
security.protocol: PLAINTEXT
#ssl.keystore.location: ssl/artemis.jks
#ssl.keystore.password: <password>
#ssl.key.password: <password>
#ssl.truststore.location: ssl/artemis.jks
#ssl.truststore.password: <password>
#ssl.endpoint.identification.algorithm: ""
Настройка интеграции с cистемой мониторинга — компонентом EDMN продукта Platform V Event Domain Management производится на стороне EDMN. Подключение осуществляется по параметрам, заданным для JMX:
artemis:
jmx_port: 1099 # порт для сбора метрик
jmx_user: myuser # пользователь для метрик
jmx_password: mypassword # пароль для метрик
Для 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 при запуске установки.
Настройка интеграции с системой управления доступом IAM Proxy
SMBX поддерживает настройку интеграции с системами управления доступа типа Keycloak. Для ее конфигурации потребуется заполнить блок keycloak в разделе artemis конфигурационного файла vars.yml:
artemis:
keycloak:
enabled: false
configs:
realm: "my_realm" # Пространство с конфигурациями доступа
resource: # Ресурс, к которому предоставляется доступ в формате словаря inventory_hostname: resource. В случае использования k8s/os - указать "cloud" вместо inventory_hostname
"my_hostname_0": "my_resource_name_0"
"my_hostname_1": "my_resource_name_1"
"cloud": "my_cloud_resource_name"
bearer-only: true # Клиент принимает только bearer-токены в заголовках авторизации
auth-server-url: "my_keycloak_instance" # Адрес инстанса keycloak
use-resource-role-mappings: false # Использование маппингов ролей ресурса для доступа к нему (настройки внутри keycloak)
principal-attribute: "preferred_username" # username|email|user ID|custom attribute. Уникальный идентификатор, на основании которого предоставляется доступ к ресурсу
ssl-required: "external" # none|external|all. Использование ssl при интеграции с keycloak
Параметры realm, resource и auth-server-url должны быть предварительно сконфигурированы на стороне IAM системы.