Tempah Konsultasi Hantar Tiket

Memperkukuh Keselamatan Kubernetes untuk SRE: Panduan Praktikal

Pos ini membentangkan senario realistik di mana kluster Kubernetes menunjukkan tanda-tanda kompromi, dan membimbing melalui diagnosis, arahan pengukuhan, kawalan risiko, rollback, dan pengesahan.

Memperkukuh Keselamatan Kubernetes untuk SRE: Panduan Praktikal
Security 6min 47 paparan 2026-06-25
KubernetesSREpengukuhan keselamatan

Senario

Pasukan SRE memerhatikan penciptaan pod yang luar biasa dan lonjakan trafik rangkaian keluar dari kluster Kubernetes. Penyiasatan awal menunjukkan kemungkinan pelanggaran keselamatan.

Gejala

  • Pod tanpa kebenaran berjalan dalam namespace yang tidak dijangka
  • Corak trafik egress yang tidak normal
  • ClusterRoleBinding yang mencurigakan dalam kube-system

Diagnosis

  1. Semak RBAC:
kubectl get clusterrolebindings --all-namespaces
kubectl describe clusterrolebinding <nama-mencurigakan>
  1. Periksa Dasar Rangkaian:
kubectl get networkpolicies --all-namespaces

Ketiadaan dasar bermakna semua trafik dibenarkan secara lalai. 3. Semak Piawaian Keselamatan Pod:

kubectl get podsecuritypolicies

Jika kosong, tiada sekatan dikenakan.

Arahan Pengukuhan

RBAC Hak Minimum

  • Buang ClusterRoleBinding yang tidak perlu:
kubectl delete clusterrolebinding <nama-mencurigakan>
  • Guna Role dan RoleBinding yang terhad:
cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User
  name: jane
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
EOF

Dasar Rangkaian

  • Tolak semua trafik masuk dan keluar secara lalai:
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress
EOF
  • Benarkan egress penting (contohnya DNS):
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-dns
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: myapp
  policyTypes:
  - Egress
  egress:
  - to:
    - namespaceSelector:
        matchLabels:
          kubernetes.io/metadata.name: kube-system
    ports:
    - protocol: UDP
      port: 53
EOF

Piawaian Keselamatan Pod (melalui Pod Security Admission)

  • Kuat kuasa mod restricted pada namespace:
kubectl label ns default pod-security.kubernetes.io/enforce=restricted

⚠️ Mungkin mengganggu pod sedia ada; uji dalam bukan produksi dahulu.

Kawalan Risiko

  • Sandarkan semua RBAC dan dasar rangkaian semasa sebelum perubahan:
kubectl get clusterrolebindings -o yaml > backup-rbac.yaml
  • Laksanakan perubahan secara berperingkat, mulakan dengan namespace pentas.
  • Dayakan log audit untuk mengesan akses anomali.

Rollback

  • Pulihkan RBAC dari sandaran:
kubectl apply -f backup-rbac.yaml
  • Padam dasar rangkaian:
kubectl delete networkpolicy default-deny-all
  • Buang label Pod Security Admission:
kubectl label ns default pod-security.kubernetes.io/enforce-

Pengesahan

  • Uji RBAC:
kubectl auth can-i get pods --as=jane
  • Sahkan dasar rangkaian aktif:
kubectl describe networkpolicy default-deny-all
  • Uji penguatkuasaan Keselamatan Pod:
kubectl run test --image=busybox -- sleep 1

Mesti ditolak.

Bila Hantar Tiket OpsGlobal

  • Jika anda mengesyaki pelanggaran aktif dan memerlukan respons insiden pantas.
  • Apabila anda memerlukan bantuan pakar dengan reka bentuk dasar yang kompleks atau audit pematuhan.
  • Jika pasukan anda kurang kepakaran keselamatan Kubernetes yang mendalam.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu Security dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Pos ini membentangkan senario realistik di mana kluster Kubernetes menunjukkan tanda-tanda kompromi, dan membimbing melalui diagnosis, arahan pengukuhan, kawalan risiko, rollback, dan pengesahan.

Langkah Penyelesaian

Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.

Contoh Arahan

Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.

Risiko

Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.

Pelan Rollback

Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.

Senarai Serahan

Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.

!

Perlu bantuan isu teknikal serupa?

Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.

Tiket Hubungi WhatsApp Konsultasi