Чек-лист безопасного деплоя: от CI/CD до production
Чек-лист безопасного деплоя: от CI/CD до production
Введение
Безопасность деплоя — это не отдельный этап, а сквозная дисциплина: от написания кода до выкатки в production. Данный чек-лист объединяет практики для CI/CD, контейнеров, секретов и observability. Подходит для Linux/Windows-окружений, Kubernetes и bare metal.
1. Репозиторий и CI/CD
- Подписанные коммиты (GPG/SSH) и обязательные ревью (2+ аппрува).
- Защищённые ветки: main/master защищены, force-push запрещён.
- Секреты только в CI Secrets (не в коде), ротация по расписанию.
- Кэш билдов изолирован и подписан; BuildKit/Buildx с sbom.
- Сканирование зависимостей (SCA): Trivy/Grype/Dependabot в каждом PR.
- Статический анализ кода: SonarQube/CodeQL, блокировка при критах.
- Проверка IaC: Checkov/Terrascan для Terraform/Ansible/Kubernetes.
2. Контейнеры и образы
- Минимальные базовые образы (distroless/alpine), non-root USER.
- SBOM и подписи образов (cosign/sigstore), verify в деплое.
- Отсутствие секретов в слоях (docker history чист, .dockerignore).
- Fixed digest-теги, не latest; immutability.
- Read-only root filesystem, drop capabilities, seccomp/apparmor профили.
- Health-check и graceful shutdown настроены.
3. Секреты и конфигурация
- Внешнее хранилище: HashiCorp Vault, SOPS+KMS, cloud secret manager.
- Короткоживущие токены (OIDC для CI → cloud), без долгоживущих ключей.
- No_log в Ansible, маскирование в CI, запрет echo секретов.
- Разделение env по средам, строгие префиксы и RBAC.
4. Инфраструктура и runtime
- NetworkPolicy / firewall: deny by default, explicit allow.
- mTLS внутри mesh, короткие TTL сертификатов.
- Ограничения ресурсов, QoS, PDB в Kubernetes.
- auditd / syslog централизованы, неизменяемое хранилище.
- SELinux/AppArmor включены и профилированы.
5. Observability и отклик
- Метрики деплоя: длительность, откаты, failure rate.
- Трассировка (OpenTelemetry) сквозная: от CI до runtime.
- Алёрты на аномалии: рост ошибок 5xx, latency, auth failures.
- Runbooks привязаны к алёртам, контакты актуальны.
- Postmortem шаблон заведён, blameless culture.
6. Откат и resilience
- Стратегия деплоя: blue/green или canary с автоматическим stop при деградации.
- Health-gate на каждом шаге, таймауты консервативны.
- Базы: миграции версионированы, downtime-free по возможности.
- Backups проверены восстановлением (не только наличие).
7. Комплаенс и аудит
- Логирование доступа к секретам, неизменяемый audit.
- Карта данных (data flow) и классификация.
- Обновление компонентов по CVE: SLA на критические.
- Периодические пентесты и сканирование поверхности.
8. Windows-окружения (дополнительно)
- MSI/EXE подписи Authenticode, AppLocker политики.
- Windows Defender Application Control (WDAC) enabled.
- Secrets в Windows LAPS, Azure Key Vault, DPAPI.
- PowerShell Constrained Language Mode, Script Block Logging.
- Windows Event Forwarding централизован.
Заключение
Чек-лист — это минимум. Внедрите его в CI как обязательные гейты и дополните под ваш стек. Дисциплина секретов, immutability и наблюдаемость — три кита безопасного деплоя.
Ключевые слова: security, devops, ci-cd, containers, kubernetes, vault, sops, observability, best-practices, windows