f8d3cbdd59
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.
58 lines
3.8 KiB
Markdown
58 lines
3.8 KiB
Markdown
**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. Не полагайтесь на симулятор для
|
|
тестирования защиты от эксфильтрации живых учётных данных против реальных
|
|
провайдеров.
|