Files
inecs f8d3cbdd59 Initial commit: VMware vSphere API simulator scaffold.
Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API
contracts, docs, client examples, and the unit/integration/compatibility
test suite for local client and tooling labs without a real vCenter.
2026-07-18 04:42:11 +03:00

3.8 KiB

Language / Язык: English | Русский

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

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

Этот проект — локальный / 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). См. Авторизация.

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

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