Конфигурация системы ≠ provision ресурсов · R11
R11. Ansible и security baseline
Цель
Автоматизировать конфигурацию хостов и собрать минимальную защиту, которая проходит через весь lifecycle.
Что освоить
- inventory, playbooks, roles и handlers
- templates и idempotence
- least privilege и SSH hardening
- patching, firewall и secret rotation
- dependency/image scanning и threat model
Материалы основного пути
- Ansible для начинающих + практика
- Начать здесь. inventory, playbook, variables, handlers и roles
- Ansible: Getting started
- Обязательно. Getting started, inventory, playbooks и vault
- DevSec Hardening Ansible Collection
- Практика. применить и объяснить subset hardening role на учебной VM
Практика
Ansible настраивает две чистые VM, пользователей, NGINX, systemd и приложение.
Проверьте результат
Повторный запуск на неизменённом стенде не вносит лишних изменений; новый host настраивается из кода. Секреты не коммитятся и не попадают в проверенные логи. State/plan защищены как чувствительные данные.
Вопросы, условия приёмки и доказательства
Ответьте и покажите
- Чем provision ресурса отличается от config management?
- Как handler помогает идемпотентности?
Условия приёмки
- Clean host configured
- Second run changed=0
- Hardening checks и secret hygiene доказаны
Учебный отказ: Вручную изменить managed config и показать controlled correction без перезаписи несвязанных настроек.
Артефакт: Ansible role/playbook + idempotence log + security report
Чистый host настроен автоматически; повторный запуск на неизменённом стенде не вносит лишних изменений. Проверены least privilege, firewall и patching; state/plan защищены, в Git и проверенных логах секретов нет.
Хорошее доказательство: Role repo + two run logs + lint/security report + redacted secret workflow.
Недостаточно: Shell-команды в command/shell без creates/changed_when, plaintext secret и changed>0 на каждом run.
Углубление и справочные материалы
Темы для углубления
- role/molecule-style testing
- compliance evidence
- secret rotation и patch windows
Оформить baseline как role, проверить её на чистом host, собрать отчёт hardening и провести controlled secret rotation.
Результат: Повторный запуск changed=0; baseline test воспроизводим; исключения имеют owner/expiry; старый secret отозван.
Дополнительные материалы
- OWASP Top 10: 2025
- Ansible Lint documentation
Справочник. rules, profiles и CI integration
- OWASP DevSecOps Guideline
Дополнительно. SAST/DAST/SCA, IaC/container scans и security gates