0Pricing
DevOps Bootcamp · Урок

Стандарты безопасности Pod

Применяйте стандарты безопасности Pod, чтобы обеспечить соблюдение лучших практик на уровне Pod.

«Стандарты безопасности Pod» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 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) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Стандарты безопасности Pod»?

Применяйте стандарты безопасности Pod, чтобы обеспечить соблюдение лучших практик на уровне Pod. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Стандарты безопасности Pod»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Ролевое управление доступом (RBAC)
  2. Сетевые политики для изоляции
  3. Стандарты безопасности Pod
  4. Сервисные аккаунты и идентичность рабочих нагрузок
← Назад к DevOps Bootcamp