[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-bezopasnost-konteynerov-chto-takoe-pod-security-standards-i-pod-security-admission":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":20,"progress":21,"seo":22},317,"chto-takoe-pod-security-standards-i-pod-security-admission",9,"bezopasnost-konteynerov","Безопасность контейнеров","🛡️","Что такое Pod Security Standards и Pod Security Admission?","Pod Security Standards (PSS) -- это набор из трёх предопределённых уровней безопасности для подов в Kubernetes, а Pod Security Admission (PSA) -- встроенный admission controller, который применяет эти стандарты. PSS\u002FPSA заменили устаревший PodSecurityPolicy, удалённый в Kubernetes 1.25.\n\n### Три уровня Pod Security Standards\n\n| Уровень | Описание | Когда использовать |\n|---------|----------|-------------------|\n| **Privileged** | Без ограничений | Системные компоненты (CNI, мониторинг, логирование) |\n| **Baseline** | Минимальные ограничения, предотвращающие известные повышения привилегий | Некритичные приложения, staging |\n| **Restricted** | Максимальные ограничения, следующие лучшим практикам | Банковские приложения, production |\n\n### Что запрещает каждый уровень\n\n**Baseline** запрещает:\n- `hostNetwork`, `hostPID`, `hostIPC`\n- Привилегированные контейнеры (`privileged: true`)\n- Опасные capabilities (NET_RAW и др.)\n- Монтирование `hostPath`\n- Определённые типы volume\n\n**Restricted** дополнительно запрещает:\n- Запуск от root (`runAsNonRoot` обязателен)\n- Privilege escalation (`allowPrivilegeEscalation: false` обязателен)\n- Все capabilities, кроме `NET_BIND_SERVICE`\n- Требует seccomp-профиль (`RuntimeDefault` или `Localhost`)\n- Рекомендует read-only root filesystem\n\n### Настройка через labels на namespace\n\n```yaml\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: banking\n  labels:\n    # Режимы: enforce, audit, warn\n    pod-security.kubernetes.io\u002Fenforce: restricted\n    pod-security.kubernetes.io\u002Fenforce-version: latest\n    pod-security.kubernetes.io\u002Faudit: restricted\n    pod-security.kubernetes.io\u002Faudit-version: latest\n    pod-security.kubernetes.io\u002Fwarn: restricted\n    pod-security.kubernetes.io\u002Fwarn-version: latest\n```\n\n| Режим | Поведение |\n|-------|----------|\n| **enforce** | Блокирует создание подов, нарушающих политику |\n| **audit** | Разрешает, но записывает нарушение в audit log |\n| **warn** | Разрешает, но показывает предупреждение пользователю |\n\n### Пример пода, соответствующего уровню Restricted\n\n\u003Cdetails>\n\u003Csummary>Полный манифест compliant-пода\u003C\u002Fsummary>\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: compliant-banking-app\n  namespace: banking\nspec:\n  securityContext:\n    runAsNonRoot: true\n    seccompProfile:\n      type: RuntimeDefault\n  containers:\n  - name: app\n    image: registry.bank.local\u002Fbanking-service:1.0.0\n    securityContext:\n      runAsUser: 1000\n      runAsGroup: 1000\n      allowPrivilegeEscalation: false\n      readOnlyRootFilesystem: true\n      capabilities:\n        drop:\n          - ALL\n    resources:\n      limits:\n        memory: \"512Mi\"\n        cpu: \"500m\"\n      requests:\n        memory: \"256Mi\"\n        cpu: \"250m\"\n    volumeMounts:\n    - name: tmp\n      mountPath: \u002Ftmp\n  volumes:\n  - name: tmp\n    emptyDir: {}\n  automountServiceAccountToken: false\n```\n\n\u003C\u002Fdetails>\n\n### Стратегия миграции\n\n1. Начать с `warn` и `audit` на уровне **restricted** -- увидеть, какие поды не соответствуют.\n2. Исправить манифесты подов, не прошедших проверку.\n3. Включить `enforce: restricted`.\n\n### Вывод\n\nPSS\u002FPSA -- встроенный механизм Kubernetes для обеспечения минимальных стандартов безопасности подов на уровне namespace. Для банковских систем рекомендуется уровень **restricted** во всех production namespace-ах. Для более гибких политик (например, проверка подписей образов, проверка реестров) используйте Kyverno или OPA Gatekeeper.\n\n> **На собеседовании:** назовите три уровня (Privileged, Baseline, Restricted), объясните три режима применения (enforce, audit, warn). Упомяните, что PSA заменил PodSecurityPolicy с версии 1.25, и опишите стратегию постепенной миграции.","","middle",[15,16,17,18,19],"kubernetes","pod-security-standards","PodSecurityPolicy","container-security","PSA",[],null,{"title":23,"description":24,"ogTitle":25,"ogDescription":26,"keywords":27,"schemaAnswer":33,"featuredSnippetReady":34},"Pod Security Standards и Pod Security Admission в Kubernetes — Gymterview","Три уровня Pod Security Standards: Privileged, Baseline, Restricted. Pod Security Admission заменяет PodSecurityPolicy. Режимы enforce, audit, warn.","Pod Security Standards и Admission — 3 уровня безопасности подов","Privileged — без ограничений, Baseline — минимальные, Restricted — максимальные. Pod Security Admission применяет стандарты на уровне namespace.",[28,29,30,31,32],"Pod Security Standards","Pod Security Admission","PSS Kubernetes","PodSecurityPolicy замена","Restricted Baseline Privileged","Pod Security Standards (PSS) — три уровня безопасности подов: Privileged (без ограничений), Baseline (минимальные ограничения, запрет hostNetwork, privileged), Restricted (максимальная безопасность, runAsNonRoot, drop ALL capabilities). Pod Security Admission (PSA) — встроенный admission controller (замена PodSecurityPolicy), применяющий PSS на уровне namespace в режимах enforce, audit и warn.",true]