Набор настроек, определяющих права доступа и ограничения для Pod и Container.
Эти настройки реализуют принцип наименьших привилегий и предотвращают несанкционированный доступ.
💬 Зачем это нужно?
— Ограничить права контейнеров (принцип наименьших привилегий)
— Предотвратить доступ к ресурсам узла
— Соответствовать требованиям безопасности и compliance
— Защититься от escape-атаки из контейнера
💬 Основные настройки
На уровне Pod:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsNonRoot: true # Запрет запуска от root
runAsUser: 1000 # UID для запуска
runAsGroup: 3000 # GID для запуска
fsGroup: 2000 # GID для томов
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
На уровне Container:
containers:
- name: sec-ctx-demo
image: nginx
securityContext:
allowPrivilegeEscalation: false # Запрет повышения привилегий
capabilities:
drop: ["ALL"] # Удаляем все capabilities
add: ["NET_BIND_SERVICE"] # Добавляем только нужные
readOnlyRootFilesystem: true # ФС только для чтения
seccompProfile:
type: RuntimeDefault # Стандартный seccomp профиль
💬 Ключевые параметры безопасности:
— runAsNonRoot — гарантирует не-root выполнение
— readOnlyRootFilesystem — защита от модификации системы
— allowPrivilegeEscalation — блокировка повышения прав
— capabilities — тонкий контроль Linux capabilities
— seccompProfile — фильтрация системных вызовов
💬 Security Context — это базовый инструмент для security-in-depth в Kubernetes. Он не заменяет сетевые политики и Pod Security Standards, но создаёт фундамент для безопасной работы приложений.
Подробнее про Pod Security Standards и конфигурации Security Context для подов или контейнеров в официальной документации kubernetes.
#заметкиИнженера
