Middle+
Ի՞նչ պրակտիկաներ եք գիտակցում Kubernetes-ում հավելվածի անվտանգությունը բարձրացնելու համար։
sobes.tech AI
Պատասխան AI-ից
- Օգտագործել ցանցային քաղաքականություններ՝ տրաֆիկը վերահսկելու համար պոդների միջև:
- Օգտագործել ռեսուրսների քանակներ և սահմանափակման միջակայքներ՝ ռեսուրսների սպառումը սահմանափակելու համար:
- Բացառել պրիվիլեգիայով ռեժիմը կոնտեյներների համար:
- Մինիմալացնել ծառայության հաշիվներին տրված արտոնությունները:
- Օգտագործել գաղտնաբառեր՝ զգայուն տվյալները պահելու համար:
- Կոնտեյներային պատկերների ռեգուլյար սկանավորում՝ թերությունների համար:
- Օգտագործել անվտանգության կոնտեքստի սահմանափակումներ (SCC) OpenShift-ում կամ Pod Security Policies (PSP) (հնացած) / Pod Security Standards՝ մաքուր 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 # Գլխավոր ֆայլային համակարգը միայն ընթերցանության համար