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 # ძირითადი ფაილური სისტემა მხოლოდ წაკითხვადია