Настройка интеграции со смежными сервисами#
Настройка интеграции со смежными сервисами происходит путем конфигурации параметров для конкретного внешнего сервиса в определенных ConfigMaps. Каждый смежный сервис имеет свой набор параметров:
настройка интеграции с компонентом Аудит продукта Platform V Audit SE;
настройка интеграции с сервисом аутентификации и авторизации (СПАС);
настройка интеграции с компонентом Объединенный мониторинг Unimon продукта Platform V Monitor;
настройка интеграции с компонентом Журналирование продукта Platform V Monitor;
настройка интеграции с компонентом One-Time Password (OTP) / OTT;
настройка интеграции с компонентом IAM Proxy продукта Platform V IAM SE;
Настройка интеграции с компонентом Аудит продукта Platform V Audit SE#
Для настройки интеграции сервиса Batch UI с компонентом Аудит продукта Platform V Audit SE (далее — Аудит):
в
batch-ui.all.confсконфигурируйте параметр:
# Включение интеграции с сервисом Аудит: true/false
UI_BACKEND_AUDIT_ENABLED=true
в
batch-ui.istio.all.confсконфигурируйте следующие параметры:
# Настройки (HOST, PORT, PROTOCOL, MODE) внешних сервисов для ServiceEntry Egress
UI_SE_AUDIT_HOST=<Обязательно к заполнению>
# В _PORT указывается нужный endpoint port. Пример: 443
UI_SE_AUDIT_PORT=<Обязательно к заполнению>
# Используемый протокол: https/http
UI_SE_AUDIT_PROTOCOL=<Обязательно к заполнению>
# MUTUAL/DISABLE в зависимости от протокола
# Примечание: Для сервисов, обращение к которым выполняется через протокол HTTPS, вызов от сервиса до Egress выполняется по протоколу HTTP, а от Egress до интегрируемого сервиса проксируется через HTTPS
UI_SE_AUDIT_TLS_MODE=<Обязательно к заполнению>
# Тайм-аут запроса с сервису Аудит через Istio. Пример: 5s
UI_SE_AUDIT_TIMEOUT=<Обязательно к заполнению>
# Настройки политики переповторов вызовов сервиса Аудит
# Количество повторных попыток
UI_SE_AUDIT_RETRIES_ATTEMPTS=2
# Тайм-аут на каждую попытку. Попытка считается неуспешной, если время ожидания ответа превышает тайм-аут
UI_SE_AUDIT_PER_TRY_TIMEOUT=3s
# Условия, при которых выполняется переповтор запроса (в формате перечисления)
UI_SE_AUDIT_RETRY_ON=5xx
При необходимости внесения изменений в интеграции Batch UI с внешними сервисами внесите соответствующие правки в batch-ui.istio.all.conf, после чего выполните повторный запуск Jenkins Job Deploy Tools сервиса Batch UI согласно соответствующей инструкции.
Проверку успешности проведения интеграции Batch Scheduler с внешними сервисами выполняйте в консоли сервиса, с которым выполняется интеграция.
Инструкция по включению/отключению работы health-check приведена в Руководстве системного администратора в разделе «Включение/отключение health-check для сервиса Аудит».
Настройка в случае развертывания без компонента Аудит#
Для настройки Batch Scheduler без интеграции компонента Аудит в batch-ui.all.conf сконфигурируйте параметр:
# Включение интеграции с сервисом Аудит: true/false
UI_BACKEND_AUDIT_ENABLED=true
Настройка интеграции с Сервисом аутентификации и авторизации (СПАС)#
Для корректной настройки интеграции сервиса Batch UI с компонентом Сервис аутентификации и авторизации (СПАС) обеспечьте выполнение следующих пререквизитов:
Подключите сервис Batch UI к справочнику ABAC (Attribute — Based Access Control) (подробнее в Руководстве по системному администрированию в разделе «Подключение сервиса к ABAC и загрузка справочника атрибутов»).
Загрузите справочник атрибутов.
Для настройки интеграции сервиса Batch UI с сервисом СПАС:
В файле
batch-ui.all.confсконфигурируйте параметры:
# <!- заполните самостоятельно -> - значения параметров необходимо заполнить самостоятельно перед развертыванием сервиса
## Настройки интеграции с СПАС
# Включение интеграции с СПАС: true - интеграция включена; false - интеграция выключена
UI_BACKEND_ACCESS_ENABLED=true
В файле
batch-ui.istio.all.confсконфигурируйте параметры:
# <!- заполните самостоятельно -> - значения параметров необходимо заполнить самостоятельно перед развертыванием сервиса
# Хосты: порты внешних сервисов для ServiceEntry Egress
UI_SE_SPAS_HOST=<!- заполните самостоятельно ->
UI_SE_SPAS_PORT=<!- заполните самостоятельно ->
## Используемый протокол: tls/http
UI_SE_SPAS_PROTOCOL=<!- заполните самостоятельно: tls/http ->
# MUTUAL/DISABLE в зависимости от протокола: MUTUAL для tls, DISABLE для http
SCHD_SE_SPAS_TLS_MODE=<!- заполните самостоятельно: MUTUAL/DISABLE ->
В файл
batch-ui.confдобавьте заголовок:
# Добавление заголовка iv-user для режима readonly: "proxy_set_header iv-user read-only-user;"
BATCH_UI_IV_USER_HEADER=<!- заполните самостоятельно ->
Загрузите ролевые модели из дистрибутива на оба hosts СПАС и добавьте их в папки с хешами.
Создайте в СПАС тенанты по шаблону для сервиса Batch Scheduler или для сервиса Batch Tasks и определите данные атрибутов пользователя.
При необходимости внесения изменений в интеграции Batch UI с внешними сервисами внесите соответствующие правки в batch-ui.istio.all.conf, после чего выполните повторный запуск Jenkins Job Deploy Tools сервиса Batch UI согласно соответствующей инструкции.
Проверку успешности проведения интеграции Batch UI с внешними сервисами выполняйте в консоли сервиса, с которым выполняется интеграция.
Настройка без интеграции с сервисом СПАС#
Для настройки сервиса Batch UI без интеграции с сервисом СПАС в файле batch-ui.all.conf сконфигурируйте следующие параметры:
## Настройки ui-server для интеграции с сервисом СПАС
# Включение интеграции с сервисом СПАС: true — интеграция включена; false — интеграция выключена
UI_BACKEND_ACCESS_ENABLED=false
Настройка интеграции с компонентом Объединенный мониторинг Unimon продукта Platform V Monitor#
Для настройки интеграции с компонентом Объединенный мониторинг Unimon установите сервис Объединенный мониторинг Unimon в соответствии с Руководством по установке на него.
Настройка интеграции с компонентом Журналирование продукта Platform V Monitor#
Выполнение настроек перед разворачиванием сервиса с новым типом интеграции (отправка трафика с лог-записями напрямую в Kafka logger вместо endpoint logger):
В репозитории с настройками Jenkins Job Deploy Tools в файле
fluent-bit.confпо пути:ansible/files/fluent-bit/<каталог сервиса>/замените весь блок [OUTPUT] со строкиName httpна новый блок:
[OUTPUT]
Name kafka
Match *
timestamp_key timestamp
Brokers <Хосты kafka logger>
Topics <Топик kafka logger>
rdkafka.sticky.partitioning.linger.ms 4000
rdkafka.queue.buffering.max.kbytes 5120
rdkafka.ssl.key.location /app/certs/logger/logger_private-key.pem
rdkafka.ssl.certificate.location /app/certs/logger/logger_cert.pem
rdkafka.ssl.ca.location /app/certs/logger/logger_cacerts.cer
rdkafka.security.protocol SSL
Note
В ConfigMap fluent-bit значение параметра rdkafka.security.protocol PLAINTEXT, так как трафик из sidecar прикладного pod выходит без шифрования (не считая шифрования внутри namespace) через Egress и оборачивается сертификатами на выходе. Подключение к брокерам Kafka происходит по SSL.
Укажите значения параметров hosts и топик Kafka Logger:
# Заполнить значениями <DNS kafka logger с указанием портов>, пример: stend-kafka-01.opsmon.xxx:ххх,stend-kafka-02.opsmon.xxx:ххх,stend-kafka-03.opsmon.xxx:ххх
Brokers <Хосты Kafka Logger>
# Топик Kafka Logger
Topics <Топик Kafka Logger>
В репозитории с настройками параметров сервиса в файле
custom_property.yamlпосле блока хостов Kafka ПЖ добавьте новый блок hosts Kafka Logger. Пример:
# Блок хостов Kafka Logger
logger_kafka_hosts:
- host: stend-kafka-01.opsmon.xxx
ip: xx.xx.xx.xx
egress_port: xxx
out_port: xxx
- host: stend-kafka-02.opsmon.xxx
ip: xx.xx.xx.xx
egress_port: xxx
out_port: xxx
- host: stend-kafka-03.opsmon.xxx
ip: xx.xx.xx.xx
egress_port: xxx
out_port: xx
Добавьте параметр с указанием пути до образа. Пример:
## Путь до образа fluent-bit
fluent_bit_registry_path: <путь до образа>
В репозитории с настройками в файле
batch-ui.all.confпо путиconfig/parametersустановите флаг включения сервиса Журналирование:
# Флаг включения/отключения интеграции с сервисом Журналирование
LOGGER_ENABLED=true
В зависимости от интеграции с сервисом SecMan:
при интеграции с SecMan добавьте сертификаты и ключи в хранилище SecMan (подробнее о сертификатах приведено в разделе «Настройка интеграции с продуктом Secret Management System»);
при отсутствии интеграции с SecMan добавьте пути до сертификатов и ключей в файл
ssl.conf.
Настройка в случае интеграции без компонента Журналирование
Для работы Batch UI без интеграции с компонентом Журналирование в репозитории с настройками в файле batch-ui.all.conf по пути config/parameters установите флаг отключения интеграции:
# Флаг включения/отключения интеграции с сервисом Журналирование
LOGGER_ENABLED=false
Настройка интеграции с компонентом One-Time Password (OTP) / OTT#
Сервис Batch UI может быть развернут как с возможностью интеграции с продуктом OTT, так и без него.
В случае, если сервис Batch будет развертываться с OTT, то должны быть произведены соответствующие настройки OTT в рамках работ по настройке namespace в системе оркестрации контейнерами. Подробнее приведено в разделе «Настройка OTT».
Настройка при интеграции с OTT#
Для настройки интеграции сервиса Batch UI с OTT:
Добавьте настройки host и путь до образа OTT в файл
custom_property.ymlв репозитории сервиса по пути: /conf/inventory/custom_property.yml в блок:
ott_registry_path: <путь до образа OTT>
ott_hosts:
- host: <host сервера OTT>
port: <порт сервера OTT>
inner_port: <внутренний порт для маршрутизации Istio, выбирается самостоятельно>
В зависимости от количества hosts серверов OTT необходимо растиражировать блок. Пример приведен в файле.
В файле
batch-ui.ott-sidecar.all.confсконфигурируйте адрес OTT сервера:
### Адрес OTT-сервера (в целевом варианте — FQDN). При заполнении в файле custom_property.yml нескольких блоков серверов OTT заполнение параметра должно быть в формате: host:inner_port. Пример: host1:inner_port1,host2:inner_port2,host3:inner_port3
OTT_SERVICE_HOSTS=<!- заполните самостоятельно ->
UI_SE_OTT_TLS_MODE=<!- заполните самостоятельно, например: MUTUAL ->
Файлы сертификатов OTT должны быть прописаны в ssl.conf:
# OTT
ssl.ui.ott.client.crt=ansible/files/ssl/ott/batch-ui.crt
ssl.ui.ott.client.key=ansible/files/ssl/ott/batch-ui.key
ssl.ui.ott.ott-service=ansible/files/ssl/ott/ott-service.crt
ssl.ui.ott.trustCa=ansible/files/ssl/ott/trustCa.crt
Проверку успешности проведения интеграции Batch UI с внешними сервисами выполняйте в консоли сервиса, с которым выполняется интеграция.
Настройка в случае развертывания без OTT#
Для настройки сервиса Batch UI с выключенной интеграцией с OTT в batch-ui.ott-sidecar.all.conf сконфигурируйте следующие параметры:
## Конфигурирование параметров для интеграции с сервисом OTT
### Включение интеграции с OTT: true — интеграция включена; false - интеграция выключена
OTT_ENABLED=false
Настройка интеграции с компонентом IAM Proxy продукта Platform V IAM SE#
Для настройки интеграции с компонентом IAM Proxy:
Заведите заявку на администраторов сопровождения для получения сертификата (цепочку сертификатов) для соединения по TLS.
Добавьте полученный сертификат в секрет
ingressgateway-ca-certs/ca-chain.cert.pem.
Пример заявки:
junctionName: "BAT"
junctionPoint: /batch
indexUrl: /
sslCommonName: "<CN сертификата Ingress>"
https: True # default True
transparent: False # only False
serverAddresses: [ "<host:port>" ]
applyJctRequestFilter: "common/rds-set-header-host-to-backend.location.conf,common/rds-ssl-sni-on-batch.server.conf"
Настройка интеграции с компонентом IAM Proxy#
Для интеграции с компонентом IAM Proxy в файл batch-ui.istio.all.conf добавьте параметры:
## Значения для клиентского сертификата СУДИР (CN, Hash, path в URI ответвления СУДИР). Примеры значений: CN=00CA0003CSUDIR_IFT, Hash=9d05c659a4345ffe0ac3b117bcfbe936d66b60cb3eaa5adcc06ce196187ce8b4, path=/batch-scheduler/
CN_CERT_SUDIR=CN=<Обязательно к заполнению>
HASH_CERT_SUDIR=<Обязательно к заполнению>
CERT_PERMISSIONS_PATH_SUDIR=<Обязательно к заполнению>
Настройка интеграции с продуктом Secret Management System#
Принцип работы обновления секретов#
Период настройки задается на каждый секрет в vault-agent по формуле:
Math.max(minRenewal.getSeconds(),
lease.getLeaseDuration().getSeconds() - expiryThreshold.getSeconds())
где:
expiryThreshold(порог истечения срока действия), значение по умолчанию — 1 мин;LeaseDuration— значение из vault-agent для секрета, значение по умолчанию: для vault-engine-kv — 200 ч; для TTL — 10 с (10s);minRenewal— минимальное время опроса клиента, значение по умолчанию — 10 с.
Для установки времени опроса хранилища SecMan на наличие изменений в каждом хранилище SecMan добавьте пару "key-value". Например, для установки жизни токена равным 1 мин, введите: ttl=1m.
Настройка интеграции#
Для интеграции с Secret Management System (далее — SecMan):
В хранилище секретов перенесите все секреты из системы оркестрации контейнерами.
Наименование секрета в системе оркестрации контейнерами |
Наименование секрета в SecMan |
Содержимое |
|---|---|---|
istio-ingressgateway-ca-certs |
ingressgateway-ca-certs |
ca-chain.cert.pem |
istio-ingressgateway-certs |
ingressgateway-certs |
tls.crt, |
istio-egressgateway-ca-certs |
egressgateway-ca-certs |
ca-chain.cert.pem |
istio-egressgateway-certs |
egressgateway-certs |
tls.crt, |
batch-ui-ott-certs |
ott-certs |
batch-ui.crt, |
batch-ui-logger-certs |
logging-certs |
logger_cacerts.cer, logger_cert.pem, logger_private-key.pem |
Создайте роль для доступа (роль
vaultпо наименованию проекта системы оркестрации контейнерами) и предоставьте права на хранилище для доступа к секретам.Настройте параметры для управления подключением в файле
batch-ui.secman.all.conf.
Параметр SECMAN_ENABLED позволяет управлять включением/выключением интеграции с SecMan. При задании параметра в false — все относящиеся к SecMan аннотации, лейблы и т.д. не будут включены в манифесты. При значении SECMAN_ENABLED=false секреты будут включены в установку, монтироваться секреты будут средствами системы оркестрации контейнерами.
Использование SecMan в конфигурации KV-engine#
Предусловия:
в файле
batch-ui.secman.all.confзаполнен блок с уровнем доступа;в файле
batch-ui.secman.all.confвведено значение параметраSECMAN_URL.
Для использования SecMan в конфигурации KV-engine в файле batch-ui.secman.all.conf установите значение переменных:
SECMAN_KV_CERTS_ISTIO=true;SECMAN_PKI_CERTS=false;SECMAN_KV_APP=true.
Настройка приоритизации источников секретов#
Для организации поведения "fail-safe" существуют два источника получения секретов: kind: Secret и SecMan.
Для настройки приоритизации в файле batch-ui.secman.all.conf укажите приоритет, где 0 — максимальный приоритет.
# Флаг включения завершения запуска сервиса, если выявлены ошибки при запуске: true/false
SECMAN_FAIL_FAST=false
# Приоритет получения секретов из kind: Secret (0/1)
SECMAN_SPRING_PRIORITY=1
# Приоритет получения секретов из Vault (0/1)
SECMAN_VAULT_PRIORITY=0
Принудительное применение секретов сервиса Batch UI#
Для принудительного применения секретов в терминале любого pod, например, batch-ui-backend, выполните команду:
curl -X POST localhost:8080/actuator/secrets-refresh