Настройки безопасности для установки#

Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе, выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности, предъявляемых к ней.

Настройки безопасности задаются в файле vars.yml перед запуском установки и находятся в разделах:

  1. Настройки 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 пароля
  1. Настройки подключения системы мониторинга к 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 # Пароль добавляемого пользователя
  1. Настройка аудита:

  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 # Проверка имени сервера в его сертификате
  1. Настройки 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
  1. Настройки HashiCorp Vault:

  vault_configs: # Настройки подключения к Vault
      security.ssl.vault.enabled: "true" # Включение использования vault
      security.ssl.vault.properties.file: conf/vault.properties # Путь до файла с настройками
  1. Настройки шифрования:

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 выбираются клиентом при разработке конечной интеграции, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности, предъявляемых к ней.