Конфигурация безопасности¶
Security-подмножество конфигурации с рекомендациями по харденингу. Полный список параметров: Справочник конфигурации.
Секреты, обязательные в production¶
# .env — минимум для production
APP_ENV=production
JWT_SECRET="$(openssl rand -hex 32)"
ENCRYPTION_KEY="$(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")"
DB_PASSWORD="$(openssl rand -hex 16)"
REDIS_PASSWORD="$(openssl rand -hex 16)"
SETUP_TOKEN="$(openssl rand -hex 32)" # закрывает создание первого админа
WEBHOOK_HMAC_SECRET="$(openssl rand -hex 32)" # если вебхуки достижимы
Что приложение принудительно применяет при APP_ENV=production:
- Отсутствие или некорректность
ENCRYPTION_KEY— ошибка старта, а не молчаливая перегенерация. - Session cookie автоматически получает флаг
Secure(COOKIE_SECURE=true, если не переопределено) — обслуживать приложение за TLS.
Управление ключами¶
ENCRYPTION_KEY— глобальный key-encryption key (KEK). Каждый проект дополнительно оборачивает собственный data-encryption key (DEK); ротация DEK проекта — действие в UI (Admin → Encryption), ротация KEK —backend/scripts/rekey.py(сначала dry-run).- Резервная копия без ключа невосстановима. Храните ключ в secret-менеджере, а не рядом с резервной копией.
- Потеря ключа не расшифрует ничего и никогда — механизма восстановления нет by design.
Сетевая экспозиция¶
- Umbryx рассчитана на доверенную операторскую сеть за reverse proxy. Терминируйте TLS на прокси, ограничивайте доступ по IP/VPN и включайте rate-limit на прокси.
PUBLIC_BASE_URLстоит задавать явно в production (redirect_uriOIDC строится из него; значение, выводимое из запроса, доверяет заголовкуHost)./docs,/redoc,/openapi.jsonвыключены, если не заданоENABLE_API_DOCS=true— держите выключенными для сетей у интернета.
Вебхуки¶
Без WEBHOOK_HMAC_SECRET инжест вебхуков выключен целиком
(fail-closed). С ним каждый запрос обязан нести
X-Hub-Signature-256: sha256=<hmac> по raw body. Текущее состояние
проверяется полем hmac_required у
GET /api/projects/{pid}/webhook.
Целостность аудита¶
Задайте AUDIT_INTEGRITY_KEY для HMAC-отпечатков каждого события и
опционально форвардьте события в WORM-бакет (AUDIT_S3_*). После
первого старта выполните GET /api/admin/audit/verify — подтверждение,
что отпечатки проставляются.
Безопасность модулей (плагинов)¶
PLUGIN_SIGNING_KEY + PLUGIN_REQUIRE_SIGNATURE=true (по умолчанию)
требуют подпись у серверных загрузок модулей. Загружаемые модули
проходят AST-валидацию; eval/exec/__import__/compile
отвергаются.
Смежные страницы¶
- Обзор безопасности — что платформа шифрует и аудирует
- Контроль доступа — роли и права
- Чек-лист перед развёртыванием