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