← [Главная](../README.md)

# 11 — Практикум

## Цель

Закрепить теорию разделов [09](../09-compliance/README.md) и [10](../10-instrumenty/README.md) четырьмя **лабораторными работами** с пошаговыми командами. Все упражнения безопасны для локальной машины; реальные секреты и prod не используются.

## Предварительно

| Инструмент | Lab 01 | Lab 02 | Lab 03 | Lab 04 |
|------------|--------|--------|--------|--------|
| Git | ✓ | ✓ | | ✓ |
| Docker | | ✓ | | |
| kubectl + kind/minikube | | | ✓ | |
| Текстовый редактор | ✓ | ✓ | ✓ | ✓ |

Установка kind (macOS/Linux):

```bash
# пример для macOS с Homebrew
brew install kind kubectl
```

## Время

| Лабораторная | Время |
|--------------|-------|
| [Lab 01 — секреты в Git](lab-01-secrets-v-git.md) | ~45 мин |
| [Lab 02 — скан Docker-образа](lab-02-scan-docker-image.md) | ~40 мин |
| [Lab 03 — RBAC и NetworkPolicy](lab-03-k8s-rbac-networkpolicy.md) | ~60 мин |
| [Lab 04 — tabletop инцидента](lab-04-incident-tabletop.md) | ~50 мин |

**Итого:** ~3–4 часа.

## Правила практикума

1. Работайте в каталоге `~/devsecops-labs/` — не в случайных prod-репозиториях.
2. Все ключи — фейковые: `FAKE_AWS_KEY`, `demo-password-only`.
3. После Lab 01 удалите учебный репозиторий или выполните `git filter-repo` только в изолированной копии.
4. Сохраняйте скриншоты/логи как **учебные артефакты** (см. [audit-evidence.md](../09-compliance/audit-evidence.md)).

## Порядок прохождения

```
Lab 01 (секреты) → Lab 02 (образ) → Lab 03 (K8s) → Lab 04 (инцидент)
```

Lab 04 можно проходить без кластера — это ролевая симуляция.

## Самопроверка раздела

После всех лаб вы должны уметь:

- [ ] Запустить Gitleaks и интерпретировать находку.
- [ ] Просканировать образ Trivy и объяснить exit code.
- [ ] Создать Role + RoleBinding и NetworkPolicy deny-all egress.
- [ ] Заполнить timeline инцидента за 15 минут.

## Окружение: проверка перед стартом

```bash
git --version
docker --version
kubectl version --client 2>/dev/null || echo "kubectl: install for Lab 03"
kind --version 2>/dev/null || echo "kind: install for Lab 03"
```

Все лабы рассчитаны на **macOS и Linux**. На Windows используйте WSL2 с Docker Desktop.

## Журнал прохождения (шаблон)

Создайте `~/devsecops-labs/JOURNAL.md`:

```markdown
# Журнал практикума

| Lab | Дата | Время | Ключевой вывод | Артефакт |
|-----|------|-------|----------------|----------|
| 01 | | | Gitleaks видит историю | report.txt |
| 02 | | | | report-old.json |
| 03 | | | RBAC Forbidden | screenshot |
| 04 | | | MTTR учебный | postmortem.md |
```

Этот журнал — зачаток портфолио ([portfolio-proekty.md](../12-pro-uroven/portfolio-proekty.md)).

## Если что-то сломалось

| Проблема | Решение |
|----------|---------|
| Docker permission denied | Добавить пользователя в группу docker / перезапуск Docker Desktop |
| kind не создаёт кластер | `kind delete cluster --name lab03` и повторить |
| Gitleaks не находит секрет | Проверить формат `AKIA...` в config.py |
| Trivy долго качает DB | Первый запуск — норма; подождите 2–5 мин |

## Безопасность вашей машины

- Не используйте реальные API-ключи даже «для проверки».
- Удалите `~/devsecops-labs/` после курса или храните локально, не в облаке без шифрования.
- Не пушьте учебные репозитории в публичный GitHub с фейковыми ключами без `.md` пояснения в README.

## Связь лаб с инструментами раздела 10

| Lab | Статьи |
|-----|--------|
| 01 | [Gitleaks](../10-instrumenty/trivy-semgrep-gitleaks.md), [GitLab/GitHub CI](../10-instrumenty/gitlab-ci-security.md) |
| 02 | [Trivy image](../10-instrumenty/trivy-semgrep-gitleaks.md) |
| 03 | [K8s security](../07-infrastruktura/kubernetes-security.md) при наличии |
| 04 | [Falco](../10-instrumenty/falco-k8s-runtime.md), [GDPR](../09-compliance/gdpr-i-personalnye-dannye.md) |

## Дальше

Начните с [Lab 01 — секреты в Git](lab-01-secrets-v-git.md). После практикума — [12 — Pro уровень](../12-pro-uroven/README.md).
