Dengan mengaktifkan kebijakan keamanan pod, Anda memastikan bahwa namespace yang disusupi (selain istio-system
) tidak memengaruhi keamanan namespace lain yang menggunakan node yang sama. Contoh
file resource PodSecurityPolicy
yang berfungsi dengan Mesh CA
disediakan dengan Anthos Service Mesh. Anda dapat mengubah file ini sesuai kebutuhan. Sebagai berikut, Anda harus menerapkan kebijakan keamanan pod terlebih dahulu, lalu mengaktifkan kebijakan keamanan pod untuk cluster GKE.
Mengaktifkan kebijakan keamanan pod
Periksa apakah sistem Anda sudah menetapkan kebijakan keamanan pod:
kubectl get psp --all-namespaces
Jika perintah ini menampilkan daftar kebijakan yang ada, berarti sistem Anda telah menerapkan kebijakan keamanan pod. Sebaiknya Anda menyediakan file YAML
PodSecurityPolicy
yang sudah ada untuk mengantisipasi jika Anda perlu melakukan rollback. Anda perlu menambahkan bagian berikut ke bagianspec
di setiap kebijakan keamanan pod yang sudah ada, kecuali kebijakan yang dimulai dengangce
.allowedHostPaths: - pathPrefix: "/var/run/sds" readOnly: true allowedCapabilities: - NET_ADMIN - NET_RAW
Baris ini memungkinkan pembacaan dari jalur host
/var/run/sds
, dan memungkinkan injeksi file bantuan otomatis.Anda dapat menggunakan
kubectl
untuk mengedit dan menerapkan kebijakan keamanan pod di Kubernetes:kubectl edit psp YOUR_EXISTING_POD_SECURITY_POLICY
Jika perintah tersebut menampilkan
No resources found
, berarti Anda tidak memiliki kebijakan keamanan pod yang ditentukan. Anda mungkin masih perlu memodifikasi filesamples/security/psp/all-pods-psp.yaml
untuk memastikannya tidak bentrok dengan workload yang ada. Untuk mengetahui detail selengkapnya, lihat panduan Kebijakan Keamanan Pod. Setelah mengubah file, terapkan:kubectl apply -f "samples/security/psp/all-pods-psp.yaml"
Terapkan kebijakan keamanan pod untuk mengamankan Secret Discovery Service (SDS):
kubectl apply -f "samples/security/psp/citadel-agent-psp.yaml"
Hal ini memberikan hak istimewa kepada agen Citadel (juga disebut sebagai Agen Node) untuk membuat jalur UDS
/var/run/sds
di VM host.Jalankan perintah berikut untuk mengaktifkan kebijakan keamanan pod:
gcloud beta container clusters update ${CLUSTER_NAME} \ --enable-pod-security-policy
Mengaktifkan kebijakan keamanan pod mungkin memerlukan waktu beberapa menit. Selama proses ini, beban kerja yang ada tidak akan dapat terhubung ke master Kubernetes. Tunggu hingga master Kubernetes aktif lagi. Anda dapat memeriksa status cluster di Google Cloud Console di halaman cluster Kubernetes.
Untuk mengetahui informasi selengkapnya, baca artikel Menggunakan kebijakan keamanan pod.
Memverifikasi kebijakan keamanan pod
Jika Anda sudah memiliki beban kerja, sebaiknya verifikasi bahwa beban kerja tersebut dapat di-deploy dengan kebijakan keamanan pod yang baru.
Pilih deployment yang ingin diperiksa dan tingkatkan replikanya. Misalnya, jika layanan yang ditentukan memiliki 1 replika, tingkatkan 1 replika:
kubectl scale deployment YOUR_DEPLOYMENT --replicas=2 -n YOUR_NAMESPACE
Pastikan bahwa deployment mengalami peningkatan skala:
kubectl get deploy
Memastikan bahwa beban kerja baru dapat di-deploy. Ini berarti bahwa kebijakan keamanan pod tidak memengaruhi deployment beban kerja untuk layanan.
kubectl get deployment YOUR_SERVICE -n YOUR_NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE YOUR_SERVICE 2/2 2 2 ...
Menurunkan skala replika layanan:
kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
Jika beban kerja tidak berhasil di-deploy, Anda dapat menonaktifkan kebijakan keamanan pod untuk sementara selagi memperbaiki file YAML:
gcloud beta container clusters update ${CLUSTER_NAME} \ --no-enable-pod-security-policy