Middle+
Кои практики знаете за подобряване на сигурността на приложението в Kubernetes?
sobes.tech AI
Отговор от AI
- Използване на мрежови политики за контрол на трафика между подовете.
- Прилагане на квоти за ресурси и диапазони на лимити за ограничаване на потреблението на ресурси от подовете.
- Изключване на привилегирания режим за контейнерите.
- Минимизиране на привилегиите, предоставени на акаунтите за услуги.
- Използване на тайни за съхранение на чувствителни данни.
- Редовно сканиране на контейнерните изображения за уязвимости.
- Прилагане на ограничения за контекста на сигурността (SCC) в OpenShift или политики за сигурност на подовете (PSP) (остарели) / стандарти за сигурност на подовете в чист Kubernetes.
- Използване на инструменти за одитиране на клъстера, като Kubesec или OpenSCAP.
- Внедряване на принципа на минималните привилегии на ниво клъстер и приложения.
- Сегментиране на подовете и именните пространства.
- Използване на неизменяемост за разгръщания.
Пример за използване на мрежова политика:
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 # Позволява трафик само на този порт
Пример за използване на контекст на сигурност:
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 # Правене на кореновата файлова система само за четене