Files
2026-04-08 20:22:14 +07:00
..
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00
2026-04-08 20:22:14 +07:00

Урок 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)

# Применить все политики в режиме 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 — Оценка нарушений

# Детали нарушений по конкретной политике
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

# Проверить под с нарушениями
kyverno apply . \
  --resource test-resources/pod-insecure.yaml \
  --table

# Проверить корректный под
kyverno apply . \
  --resource test-resources/pod-secure.yaml \
  --table

Этап 4 — Перевод в Enforce

# По одной политике
kubectl patch clusterpolicy disallow-privileged-containers \
  --type merge \
  -p '{"spec":{"validationFailureAction":"Enforce"}}'

Тестовые ресурсы

# Под с нарушениями (должен быть отклонён)
kubectl apply -f test-resources/pod-insecure.yaml

# Безопасный под (должен пройти)
kubectl apply -f test-resources/pod-secure.yaml