**Language / Язык:** [English](../security.md) | [Русский](security.md)

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

## Модель угроз лаборатории

Этот проект — **локальный / CI лабораторный симулятор**. Он не защищён как
multi-tenant публичный сервис vCenter. Учётные данные по умолчанию, демо-
элементы управления в UI и endpoint'ы совместимости удобны для разработки и
намеренно открыты в стандартном стеке Compose.

Не публикуйте порты `443` / `80` в недоверенные сети без дополнительных
средств защиты, которые вы предоставляете самостоятельно.

## Учётные данные и секреты

- Пароли хранятся как хэши scrypt (`vsphere_credentials.password_hash`).
- Session id — это непрозрачные токены (`vmware-api-session-id`) со
  скользящим сроком действия 2 часа, отслеживаемые в PostgreSQL
  (`vsphere_sessions`).
- Логи маскируют распознанные представления session id и паролей.
- Ответы сессий обновления/загрузки content library раскрывают только
  endpoint'ы загрузки/скачивания, а не сырые секреты.

Меняйте `TICKET_SIGNING_KEY` для любой общей лаборатории. Заменяйте seeded-
пароли перед демонстрацией другим людям.

## Материалы TLS

`docker/tls/` содержит закоммиченный self-signed сертификат для локального
сервиса nginx `api-gateway`. Он существует, чтобы немодифицированные
TLS-клиенты (pyvmomi, govmomi, провайдер Terraform `hashicorp/vsphere`) могли
подключаться с установленным `insecure`/`verify=False`. **Никогда** не
используйте эти файлы повторно в production.

## Администрирование симулятора

На данный момент **нет** отдельно аутентифицируемой административной
control plane. Вспомогательные маршруты Web UI под `/ui/api/*` доступны,
когда процесс достижим по сети, — включая действия reseed и hot-swap.
Считайте сетевую доступность границей доверия.

## Авторизация

Мутирующие REST-эндпоинты проверяют привилегии, производные от роли
(`app/vsphere/security/authz.py`), прежде чем обращаться к инвентарю.
Seeded-принципал `readonly@vsphere.local` не может включать/создавать/
удалять ВМ (HTTP 403). См. [Авторизация](domains/authz.md).

## Симулированные внешние системы

Заменители NSX/Supervisor/vSAN/SAML-OIDC/VECS-сертификатов (см.
[Покрытие API](api-coverage.md)) сохраняют только локальное состояние
симулятора. Они не открывают реальных соединений с внешними IdP, NSX
Manager или живым кластером vSAN. Не полагайтесь на симулятор для
тестирования защиты от эксфильтрации живых учётных данных против реальных
провайдеров.
