Pod Security Standards

Тема дорожной карты · Kubernetes

Стандарты безопасности Pod'ов (Pod Security Standards) — нативный для Kubernetes фреймворк, определяющий три профиля безопасности — privileged, baseline и restricted — применяемых на уровне пространства имён через встроенный admission-контроллер Pod Security, заменивший устаревший PodSecurityPolicy в Kubernetes v1.25. Профиль restricted применяет наиболее жёсткий набор ограничений: требует runAsNonRoot: true, сбрасывает все Linux-привилегии через securityContext.capabilities.drop: ["ALL"], запрещает hostPID, hostNetwork и hostIPC, и обязывает использовать seccompProfile.type: RuntimeDefault или Localhost. Пространства имён подключаются к уровню политики установкой метки pod-security.kubernetes.io/enforce: restricted, при этом отдельные метки audit и warn доступны для постепенной миграции без нарушения существующих нагрузок. Стандарты безопасности Pod'ов дополняют движки политик OPA Gatekeeper и Kyverno, предоставляющие более детальные элементы управления: требование конкретных реестров образов, принудительное использование файловых систем только для чтения через readOnlyRootFilesystem: true или блокировка эскалации привилегий через allowPrivilegeEscalation: false. Применение стандартов безопасности Pod'ов во всех пространствах имён — фундаментальный шаг в усилении безопасности Kubernetes наряду с RBAC, NetworkPolicy и шифрованием Secret'ов в состоянии покоя.

Как это работает

Pod Security Standards в Kubernetes слоится через несколько контролей: RBAC (кто может делать что на каких ресурсах), Network Policies (какие pods могут общаться с какими), Pod Security Standards (ограничения privileged-операций), admission controllers (валидируют/мутируют ресурсы до persistence), underlying container runtime sandbox. Defence-in-depth: предполагайте, что любой single control будет обойдён, и проектируйте несколько слоёв.

Когда применять

Внедряйте Pod Security Standards с создания кластера, не retrofit-ом позже — добавление RBAC в permissive кластер ломает десятки нагрузок. Начните с restrictive defaults и давайте доступ по нужде (least-privilege); применяйте NetworkPolicies в default-deny режиме; включайте PSS на уровне namespace. Регулируемые отрасли (банки, медицина) требуют это с дня 1; consumer-приложения выигрывают от этого до первого production-инцидента.

Типичные ошибки

Security-ловушки: cluster-admin role выдан разработчикам (полная власть; одна плохая команда сносит prod); image pull из ненадёжных registries без верификации подписи; serviceaccount tokens auto-mount в каждом pod (network access к API = lateral movement); пропуск CIS Kubernetes Benchmark-аудитов. Регулярный pentest находит реальные проблемы до того, как их найдут атакующие.

Связанные понятия

Полезные ресурсы