Skip to content

Конфигурация сервисов

Конфигурация сервиса Security

Логгер

КлючОписание
security.log.lvlУровень логгирования приложения
5 - debug
4 - info
3 - warning
2 - error
Пример env: POTENTIAL_SECURITY_LOG_LVL=3
security.log.pathПуть до лога сервиса
Пример env: POTENTIAL_SECURITY_LOG_PATH=/tmp/next_box/security.log
пример части конфигурации в yml конфиге
yaml
security:
  log:
    lvl: 3
    path: /tmp/next_box/security.log

Http сервер

КлючОписание
security.http.hostАдрес http сервера
Пример env: POTENTIAL_SECURITY_HTTP_HOST=0.0.0.0
security.http.portПорт http сервера
Пример env: POTENTIAL_SECURITY_HTTP_PORT=6038
security.http.max_multipart_body_sizeМаксимальный размер тела, при мультипарт запросах POTENTIAL_SECURITY_HTTP_MAX_MULTIPART_BODY_SIZE=0
security.http.read_timeoutМаксимальная продолжительность чтения всего запроса, включая текст. Нулевое или отрицательное значение означает, что тайм-аута не будет. POTENTIAL_SECURITY_HTTP_READ_TIMEOUT=0
security.http.write_timeoutМаксимальное время до истечения времени ожидания записи ответа. Оно сбрасывается всякий раз, когда считывается заголовок нового запроса. Как и ReadTimeout, оно не позволяет обработчикам принимать решения для каждого отдельного запроса. Нулевое или отрицательное значение означает, что тайм-аута не будет.
Пример env: POTENTIAL_SECURITY_HTTP_WRITE_TIMEOUT=0
security.internal_http.mtls_enableВключение шифрование трафика mTLS между сервисами NB.
Пример env: POTENTIAL_SECURITY_INTERNAL_HTTP_MTLS_ENABLE=false
security.internal_http.server_cert_key_pathПриватный ключ сервера для mTLS.
Пример env: POTENTIAL_SECURITY_INTERNAL_HTTP_SERVER_CERT_KEY_PATH=./host.docker.internal.key
security.internal_http.server_cert_pathСертификат сервера для mTLS.
Пример env: POTENTIAL_SECURITY_INTERNAL_HTTP_SERVER_CERT_PATH=./host.docker.internal.crt
security.internal_http.client_cert_key_pathПриватный ключ клиента для mTLS.
Пример env: POTENTIAL_SECURITY_INTERNAL_HTTP_CLIENT_CERT_KEY_PATH=./client.key
security.internal_http.client_cert_pathСертификат сервера для mTLS.
Пример env: POTENTIAL_SECURITY_INTERNAL_HTTP_CLIENT_CERT_PATH=./client.crt
security.internal_http.ca_cert_pathКорневой сертификат для mTLS.
Пример env: POTENTIAL_SECURITY_INTERNAL_HTTP_CA_CERT_PATH=./cert.crt
пример части конфигурации в yml конфиге
yaml
security:
  http:
    host: 0.0.0.0
    max_multipart_body_size: 0
    port: 6038
    read_timeout: 0
    write_timeout: 0
  internal_http:
    ca_cert_path: ./cert.crt
    client_cert_key_path: ./client.key
    client_cert_path: ./client.crt
    mtls_enable: false
    server_cert_key_path: ./host.docker.internal.key
    server_cert_path: ./host.docker.internal.crt

База данных

КлючОписание
security.database.dsnDsn для доступа к базе данных в формате:
postgres://<login>:<password>@<address>:<port>/security"
login - логин базы
password - пароль от базы
address - адрес до базы
port - порт до базы
Пример env: POTENTIAL_SECURITY_DATABASE_DSN=postgres://admin:admin@127.0.0.1:5432/security
пример части конфигурации в yml конфиге
yaml
security:
  database:
    dsn: postgres://admin:admin@127.0.0.1:5432/security

Общие настройки сервиса

КлючОписание
security.service.tokenТокен для межсервисного общения. Такой же токен должен быть у каждого сервиса nextbox.
Пример env: POTENTIAL_SECURITY_SERVICE_TOKEN=qwe123
security.service.nameНазвание сервиса
Пример env: POTENTIAL_SECURITY_SERVICE_NAME=Security
security.service.route_nameНазвание роута сервиса, лучше не менять, иначе возможны проблемы в общении между сервисами!
Пример env: POTENTIAL_SECURITY_SERVICE_ROUTE_NAME=security
security.service.back_urlАдрес по которому обращаются к сервису другие сервисы NB.
Пример env: POTENTIAL_SECURITY_SERVICE_BACK_URL=http://127.0.0.1:6038
security.service.instance_numberНомер сервиса. Используется для горизонтального масштабирования сервисов.
Пример env: POTENTIAL_SECURITY_SERVICE_INSTANCE_NUMBER=1
security.discovery.urlАдрес discovery сервиса в NB. В котором регистрируются все сервисы в NB
Пример env: POTENTIAL_SECURITY_DISCOVERY_URL=http://127.0.0.1:6001
security.settings.pathПуть до файла настроек сервиса.
Пример env: POTENTIAL_SECURITY_SETTINGS_PATH=/var/nextbox/security/settings.json
пример части конфигурации в yml конфиге
yaml
security:
  service:
    back_url: http://127.0.0.1:6038
    instance_number: 1
    name: Security
    route_name: security
    token: qwe123
  discovery:
    url: http://127.0.0.1:6001
  settings:
    path: /var/nextbox/security/settings.json

