Tempah Konsultasi Hantar Tiket

Mengeraskan Keselamatan Pod Kubernetes dengan OPA Gatekeeper dan Standard Keselamatan Pod

Pelajari cara menguatkuasakan Standard Keselamatan Pod (PSS) menggunakan OPA Gatekeeper untuk mengeraskan kluster Kubernetes anda terhadap eksploitasi biasa. Panduan ini merangkumi senario, diagnosis, pelaksanaan, pengembalian, dan pengesahan.

Mengeraskan Keselamatan Pod Kubernetes dengan OPA Gatekeeper dan Standard Keselamatan Pod
Security 6min 11 paparan 2026-06-21
KubernetesSREKeselamatan PodOPA Gatekeeper

Senario

Dalam kluster Kubernetes multi-penyewa, pasukan pembangunan menggunakan beban kerja, tetapi pasukan keselamatan perlu menguatkuasakan keselamatan pod tanpa menjejaskan aplikasi sedia ada. Banyak pod berjalan sebagai root, menggunakan bekas istimewa, atau menambah keupayaan berbahaya. Audit keselamatan mendedahkan banyak pelanggaran, dan semakan manual ditentang.

Gejala

  • Laporan audit keselamatan: banyak pod berjalan sebagai root, dengan akses istimewa, atau dengan keupayaan berbahaya.
  • Pembangun menentang semakan keselamatan manual; PodSecurityPolicy (PSP) telah usang dan kekurangan automasi.

Diagnosis

Gunakan kubectl untuk memeriksa konteks keselamatan pod:

kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace} {.metadata.name} {.spec.containers[*].securityContext.privileged}{.spec.containers[*].securityContext.runAsUser}{.spec.containers[*].securityContext.capabilities.add}{"\n"}{end}' | head -20

Periksa pod istimewa:

kubectl get pods --all-namespaces -o json | jq '.items[] | select(.spec.containers[].securityContext.privileged == true) | {namespace: .metadata.namespace, name: .metadata.name}'

Kenal pasti ruang nama yang perlu diperkukuhkan.

Perintah (Pelaksanaan)

  1. Pasang OPA Gatekeeper:
kubectl apply -f https://raw.githubusercontent.com/open-policy-agent/gatekeeper/master/deploy/gatekeeper.yaml
  1. Gunakan templat kekangan Standard Keselamatan Pod (Baseline dan Restricted):
apiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
  name: k8spspbaseline
spec:
  crd:
    spec:
      names:
        kind: K8sPSPBaseline
  targets:
    - target: admission.k8s.gatekeeper.sh
      rego: |
        package k8spspbaseline
        violation[{"msg": msg}] {
          # Laksanakan logik kekangan Baseline
          msg := sprintf("Pod %v dalam ruang nama %v melanggar Standard Keselamatan Pod Baseline", [input.review.object.metadata.name, input.review.object.metadata.namespace])
        }
  1. Gunakan kekangan dalam mod audit:
kubectl apply -f constraint.yaml --dry-run=server
  1. Kuatkuasakan pada ruang nama tertentu:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sPSPBaseline
metadata:
  name: pod-security-baseline
spec:
  match:
    namespaces: ["prod", "staging"]
  enforcementAction: dryrun

Kemudian tukar kepada warn atau deny.

Kawalan Risiko

  • Gunakan mod dryrun terlebih dahulu untuk mengumpul pelanggaran.
  • Kecualikan ruang nama yang menjalankan DaemonSet kritikal atau komponen sistem.
  • Tambah label security.opsglobal.io/exempt=true untuk melangkau pemeriksaan.
  • Uji sepenuhnya dalam persekitaran bukan pengeluaran.

Pengembalian

Padam templat kekangan dan contoh, atau kembali ke mod audit:

kubectl delete constrainttemplate k8spspbaseline
kubectl delete constraint pod-security-baseline

Pengesahan

Periksa status pelanggaran Gatekeeper:

kubectl get constrainttemplates
kubectl get K8sPSPBaseline -o yaml

Uji dengan pod contoh:

kubectl run nginx --image=nginx --restart=Never --dry-run=server -o yaml | kubectl apply -f -

Jika melanggar, ia sepatutnya ditolak atau diberi amaran.

Bila Serahkan Tiket OpsGlobal

  • Perlukan penguatkuasaan konsisten merentasi pelbagai kluster.
  • Pembangunan templat kekangan tersuai.
  • Penalaan prestasi (latensi Gatekeeper).
  • Mengendalikan pelanggaran berskala besar dengan pemulihan segera.

Senario Penggunaan

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

Latar Belakang Masalah

Pelajari cara menguatkuasakan Standard Keselamatan Pod (PSS) menggunakan OPA Gatekeeper untuk mengeraskan kluster Kubernetes anda terhadap eksploitasi biasa. Panduan ini merangkumi senario, diagnosis, pelaksanaan, pengembalian, 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