Настройки безопасности для установки#
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе, выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности, предъявляемых к ней.
Настройки безопасности задаются в файле vars.yml перед запуском установки и находятся в разделах:
Настройки ssl-сертификатов и их хранилища для EVTP:
flink:
security:
protocol: SSL # Протокол для internal и REST взаимодействий (PLAINTEXT или SSL)
keystore_path: /path/to/*.jks # Путь до сертификата для работы Flink
keystore_pass: __PLACEHOLDER__ # Пароль keystore
truststore_path: /path/to/*.jks # Путь до truststore
truststore_pass: __PLACEHOLDER__ # Пароль truststore
key_pass: __PLACEHOLDER__ # Secret key для truststore пароля
Настройки подключения системы мониторинга к EVTP:
flink:
jmxPort: 8789-8790 # Порт для JMX (range port)
jmx_security_enable: true # Включение авторизации для JMX
jmx_access_roles: # Пользователи для JMX
- user: myuser # Имя добавляемого пользователя
access: readonly # Уровень доступа для пользователя (readonly, readwrite)
password: mypassword # Пароль добавляемого пользователя
Настройка аудита:
audit_configs: # Конфигурация аудита
audit.service.class: ru.sbt.ss.audit.flink.LoggerAuditService # Логирование событий в системе аудита
#audit.service.class: ru.sbt.ss.audit.flink.FlinkHttpAuditService # Отправка событий в систему аудита
audit.service.metamodel.module: <module_id> # Модуль используемой метамодели
audit.service.metamodel.version: <1.0> # Переопределить версию метамодели
audit.service.send.metamodel: "true" # Отправка метамодели аудита на старте
audit.service.pretty.print: "false" # Форматирование при логировании событий аудита (false-отсутствие форматирование. true-форматирование включено)
audit.service.ignore.errors: "true" # Игнорирование ошибок при отправке событий в систему аудита
audit.service.metamodel.path: ./metamodel.json # Путь до используемой метамодели (задается либо путь, либо модуль и версия)
# audit.service.url.base: http://audit-endpoint.ru # Адрес аудита
# audit.service.url.event.path: /v1/event # Endpoint аудита, на который будут отправляться события
# audit.service.url.metamodel.path: /v1/metamodel # Endpoint аудита, на который будет отправляться метамодель
# audit.service.request.timeout.ms: 15000 # Тайм-аут отправки запроса аудита (включает отправку запроса в буферы повторной доставки)
# audit.service.redelivery.enabled: "true" # Флаг, отвечающий за повторную отправку
# audit.service.redelivery.interval.ms: 60000 # Интервал повторной отправки
# audit.service.redelivery.initial.delay.ms: 60000 # Начальная задержка повторной отправки
# audit.service.redelivery.buffers: kafka-buffer # Список буферов для хранения запросов аудита на повторную доставку
# audit.service.redelivery.kafka-buffer.type: kafka # Тип буфера kafka
# audit.service.redelivery.kafka-buffer.topic: <topic_name> # Используемый topic
# audit.service.redelivery.kafka-buffer.timeout.ms: 10000 # Этот тайм-аут используется для опроса/коммитов и используется для вычисления тайм-аутов продьюсера kafka как: max.block.ms = тайм-аут / 2; delivery.timeout.ms = тайм-аут / 2 + linger.ms; request.timeout.ms = тайм-аут / 4. Все тайм-ауты могут быть установлены явно.
# audit.service.redelivery.kafka-buffer.bootstrap.servers: host1:port1,host2:port2 # Bootstrap подключения к Apache Kafka вида host:port,host2:port2
# audit.service.redelivery.kafka-buffer.group.id: <group_id> # Используемая группа для чтения событий аудита
# audit.service.redelivery.kafka-buffer.security.protocol: PLAINTEXT # Протокол подключения PLAINTEXT или SSL
# audit.service.redelivery.kafka-buffer.retries: 3 # Максимальное количество повторных попыток доставки (-1 для бесконечных попыток) (для параметра audit.reporter.redelivery.stop.on.error должно быть установлено значение false)
# audit.service.redelivery.kafka-buffer.acks: -1 # Механизм подтверждения записи в topic
# audit.service.ssl.enabled: "false" # Включение/выключение ssl
# audit.service.ssl.keystore: /full/path/to/*.jks # Путь до хранилища сертификатов, для отправки событий аудита
# audit.service.ssl.keystore.password: __PLACEHOLDER__ # Пароль от keystore
# audit.service.ssl.key.password: __PLACEHOLDER__ # Пароль для key.password
# audit.service.ssl.truststore: /full/path/to/*.jks # Путь до хранилища доверенных сертификатов
# audit.service.ssl.truststore.password: __PLACEHOLDER__ # Пароль от truststore
# audit.service.ssl.protocol: TLSv1.2 # Версия протокола `TLS`, по умолчанию `TLSv1.2`
# audit.service.verify.hostname: false # Проверка имени сервера в его сертификате
Настройки S3 (при его наличии):
s3: # Дополнительные настройки для s3 conf/flink-conf.yaml
s3.endpoint: "https://example.s3.endpoint:443 from Ansible/roles/flink/defaults/main.yml" # Адрес S3
s3.access-key: "example s3 access key from Ansible/roles/flink/defaults/main.yml" # Access-key для подключения к S3
s3.secret-key: "example s3 secret key from Ansible/roles/flink/defaults/main.yml" # Secret-key для подключения к S3. При получение из Vault - "vault:kv:{имя ключа}"
s3.path.style.access: true # Признак использования имени bucket в пути URL ресурса вместо хоста
s3.ssl.truststore.location: /path/to/*.jks # Хранилище доверенных сертификатов для связи с S3 по TLS. При получении из Vault - vault:ssl.truststore.location
s3.ssl.truststore.password: __PLACEHOLDER__ # Пароль от хранилища доверенных сертификатов. При получении из Vault - vault:ssl.truststore.password
Настройки HashiCorp Vault:
vault_configs: # Настройки подключения к Vault
security.ssl.vault.enabled: "true" # Включение использования vault
security.ssl.vault.properties.file: conf/vault.properties # Путь до файла с настройками
Настройки шифрования:
flink:
encoding_configs: # Конфигурация шифрования паролей
security.encoding.key: ./conf/encrypt.pass # Путь до файла, содержащего ключ шифрования паролей
security.encoding.class: ru.sbt.ss.password.BaseEncryptor # Значение не изменяется. Используемый класс для расшифровки пароля
Пример заполненного файла vars.yml приведен в разделе Пример заполненного файла vars.yml.
В процессе установки все настройки безопасности, заданные первично в файле vars.yml, попадают в конфигурационные файлы flink-conf.yml (настройки общих параметров безопасности, настройки аудита), metamodel.json (файл метамодели аудита), config/encrypt.pass (ключ для шифрования паролей), где могут быть изменены вручную. Для того чтобы новые настройки безопасности применились, необходимо перезапустить EVTP.
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в EVTP выбираются клиентом при разработке конечной интеграции, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности, предъявляемых к ней.