Безопасность

КлючОписание
security.tokens.sign_keyСекретный ключ для подписи авторизационных JWT токенов.
Пример env: POTENTIAL_SECURITY_TOKENS_SIGN_KEY=qwe123
пример части конфигурации в yml конфиге
yaml
security:
  tokens:
    sign_key: qwe123

Хранилище

КлючОписание
security.file_system.pathПуть до репозитория в котором будут храниться файлы.
Пример env: POTENTIAL_SECURITY_FILE_SYSTEM_PATH=/repo
security.file_system.tmpПуть до временной директории.
Пример env: POTENTIAL_SECURITY_FILE_SYSTEM_TMP=/repo/tmp
пример части конфигурации в yml конфиге
yaml
security:
  file_system:
    path: "/repo"

Настройки rabbitmq

КлючОписание
security.rabbit_mq.userЛогин пользователя в rabbitmq.
Пример env: POTENTIAL_SECURITY_RABBIT_MQ_USER=guest
security.rabbit_mq.passwordПароль пользователя в rabbitmq.
Пример env: POTENTIAL_SECURITY_RABBIT_MQ_PASSWORD=guest
security.rabbit_mq.hostАдрес сервера rabbitmq.
Пример env: POTENTIAL_SECURITY_RABBIT_MQ_HOST=127.0.0.1
security.rabbit_mq.portПорт сервера rabbitmq.
Пример env: POTENTIAL_SECURITY_RABBIT_MQ_PORT=5672
security.rabbit_mq.vhostvhost rabbitmq.
Пример env: POTENTIAL_SECURITY_RABBIT_MQ_VHOST=
security.rabbit_mq.num_workersКоличество потоков параллельной обработки из очереди загруженных файлов
Пример env: POTENTIAL_SECURITY_RABBIT_MQ_NUM_WORKERS=10
пример части конфигурации в yml конфиге
yaml
security:
  rabbit_mq:
    host: 127.0.0.1
    password: guest
    port: "5672"
    user: guest
    vhost: ""
    num_workers: 1

Настройки хранения

КлючОписание
security.security.enabledВключить или выключить проверку файлов. Пример env: POTENTIAL_SECURITY_SECURITY_ENABLED=false
security.security.storage_durationВремя хранения файлов в карантине в часах. Пример env: POTENTIAL_SECURITY_SECURITY_STORAGE_DURATION=720
пример части конфигурации в yml конфиге
yaml
security:
  security:
    enabled: true
    storage_duration: 720

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

КлючОписание
security.service[0].nameНазвание интеграции.
security.service[0].methodТип http запроса, например POST.
security.service[0].callbackEndpoint куда слать запрос для проверки файла.
пример части конфигурации в yml конфиге
yaml
integrations:
    service:
      - name: Kesl
        method: POST
        callback: http://kesl/security/check
      - name: Infowatch
        method: POST
        callback: http://infowatch/security/check

Конфигурация сервиса infowatch

Общие настройки

КлючОписание
infowatch.push_api_addressАдрес (обычно это ip address с портом 9101) развернутого инстанса infowatch. Пример env: POTENTIAL_INFOWATCH_PUSH_API_ADDRESS=http://192.168.1.10:9101
infowatch.export_api_addressАдрес export api(должен быть доменным именем с https). Пример env: POTENTIAL_INFOWATCH_PUSH_API_ADDRESS=https://infowatch.my.domain.ru
infowatch.tokenТокен выписывается в интерфейсе infowatch нужен для валидации запросов. Пример env: POTENTIAL_INFOWATCH_TOKEN=asdkl123laasdopp
infowatch.companyБерется из лицензии, которую предоставляет infowatch. Пример env: POTENTIAL_INFOWATCH_COMPANY=OOO_Your_company
infowatch.http.portHttp порт текущего сервиса. Пример env: POTENTIAL_INFOWATCH_HTTP_PORT=8080
infowatch.security_urlАдрес сервиса security. Пример env: POTENTIAL_INFOWATCH_SECURITY_URL=http://security:8080

Конфигурация сервиса kesl

Общие настройки

КлючОписание
kesl.scan_urlАдрес kesl с endpoint сканирования файлов. Пример env: http://192.168.1.10/scans
kesl.http.portHttp порт текущего сервиса. Пример env: POTENTIAL_KESL_HTTP_PORT=8081
kesl.security_urlАдрес сервиса security. Пример env: POTENTIAL_KESL_SECURITY_URL=http://security:8080