Стандарты безопасности Pod
Применяйте стандарты безопасности Pod, чтобы обеспечить соблюдение лучших практик на уровне Pod.
«Стандарты безопасности Pod» — бесплатный урок Kubernetes Basics на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kubernetes Basics, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kubernetes Basics содержит 4 уроков всего.
Что такое PSS?
Стандарты безопасности подов Kubernetes (PSS) — это набор рекомендаций и механизмов управления для применения передовых методов защиты подов.
Они помогают защищать кластер от распространённых уязвимостей безопасности и атак с повышением привилегий, ограничивая действия, доступные подам.
Представьте их как контрольный список безопасности для ваших подов!
Три уровня безопасности
PSS определяет три отдельных уровня безопасности, каждый из которых обеспечивает разную степень защиты:
- Privileged: без ограничений, наименее безопасный уровень.
- Baseline: предотвращает известные способы повышения привилегий.
- Restricted: обеспечивает усиленные передовые методы защиты.
Эти уровни кумулятивны: Restricted включает все меры защиты Baseline, а Baseline включает все меры защиты Privileged (точнее, не вводит ограничений).
Privileged: неограниченный доступ
Уровень PSS Privileged предоставляет неограниченную политику безопасности.
Это означает, что поды, работающие в соответствии с этой политикой, могут запрашивать любые возможности и получать полный доступ к ресурсам и пространствам имён хоста — подобно запуску от имени root на хост-компьютере.
Обычно такой уровень считается крайне небезопасным и должен использоваться только для системных рабочих нагрузок, которым действительно необходим подобный доступ.
Baseline: предотвращение эксплойтов
Уровень PSS Baseline предназначен для предотвращения известных способов повышения привилегий.
Это хорошая отправная точка для большинства приложений, определённых пользователями.
Основные ограничения:
- Запрещены привилегированные контейнеры.
- Запрещены тома hostPath (за исключением некоторых безопасных типов).
- Запрещены сетевое пространство имён хоста и совместное использование пространства имён PID.
- Возможности ограничены.
Этот уровень помогает снизить риск многих распространённых векторов атак.
Restricted: усиленная безопасность
Уровень PSS Restricted обеспечивает усиленные передовые методы защиты.
Он предназначен для приложений с высокими требованиями к безопасности и требует запуска подов с минимальными привилегиями.
Помимо ограничений Baseline, Restricted требует:
- Запуска от имени пользователя, отличного от root.
- Отключения всех возможностей Linux и добавления только конкретных необходимых возможностей.
- Использования профилей
seccompиAppArmor.
Это самый безопасный и строгий уровень PSS.
Обеспечение PSS с помощью Admission
Стандарты безопасности Pod обеспечиваются с помощью функции Kubernetes под названием Admission для Pod.
Этот контроллер Admission перехватывает запросы на создание Pod и проверяет их в соответствии с уровнем PSS, настроенным для пространства имён Pod.
Уровни PSS применяются к пространствам имён путём добавления специальных меток. Например:
kubectl label namespace <namespace-name> pod-security.kubernetes.io/enforce=restrictedУправление безопасностью Pod
Чтобы ваши Pod соответствовали PSS, обычно используется поле securityContext в определении Pod.
Это поле позволяет задавать параметры привилегий и управления доступом для Pod или отдельных контейнеров внутри него.
К распространённым параметрам относятся:
runAsUser: задаёт идентификатор пользователя для процесса контейнера.allowPrivilegeEscalation: не позволяет процессу получить больше привилегий, чем его родительский процесс.capabilities: управляет возможностями Linux.
Пример небезопасного Pod
Рассмотрим определение Pod, которое нарушает стандарт Baseline PSS из-за настроек контекста безопасности. В целом такой Pod небезопасен:
apiVersion: v1
kind: Pod
metadata:
name: unsafe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
privileged: true
# This allows the container to run with root capabilities
# and access host devices directly.
# Violates Baseline PSS.Пример Pod, соответствующего Baseline
Вот как можно определить Pod, соответствующий уровню Baseline PSS. Обратите внимание на отсутствие privileged: true и других ограничений.
Для ещё более строгого соответствия уровню Restricted следует добавить runAsNonRoot: true, readOnlyRootFilesystem: true и удалить все возможности.
apiVersion: v1
kind: Pod
metadata:
name: safe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
# This Pod runs with minimal privileges and
# adheres to the Baseline PSS.Быстрая проверка PSS
Какое из следующих утверждений о стандартах безопасности Pod (PSS) является TRUE?
Итоги: стандарты безопасности Pod
В этом уроке вы узнали о стандартах безопасности Pod (PSS) в Kubernetes и их важности для защиты кластера.
- PSS определяют три уровня: Privileged, Baseline и Restricted.
- Baseline предотвращает известные способы повышения привилегий и подходит для большинства приложений.
- Restricted обеспечивает усиленную защиту и требует минимального набора привилегий.
- Поле
securityContextпомогает настроить Pod в соответствии с PSS.
Применение PSS — важный шаг к созданию более безопасных сред Kubernetes!
Часто задаваемые вопросы
Урок «Стандарты безопасности Pod» бесплатный?
Да — полный текст урока «Стандарты безопасности Pod» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kubernetes Basics, подпишись на CoddyKit PRO. Курс Kubernetes Basics содержит 4 уроков всего.
Чему я научусь в уроке «Стандарты безопасности Pod»?
Применяйте стандарты безопасности Pod, чтобы обеспечить соблюдение лучших практик на уровне Pod. Ты практикуешь Kubernetes Basics с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kubernetes Basics?
Предыдущий опыт не требуется. Kubernetes Basics на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Стандарты безопасности Pod»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kubernetes Basics?
Да. Каждый урок Kubernetes Basics включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Ролевое управление доступом (RBAC)
- Сетевые политики для изоляции
- Стандарты безопасности Pod
- Сервисные аккаунты и идентичность рабочих нагрузок