Senario
Pasukan SRE menguruskan beberapa kluster Kubernetes dengan konfigurasi RBAC lalai yang membenarkan pemaju mencipta Pod istimewa. Audit keselamatan mendedahkan Pod berniat jahat yang memasang direktori hos untuk mendapatkan akses nod.
Simptom
- Pod yang tidak dikenali muncul dengan host volume mount.
- Log audit menunjukkan pengguna bukan admin menggunakan
privileged: trueatauhostPID: true. - Pengimbas keselamatan melaporkan dasar keselamatan Pod hilang.
Diagnosis
- Periksa ikatan RBAC:
kubectl get clusterrolebindings -o wideuntuk mencari ikatancluster-adminyang terlalu luas. - Periksa status PodSecurityPolicy (PSP) atau Pod Security Admission (PSA):
kubectl get pspataukubectl get admissionregistration.k8s.io/v1/mutatingwebhookconfigurations. - Audit spesifikasi Pod:
kubectl get pods --all-namespaces -o jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.spec.containers[*].securityContext.privileged}{'\n'}{end}".
Arahan Pengukuhan
- Gunakan standard Pod Security (PSA):
kubectl label ns default pod-security.kubernetes.io/enforce=restricted. - Cipta RBAC minima: Ikat pemaju kepada Role yang hanya mempunyai kebenaran
get,list, elakkancluster-admin.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: developer-restricted
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
- Buang ClusterRoleBinding berisiko:
kubectl delete clusterrolebinding <nama>.
Kawalan Risiko
- Uji label PSA dalam persekitaran bukan pengeluaran untuk elakkan kesan pada beban kerja yang sedang berjalan.
- Guna mod audit dahulu, kemudian tukar ke enforce setelah mengkaji pelanggaran.
- Pastikan akaun admin pemecah (break-glass) untuk akses kecemasan.
Rollback
- Buang label PSA:
kubectl label ns default pod-security.kubernetes.io/enforce-. - Pulihkan RBAC: Guna semula sandaran RoleBinding sebelumnya.
Pengesahan
- Periksa PSA menolak Pod istimewa:
kubectl run test --image=nginx --privilegedsepatutnya ralat. - Sahkan bukan admin tidak boleh senaraikan rahsia kluster:
kubectl get secrets --as=developer.
Bila Hantar Tiket OpsGlobal
- Saiz kluster melebihi 20 nod dan memerlukan pengurusan dasar bersatu.
- Perlukan pengawal kemasukan tersuai atau dasar keselamatan dinamik.
- Pematuhan (contoh: PCI-DSS) memerlukan laporan audit profesional.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Security dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Panduan praktikal untuk mendiagnosis dan mengukuhkan kelemahan RBAC dan Pod Security Kubernetes, dengan langkah-langkah arahan, kawalan risiko, rollback, dan pengesahan. Sesuai untuk pasukan SRE yang ingin meningkatkan keselamatan platform.
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.