Tempah Konsultasi Hantar Tiket

Pengukuhan Keselamatan DevOps untuk Platform Ops/SRE: Penerokaan Mendalam Kubernetes Praktikal

Pos ini membincangkan senario sebenar salah konfigurasi RBAC dan konteks keamanan Pod yang terlalu permisif dalam kluster Kubernetes, dengan langkah demi langkah diagnosis, perintah pengukuhan, prosedur undur, dan teknik pengesahan.

Pengukuhan Keselamatan DevOps untuk Platform Ops/SRE: Penerokaan Mendalam Kubernetes Praktikal
Security 6min 82 paparan 2026-06-23
KubernetesSREPengukuhan KeselamatanRBACPolisi RangkaianKeselamatan Pod

Senario

Pasukan Ops menguruskan kluster Kubernetes berbilang penyewa. Log audit terkini menunjukkan permintaan RBAC yang dinafikan dan Pod istimewa yang tidak dijangka muncul dalam ruang nama pengeluaran. Pembangun mengadu tentang kawalan akses yang tidak konsisten.

Gejala

  • Pengguna bukan pentadbir cuba menyenaraikan sumber pada peringkat kluster (cth. Node, PV) dan dinafikan.
  • Bekas istimewa muncul dalam ruang nama yang sepatutnya tidak wujud.
  • Polisi rangkaian tidak mengasingkan trafik merentas ruang nama dengan berkesan.

Diagnosis

1. Semakan RBAC

# Senaraikan semua ClusterRoleBinding dan RoleBinding
kubectl get clusterrolebinding -o wide
kubectl get rolebinding -A -o wide
# Periksa kebenaran berkesan untuk pengguna atau ServiceAccount tertentu
export USER="john.doe@example.com"  # ganti dengan pengguna sebenar
kubectl auth can-i --list --as=$USER --all-namespaces | grep -v "no"

2. Audit Polisi Rangkaian

# Senaraikan semua polisi rangkaian
kubectl get networkpolicy --all-namespaces
# Periksa sama ada polisi lalai-menolak wujud (jika tiada, semua trafik dibenarkan)
NAMESPACE="production"
kubectl describe networkpolicy -n $NAMESPACE

3. Semakan Konteks Keselamatan Pod

# Cari Pod dengan bekas istimewa atau allowPrivilegeEscalation
kubectl get pods --all-namespaces -o jsonpath="{range .items[*]}{.metadata.namespace}{' '}{.metadata.name}{' '}{.spec.containers[*].securityContext.privileged}{'\\n'}{end}" | grep true
# Periksa tetapan PodSecurityAdmission
kubectl get pods -n $NAMESPACE -o yaml | grep -A5 "pod-security.kubernetes.io/enforce"

Kawalan Risiko & Perintah Pengukuhan

1. Ketatkan RBAC

# Cipta Role dan RoleBinding dengan hak minimum (contoh: akses baca sahaja untuk Pod dalam ruang nama)
kubectl create role pod-reader --verb=get,list,watch --resource=pods -n $NAMESPACE
kubectl create rolebinding $USER-pod-reader --role=pod-reader --user=$USER -n $NAMESPACE
# Padam ClusterRoleBinding yang terlalu permisif
kubectl delete clusterrolebinding overpermissive-binding

2. Guna Polisi Rangkaian

# Tolak semua trafik masuk dan keluar secara lalai, kemudian izinkan komunikasi perlu
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: $NAMESPACE
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress
kubectl apply -f default-deny-all.yaml
# Tambah polisi izinkan, cth., Pod hadapan boleh berkomunikasi dengan Pod belakang

3. Guna Piawaian Keselamatan Pod

# Dayakan Pod Security Admission pada tahap restricted di ruang nama
kubectl label ns $NAMESPACE pod-security.kubernetes.io/enforce=restricted
kubectl label ns $NAMESPACE pod-security.kubernetes.io/warn=restricted

Sandaran Selamat & Undur

Sebelum menggunakan perubahan, sandarkan sumber semasa:

kubectl get clusterrolebinding -o yaml > clusterrolebinding-backup.yaml
kubectl get rolebinding -A -o yaml > rolebinding-backup.yaml
kubectl get networkpolicy -A -o yaml > networkpolicy-backup.yaml

Untuk mengundur:

kubectl apply -f clusterrolebinding-backup.yaml
kubectl apply -f rolebinding-backup.yaml
kubectl apply -f networkpolicy-backup.yaml
kubectl label ns $NAMESPACE pod-security.kubernetes.io/enforce-  # buang label

Pengesahan

Ulang perintah diagnosis untuk mengesahkan sekatan:

kubectl auth can-i list pods --as=$USER -n $NAMESPACE  # sepatutnya kembali yes
kubectl auth can-i list nodes --as=$USER  # sepatutnya kembali no
kubectl get pods -n $NAMESPACE -o yaml | grep privileged  # tiada output

Bila Hantar Tiket OpsGlobal

  • Pasukan anda tidak dapat mentafsir penafian log audit yang kompleks.
  • Anda memerlukan polisi keselamatan yang konsisten merentas berbilang kluster.
  • Anda berdepan keperluan pematuhan peraturan (cth. PCI-DSS) tanpa kepakaran dalaman.
  • Pengukuhan memecahkan aplikasi secara tidak dijangka dan anda memerlukan debug pakar.

Jurutera SRE OpsGlobal boleh mendiagnosis dari jauh dan melaksanakan konfigurasi keselamatan bertaraf bank, memastikan kluster anda memenuhi amalan terbaik industri.

Senario Penggunaan

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

Latar Belakang Masalah

Pos ini membincangkan senario sebenar salah konfigurasi RBAC dan konteks keamanan Pod yang terlalu permisif dalam kluster Kubernetes, dengan langkah demi langkah diagnosis, perintah pengukuhan, prosedur undur, dan teknik 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