Appearance
Инструкция по установке расширения Security с использованием Docker Compose
Инструкция рассчитана на NextBox, установленный по основной инструкции Docker Compose. Добавьте в существующую конфигурацию три сервиса:
- security
- infowatch
- kesl
Общие POSTGRES_PASSWORD, SERVICE_TOKEN и JWT_SIGN_KEY берутся из файла .env основной установки. Добавьте в этот же файл параметры, выданные системами InfoWatch и KESL:
text
INFOWATCH_PUSH_API_ADDRESS=http://192.0.2.10:9101
INFOWATCH_EXPORT_API_ADDRESS=https://infowatch.example.com
INFOWATCH_TOKEN=replace-with-issued-token
INFOWATCH_COMPANY=replace-with-company
KESL_SCAN_URL=http://192.0.2.20/scansINFOWATCH_TOKEN нельзя сгенерировать локально: его выпускают в интерфейсе InfoWatch. Замените все демонстрационные значения перед запуском.
Создайте файл security_config.yaml для настройки интеграционных сервисов:
yaml
security:
integrations:
service:
- name: dlp
method: POST
callback: http://infowatch:8080/events/upload
- name: kesl
method: POST
callback: http://kesl:8080/events/checkВ файл docker-compose.yaml добавить volume для хранения файлов в карантине:
yaml
volumes:
security_data:Добавьте описания сервисов security, infowatch и kesl внутрь существующей секции services::
yaml
security:
image: nextbox-docker.ptnl.moscow/nextbox/security:oak-1.11.0
restart: always
depends_on:
- postgresql
- rabbitmq
networks:
- nextbox
volumes:
- ./security_config.yaml:/etc/nextbox/config.yml
- security_data:/repo
environment:
- POTENTIAL_SECURITY_HTTP_PORT=8080
- POTENTIAL_SECURITY_SERVICE_BACK_URL=http://security:8080
- POTENTIAL_SECURITY_DATABASE_DSN=postgres://nextbox:${POSTGRES_PASSWORD}@postgresql:5432/security
- POTENTIAL_SECURITY_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_SECURITY_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_SECURITY_RABBIT_MQ_USER=guest
- POTENTIAL_SECURITY_RABBIT_MQ_PASSWORD=guest
- POTENTIAL_SECURITY_RABBIT_MQ_VHOST=
- POTENTIAL_SECURITY_RABBIT_MQ_NUM_WORKERS=10
- POTENTIAL_SECURITY_SERVICE_TOKEN=${SERVICE_TOKEN}
- POTENTIAL_SECURITY_TOKENS_SIGN_KEY=${JWT_SIGN_KEY}
- POTENTIAL_SECURITY_SYSTEM_PATH=/repo
healthcheck:
test:
- CMD-SHELL
- >-
wget -q -O /dev/null
--header="Authorization: Service $$POTENTIAL_SECURITY_SERVICE_TOKEN"
http://127.0.0.1:8080/api/health-check
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
infowatch:
image: nextbox-docker.ptnl.moscow/nextbox/infowatch:oak-1.11.0
restart: always
networks:
- nextbox
command: >
/usr/bin/infowatch
environment:
- POTENTIAL_INFOWATCH_PUSH_API_ADDRESS=${INFOWATCH_PUSH_API_ADDRESS}
- POTENTIAL_INFOWATCH_EXPORT_API_ADDRESS=${INFOWATCH_EXPORT_API_ADDRESS}
- POTENTIAL_INFOWATCH_TOKEN=${INFOWATCH_TOKEN}
- POTENTIAL_INFOWATCH_COMPANY=${INFOWATCH_COMPANY}
- POTENTIAL_INFOWATCH_HTTP_PORT=8080
- POTENTIAL_INFOWATCH_SECURITY_URL=http://security:8080
kesl:
image: nextbox-docker.ptnl.moscow/nextbox/kesl:oak-1.11.0
restart: always
networks:
- nextbox
command: >
/usr/bin/kesl
environment:
- POTENTIAL_KESL_SCAN_URL=${KESL_SCAN_URL}
- POTENTIAL_KESL_HTTP_PORT=8081
- POTENTIAL_KESL_SECURITY_URL=http://security:8080У security есть HTTP health endpoint, поэтому его готовность проверяется через wget. Адаптеры infowatch и kesl отдельных HTTP health endpoints не предоставляют; не добавляйте для них проверку произвольного URL, иначе контейнеры будут ошибочно помечаться как unhealthy.
Создайте базу, если расширение устанавливается впервые:
bash
docker compose exec postgresql \
psql -U nextbox -d postgres \
-c "CREATE DATABASE security OWNER nextbox;"Если база уже существует, не выполняйте команду повторно. Затем проверьте и запустите конфигурацию:
bash
docker compose config --quiet
docker compose up -d --wait security infowatch kesl