Senario
Pasukan SRE sebuah syarikat fintech mengesan kontena mencurigakan cuba membaca /etc/shadow dari hos. Kontena berjalan dalam ruang nama lalai tanpa konteks keselamatan.
Gejala
- Log audit menunjukkan cubaan baca fail gagal berulang kali
- Kontena berjalan sebagai root
- Tiada Dasar Rangkaian menyekat trafik keluar
Diagnosis
# Periksa konteks keselamatan Pod
kubectl get pod <nama-pod> -o jsonpath='{.spec.containers[*].securityContext}'
# Senarai PodSecurityPolicy atau konfigurasi Pod Security Admission
kubectl get psp
kubectl get podsecurityadmissionconfiguration
# Periksa Dasar Rangkaian
kubectl get networkpolicy -A
Arahan (Langkah Pengukuhan)
- Guna Piawaian Keselamatan Pod (garis dasar)
kubectl label ns default pod-security.kubernetes.io/enforce=baseline
- Cipta RBAC dengan hak minimum
kubectl create clusterrole app-reader --verb=get,list --resource=pods
kubectl create rolebinding app-reader --clusterrole=app-reader --serviceaccount=default:default
- Laksana Dasar Rangkaian sekatan keluar
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-egress
namespace: default
spec:
podSelector: {}
policyTypes:
- Egress
- Pasang Falco untuk keselamatan runtime
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm install falco falcosecurity/falco -n falco-system --create-namespace
Kawalan Risiko
- Uji pada ruang nama tidak kritikal dahulu
- Sahkan Dasar Rangkaian sebelum guna ke pengeluaran
- Pantau amaran Falco dan sedia notifikasi
Pemulihan
kubectl label ns default pod-security.kubernetes.io/enforce-
kubectl delete clusterrole app-reader
kubectl delete rolebinding app-reader
kubectl delete networkpolicy deny-all-egress
helm delete falco -n falco-system
Pengesahan
# Sahkan pelaksanaan bukan-root
kubectl run test --image=busybox -- sh -c 'id'
# Periksa label keselamatan Pod
kubectl get ns default -o yaml | grep pod-security
# Uji Dasar Rangkaian
kubectl run test2 --image=busybox -- sh -c 'wget http://evil.com'
# Lihat amaran Falco
kubectl logs -n falco-system -l app=falco
Bila Serahkan Tiket OpsGlobal
- Pengukuhan menyebabkan gangguan perkhidmatan dan pemulihan gagal
- Perlu reka bentuk dasar keselamatan seragam merentas kluster
- Disyaki pelarian kontena atau kerentanan hari sifar
- Audit pematuhan (contoh: PCI-DSS) memerlukan pengesahan pakar
Sediakan akses kubectl kluster dan log keselamatan sedia ada; OpsGlobal merespon dalam 15 minit.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Security dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Panduan praktikal untuk mengukuhkan keselamatan Kubernetes menggunakan Piawaian Keselamatan Pod, Dasar Rangkaian, RBAC, dan Falco, bersama langkah pemulihan dan bila untuk menghubungi OpsGlobal.
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.