Fitur governance kebijakan ACK (Container Service for Kubernetes) menyediakan kebijakan keamanan untuk lingkungan Kubernetes. Dokumen ini menjelaskan cara mengaktifkan kebijakan tersebut di kluster ACK dan menunjukkan efeknya.
Informasi latar belakang
Governance kebijakan
Sejak Kubernetes v1.21, PodSecurityPolicy (PSP) telah ditinggalkan. Sebagai respons, ACK telah meningkatkan fitur manajemen kebijakan berbasis PSP sebelumnya. Dibangun di atas admission controller Gatekeeper yang menggunakan kebijakan Open Policy Agent (OPA), ACK memperkaya fitur tersebut dengan kemampuan seperti statistik status governance kebijakan, pelaporan log, dan pencarian log. ACK juga mencakup pustaka kebijakan lengkap dengan aturan yang disesuaikan untuk berbagai skenario aplikasi Kubernetes. Anda dapat mengonfigurasi kebijakan ini melalui antarmuka pengguna yang ramah di Konsol ACK, sehingga menyederhanakan penggunaan governance kebijakan.
Jenis kebijakan dikategorikan sebagai berikut:
-
infra: kebijakan terkait resource lapisan infrastruktur.
-
compliance: kebijakan yang disesuaikan berdasarkan standar kepatuhan Kubernetes, seperti Alibaba Cloud Kubernetes Security Hardening.
-
psp: kebijakan yang menggantikan kemampuan Pod Security Policy (PSP).
-
k8s-general: kebijakan umum yang menerapkan batasan keamanan pada konfigurasi resource Kubernetes berdasarkan praktik keamanan terbaik.
Injeksi sidecar
Anda dapat mengabstraksi fungsionalitas dari kontainer aplikasi ke dalam proxy sidecar. Proxy ini berjalan sebagai kontainer terpisah dalam Pod yang sama. Untuk memanfaatkan fitur-fitur ini secara maksimal, setiap layanan dalam aplikasi harus menjalankan proxy sidecar di Pod-nya. Proxy sidecar tersebut mengintersepsi seluruh traffic TCP inbound dan outbound untuk layanan tersebut dan berkomunikasi dengan lapisan kontrol Service Mesh.
Prasyarat
-
Kluster menjalankan Kubernetes 1.16 atau versi lebih baru. Untuk meningkatkan kluster Anda, lihat Tingkatkan kluster ACK secara manual.
-
Jika Anda menggunakan RAM user untuk mengelola kebijakan, pastikan RAM user tersebut memiliki izin berikut:
-
cs:DescribePolicies: menampilkan daftar kebijakan dalam pustaka kebijakan. -
cs:DescribePolicyDetails: mendapatkan detail templat kebijakan. -
cs:DescribePolicyGovernanceInCluster: mendapatkan detail governance kebijakan kluster. -
cs:DescribePolicyInstances: menampilkan daftar instance kebijakan yang diterapkan di kluster. -
cs:DescribePolicyInstancesStatus: mendapatkan status penerapan instance kebijakan untuk berbagai jenis kebijakan di kluster. -
cs:DeployPolicyInstance: menerapkan instance kebijakan di kluster tertentu. -
cs:DeletePolicyInstance: menghapus instance kebijakan di kluster tertentu. -
cs:ModifyPolicyInstance: mengubah instance kebijakan di kluster tertentu.
Untuk informasi lebih lanjut tentang cara membuat kebijakan RAM kustom, lihat Berikan izin akses ke kluster dan sumber daya cloud menggunakan RAM.
-
Prosedur
Saat kebijakan ini diaktifkan, upaya membuat Pod di namespace yang ditentukan akan gagal atau menghasilkan peringatan keamanan berisiko tinggi serta log audit pelanggaran.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Pada halaman Policy Governance, instal atau tingkatkan komponen jika diminta. Lalu, aktifkan kebijakan dengan salah satu metode berikut.
-
Aktifkan kebijakan injeksi wajib dari daftar kebijakan keamanan.
-
Klik tab My Policies untuk melihat semua kebijakan yang dapat diterapkan untuk kluster.
-
Dalam daftar kebijakan, temukan kebijakan ASMSidecarInjectionEnforced dan klik Enable di kolom Actions.
-
Konfigurasikan kebijakan sesuai tabel berikut dan klik Create.
Parameter
Deskripsi
Action
Pilih tindakan:
-
Block: Memblokir penerapan resource tertentu yang melanggar aturan kebijakan.
-
Alert: Mengizinkan penerapan resource tertentu yang melanggar aturan kebijakan, tetapi menghasilkan log peringatan audit pelanggaran yang sesuai.
Applicable Scope
Tentukan namespace di kluster tempat instance kebijakan berlaku. Anda juga dapat menerapkan kebijakan ke semua namespace, tetapi hal ini tidak disarankan.
Parameters
Biarkan bidang ini kosong.
-
-
-
Buat instance kebijakan secara langsung.
Klik tab My Policies lalu klik Create Policy Instance. Pada kotak dialog Create Policy Instance, konfigurasikan parameter-parameter berikut.
Parameter
Deskripsi
Policy Type
Pilih jenis kebijakan infra. Untuk informasi lebih lanjut, lihat Kebijakan keamanan pra-definisi untuk ACK.
Policy Name
Dari daftar drop-down Policy Name, pilih templat kebijakan ASMSidecarInjectionEnforced.
Action
Pilih tindakan:
-
Block: Memblokir penerapan resource tertentu yang melanggar aturan kebijakan.
-
Alert: Mengizinkan penerapan resource tertentu yang melanggar aturan kebijakan, tetapi menghasilkan log peringatan audit pelanggaran yang sesuai.
Applicable Scope
Tentukan namespace di kluster tempat instance kebijakan berlaku. Anda juga dapat menerapkan kebijakan ke semua namespace, tetapi hal ini tidak disarankan.
Parameters
Biarkan bidang ini kosong.
-
-
-
Verifikasi kebijakan.
-
Pengujian ini mengasumsikan bahwa injeksi otomatis tidak diaktifkan untuk namespace
defaultdan kebijakan injeksi wajib diaktifkan dengan Action diatur ke Block.-
Periksa workload.
Pod gagal dibuat.
Penyebaran httpbin menunjukkan status replika 0/1, dan pesan error berikut ditampilkan:
admission webhook "validation.gatekeeper.sh" denied the request: Pod must contain at least one container or initContainer named 'istio-proxy'. -
Klik tab Overview. Catatan blokir muncul dalam daftar Actions within Last 7 Days.
Catatan tersebut menunjukkan bahwa jenis kebijakan adalah infra, nama kebijakan adalah ASMSidecarInjectionEnforced, dan deskripsi kebijakan adalah "Requires ASM sidecar injection for pods". Detailnya menampilkan pesan
Pod must contain at least one container or initContainer named 'istio-proxy'.
-
Edit kebijakan dan ubah Action menjadi Warning.
-
Terapkan ulang aplikasi httpbin.
-
Periksa workload.
Aplikasi berhasil diterapkan.
Pada halaman Stateless, status pod untuk aplikasi httpbin adalah 1/1, dan aplikasi berjalan sesuai harapan.
-
Klik tab Overview. Catatan peringatan muncul dalam daftar Actions within Last 7 Days.
Catatan peringatan tersebut menunjukkan bahwa jenis kebijakan adalah infra, nama kebijakan adalah ASMSidecarInjectionEnforced, deskripsi kebijakan adalah "Requires ASM sidecar injection for pods", tindakan adalah Alert, dan detailnya menampilkan pesan
Pod must contain at least one sidecar.
-
-