Senario
Kluster Kubernetes (v1.28) platform e-dagang mengalami kegagalan tidak dijangka: gangguan saluran paip CI dan pemadaman Pod. Audit keselamatan mendedahkan ServiceAccount bukan pentadbir dengan keistimewaan cluster-admin dan panggilan API tidak sah. Pasukan perlu mengeraskan keselamatan dengan segera.
Gejala
- Pod dimulakan semula atau dipadam secara tidak dijangka
- Panggilan API tidak sah dalam log audit
- Pengikatan RBAC berisiko tinggi
- Rahsia sensitif terdedah
Diagnosis
- Periksa keizinan RBAC:
bash kubectl get clusterrolebindings -o wide | grep -v system: kubectl get rolebindings --all-namespaces -o wide - Log audit: Dayakan pengauditan dan tapis aktiviti mencurigakan:
bash kubectl logs -n kube-system kube-apiserver --tail=1000 | grep -E "User|verb=delete|verb=create" - Semak Dasar Keselamatan Pod (PSP) atau Kemasukan Keselamatan Pod (PSA):
bash kubectl get psp -A kubectl get podsecurityconfiguration -A - Periksa penggunaan Rahsia:
bash kubectl get secrets --all-namespaces | grep -E "token|cert|pass"
Perintah (Pengerasan)
- Buang ClusterRoleBinding berbahaya:
bash kubectl delete clusterrolebinding malicious-binding - Guna RBAC keistimewaan minimum:
yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: production name: readonly rules: - apiGroups: [""] resources: ["pods", "services"] verbs: ["get", "list", "watch"] - Kuatkuasa Piawaian Keselamatan Pod (garis dasar):
bash kubectl label ns production pod-security.kubernetes.io/enforce=baseline - Keras dasar rangkaian:
```yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all
namespace: production
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress ```
- Putar rahsia:
bash kubectl delete secret my-secret kubectl create secret generic my-secret --from-literal=key=NILAI_BAHARU
Kawalan Risiko
- Uji semua perubahan dalam bukan produksi terlebih dahulu.
- Sandarkan RBAC dan dasar rangkaian sedia ada:
bash kubectl get clusterrolebindings -o yaml > backup-clusterrolebindings.yaml kubectl get networkpolicies --all-namespaces -o yaml > backup-networkpolicies.yaml - Gunakan
kubectl auth can-iuntuk mengesahkan keizinan:bash kubectl auth can-i create deployments --as=system:serviceaccount:production:my-sa
Rollback
- Kembalikan RBAC:
bash kubectl apply -f backup-clusterrolebindings.yaml - Kembalikan dasar rangkaian:
bash kubectl apply -f backup-networkpolicies.yaml - Buang label Keselamatan Pod:
bash kubectl label ns production pod-security.kubernetes.io/enforce-
Pengesahan
- Sahkan pengetatan RBAC:
bash kubectl auth can-i delete pods --as=system:serviceaccount:production:app-sa - Uji pengasingan rangkaian:
bash kubectl exec -n production test-pod -- curl -m 3 http://other-servicesepatutnya tamat masa. - Pastikan rahsia tidak terdedah:
bash kubectl get secrets --all-namespaces -o json | jq '.items[] | select(.type=="Opaque") | .data | keys'
Bila Serahkan Tiket OpsGlobal
- Serangan berterusan yang memerlukan pembendungan segera.
- Insiden P0 kecemasan (contohnya, bukti kelayakan terjejas).
- Audit pematuhan (SOC2, PCI) memerlukan penilaian pakar.
- Kekurangan kepakaran keselamatan Kubernetes dalaman.
OpsGlobal menyediakan sokongan SRE jarak jauh 24/7 untuk diagnosis dan pemulihan pantas, memastikan keselamatan platform.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Security dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Artikel ini menyediakan pendekatan hands-on untuk mengeraskan keselamatan kluster Kubernetes, meliputi RBAC, Piawaian Keselamatan Pod, dasar rangkaian, dan pengurusan rahsia, dengan aliran kerja lengkap dari diagnosis hingga rollback untuk pasukan SRE.
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.