Назад к вопросам
Middle+
69
questionbank
Какие практики вы знаете для повышения безопасности приложения в Kubernetes?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
- Использование Network Policies для контроля трафика между подами.
- Применение Resource Quotas и Limit Ranges для ограничения потребления ресурсов подами.
- Отключение привилегированного режима для контейнеров.
- Минимизация прав, выдаваемых Service Accounts.
- Использование secrets для хранения чувствительных данных.
- Регулярное сканирование образов контейнеров на уязвимости.
- Применение Security Context Constraints (SCC) в OpenShift или Pod Security Policies (PSP) (устарели) / Pod Security Standards в чистом Kubernetes.
- Использование инструментов для аудита кластера, таких как Kubesec или OpenSCAP.
- Внедрение принципа наименьших привилегий на уровне кластера и приложений.
- Сегментация подов и пространств имен.
- Использование Immutability для развертываний.
Пример использования Network Policy:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend # Применяется только к подам с этим лейблом
ingress:
- from:
- podSelector:
matchLabels:
app: frontend # Разрешает входящий трафик только от подов frontend
ports:
- protocol: TCP
port: 8080 # Разрешает трафик только на этот порт
Пример использования Security Context:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000 # Запускать контейнер от пользователя с ID 1000
runAsGroup: 3000 # Запускать контейнер от группы с ID 3000
fsGroup: 2000 # Файловая система будет принадлежать к группе 2000
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
allowPrivilegeEscalation: false # Запретить повышение привилегий
readOnlyRootFilesystem: true # Сделать корневую файловую систему только для чтения