This commit is contained in:
2026-04-08 20:22:14 +07:00
commit 34fbdd1412
96 changed files with 5321 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
# Урок 2.2 — Политики безопасности и соответствия стандартам
## Файлы
| Файл | PSS профиль | Описание |
|------|-------------|----------|
| `disallow-privileged-containers.yaml` | Baseline | Запрет `privileged: true` |
| `disallow-dangerous-capabilities.yaml` | Baseline | Запрет опасных capabilities |
| `require-drop-all-capabilities.yaml` | Restricted | Обязательный `drop: [ALL]` |
| `require-run-as-non-root.yaml` | Restricted | Запрет запуска от root |
| `disallow-host-namespaces.yaml` | Baseline | Запрет hostNetwork/PID/IPC/Path |
| `require-seccomp-profile.yaml` | Restricted | Обязательный seccomp |
| `restrict-automount-sa-token.yaml` | CIS | Отключение автомонтирования токена |
## Стратегия внедрения (поэтапно)
### Этап 1 — Аудит (неделя 12)
```bash
# Применить все политики в режиме Audit
for f in *.yaml; do
kubectl apply -f "$f"
done
# Подождать 5 минут для background scan, затем:
kubectl get policyreports -A -o json | \
jq -r '[.items[].results[] | select(.result == "fail") | .policy] |
group_by(.) | map({policy: .[0], count: length}) |
sort_by(-.count)[] | "\(.count)\t\(.policy)"'
```
### Этап 2 — Оценка нарушений
```bash
# Детали нарушений по конкретной политике
POLICY="disallow-privileged-containers"
kubectl get policyreports -A -o json | \
jq --arg p "$POLICY" \
-r '.items[] | .metadata.namespace as $ns |
.results[] | select(.policy == $p and .result == "fail") |
"\($ns)/\(.resources[0].name): \(.message)"'
```
### Этап 3 — Тестирование через Kyverno CLI
```bash
# Проверить под с нарушениями
kyverno apply . \
--resource test-resources/pod-insecure.yaml \
--table
# Проверить корректный под
kyverno apply . \
--resource test-resources/pod-secure.yaml \
--table
```
### Этап 4 — Перевод в Enforce
```bash
# По одной политике
kubectl patch clusterpolicy disallow-privileged-containers \
--type merge \
-p '{"spec":{"validationFailureAction":"Enforce"}}'
```
## Тестовые ресурсы
```bash
# Под с нарушениями (должен быть отклонён)
kubectl apply -f test-resources/pod-insecure.yaml
# Безопасный под (должен пройти)
kubectl apply -f test-resources/pod-secure.yaml
```