Dengan cepatnya ritme pengembangan di Kubernetes, akan sering diperkenalkan fitur keamanan baru yang dapat Anda gunakan. Dokumen ini menjelaskan cara meningkatkan keamanan cluster Google Distributed Cloud Anda.
Dokumen ini memprioritaskan mitigasi keamanan penting yang memerlukan tindakan Anda saat pembuatan cluster. Fitur yang kurang penting, setelan yang aman secara default, dan fitur yang dapat diaktifkan setelah pembuatan cluster akan dibahas nanti dalam dokumen ini. Untuk ringkasan umum tentang topik keamanan, tinjau Keamanan.
Checklist
Checklist deployment berikut menyoroti praktik terbaik untuk mengoptimalkan deployment platform cluster GKE Anda. Untuk mengetahui informasi selengkapnya tentang setiap praktik, lihat bagian dalam dokumen ini.
Checklist deployment | Deskripsi |
---|---|
Kontrol akses dan identitas | Gunakan hak istimewa akun vSphere: Amankan akun layanan Google Cloud: Mengonfigurasi OpenID Connect (OIDC): Gunakan namespace Kubernetes dan RBAC untuk membatasi akses: |
Perlindungan data | Enkripsi virtual machine vSphere: Mengelola secret: |
Perlindungan jaringan | Membatasi akses jaringan ke bidang kontrol dan node: Gunakan kebijakan jaringan untuk membatasi traffic: |
Keamanan deklaratif | Gunakan Pengontrol Kebijakan: |
Pemeliharaan | Upgrade GKE Enterprise: Pantau buletin keamanan: |
Pemantauan dan logging | Tetapkan opsi untuk logging cluster GKE: |
Kontrol akses dan identitas
Bagian ini memberikan informasi tentang cara mengontrol akses ke cluster Anda.
Menggunakan hak istimewa akun vSphere
Akun pengguna vCenter yang Anda gunakan untuk menginstal Google Distributed Cloud harus memiliki hak istimewa yang memadai. Misalnya, akun pengguna yang diberi peran Administrator vCenter memiliki hak istimewa untuk akses lengkap ke semua objek vCenter dan memberikan akses penuh kepada administrator cluster Google Distributed Cloud.
Prinsip hak istimewa terendah direkomendasikan, yang hanya memberikan hak istimewa yang diperlukan agar berhasil menginstal GKE Enterprise. Kami telah menentukan serangkaian hak istimewa minimum yang diperlukan untuk melakukan penginstalan, serta perintah yang diperlukan untuk memberikan izin ini.
Mengamankan akun layanan Google Cloud
Google Distributed Cloud memerlukan tiga akun layanan Google Cloud:
- Akun layanan standar untuk mengakses software Google Distributed Cloud. Anda membuatnya saat membeli GKE Enterprise.
- Akun layanan terdaftar yang akan digunakan oleh Connect untuk mendaftarkan cluster Google Distributed Cloud ke Google Cloud.
- Akun layanan Cloud Logging untuk mengumpulkan log cluster yang akan digunakan oleh Cloud Logging.
Selama penginstalan, Anda mengikat peran Identity and Access Management ke akun layanan ini. Peran tersebut memberikan hak istimewa tertentu kepada akun layanan dalam project Anda dan dapat dibuat untuk Anda selama penginstalan.
Mengonfigurasi autentikasi untuk pengguna cluster
Untuk mengonfigurasi autentikasi pengguna untuk cluster, Anda dapat menggunakan OpenID Connect (OIDC) atau Lightweight Directory Access Protocol (LDAP).
Untuk informasi selengkapnya, lihat Layanan Identitas GKE.
Menggunakan namespace dan RBAC Kubernetes untuk membatasi akses
Untuk memberi tim akses hak istimewa terendah ke Kubernetes, buat Namespace Kubernetes atau cluster khusus lingkungan. Tetapkan pusat biaya dan label yang sesuai ke setiap namespace untuk akuntabilitas dan penagihan balik. Hanya berikan tingkat akses secukupnya kepada developer agar dapat mengakses Namespace untuk men-deploy dan mengelola aplikasi mereka, terutama dalam produksi.
Petakan tugas yang perlu diselesaikan pengguna terhadap cluster dan tentukan izin yang diperlukan untuk menyelesaikan setiap tugas. Untuk memberikan izin level cluster dan namespace, gunakan RBAC Kubernetes.
Selain izin untuk akun layanan Google Cloud yang digunakan untuk menginstal Google Distributed Cloud, IAM tidak berlaku untuk cluster Google Distributed Cloud.
Untuk informasi selengkapnya, lihat dokumentasi berikut:
Perlindungan data
Bagian ini memberikan informasi tentang cara melindungi data Anda.
Mengenkripsi virtual machine vSphere
Node cluster Google Distributed Cloud berjalan di virtual machine (VM) di cluster vSphere Anda. Google sangat merekomendasikan agar Anda mengenkripsi semua data dalam penyimpanan. Untuk melakukannya di vSphere, ikuti Panduan Konfigurasi & Hardening Keamanan VMware vSphere 7 dan panduan praktik terbaik untuk mengenkripsi VM.
Tindakan ini harus dilakukan sebelum penginstalan GKE Enterprise.
Mengelola secret
Untuk memberikan lapisan perlindungan tambahan bagi data sensitif, seperti Kubernetes Secret yang disimpan di etcd, konfigurasikan pengelola secret yang terintegrasi dengan cluster Google Distributed Cloud.
Jika menjalankan workload di beberapa lingkungan, Anda mungkin lebih memilih solusi yang berfungsi untuk Google Kubernetes Engine dan Google Distributed Cloud. Jika Anda memilih untuk menggunakan secret manager eksternal, seperti HashiCorp Vault, siapkan secret manager tersebut sebelum mengintegrasikan cluster Google Distributed Cloud.
Anda memiliki beberapa opsi untuk pengelolaan secret:
- Anda dapat menggunakan Kubernetes Secrets secara native di Google Distributed Cloud. Kami berharap cluster menggunakan enkripsi vSphere untuk VM seperti yang dijelaskan sebelumnya, yang memberikan perlindungan enkripsi dalam penyimpanan dasar untuk secret. Secret tidak dienkripsi lebih lanjut secara default.
- Anda dapat menggunakan secret manager eksternal, seperti HashiCorp Vault. Anda dapat melakukan autentikasi ke HashiCorp menggunakan akun layanan Kubernetes atau akun layanan Google Cloud.
Perlindungan jaringan
Bagian ini memberikan informasi tentang cara melindungi jaringan Anda.
Membatasi akses jaringan ke bidang kontrol dan node
Batasi eksposur node dan bidang kontrol cluster Anda ke internet. Pilihan ini tidak dapat diubah setelah cluster dibuat. Secara default, node cluster Google Distributed Cloud dibuat menggunakan alamat RFC 1918, dan sebaiknya jangan ubah alamat ini. Terapkan aturan firewall di jaringan lokal untuk membatasi akses ke platform kontrol.
Menggunakan kebijakan jaringan untuk membatasi traffic
Secara default, semua Layanan dalam cluster Google Distributed Cloud dapat saling berkomunikasi. Untuk informasi tentang cara mengontrol komunikasi Layanan ke Layanan sesuai kebutuhan untuk workload Anda, lihat bagian berikut.
Membatasi akses jaringan ke layanan dapat mempersempit ruang gerak penyerang dalam cluster Anda dan memberikan perlindungan tambahan terhadap denial of service baik yang disengaja maupun tidak. Ada dua cara yang direkomendasikan untuk mengontrol traffic:
- Untuk mengontrol traffic L7 ke endpoint aplikasi Anda, gunakan Istio. Pilih opsi ini jika Anda tertarik dengan load balancing, otorisasi layanan, throttling, kuota, dan metrik.
- Untuk mengontrol traffic L4 antar-Pod, gunakan kebijakan jaringan Kubernetes. Pilih cara ini jika Anda memerlukan kemampuan kontrol akses dasar yang dikelola oleh Kubernetes.
Anda dapat mengaktifkan kebijakan jaringan Istio dan Kubernetes setelah membuat cluster Google Distributed Cloud. Anda dapat menggunakannya secara bersamaan jika perlu.
Untuk informasi selengkapnya, lihat dokumentasi berikut:
Keamanan deklaratif
Bagian ini memberikan rekomendasi untuk mengamankan cluster Anda.
Menggunakan Pengontrol Kebijakan
Pengontrol penerimaan Kubernetes adalah plugin yang mengatur dan menerapkan cara penggunaan cluster Kubernetes. Pengontrol izin adalah bagian penting dari pendekatan pertahanan yang mendalam untuk melakukan hardening pada cluster Anda.
Praktik terbaiknya adalah menggunakan Policy Controller. Pengontrol Kebijakan menggunakan Framework Batasan OPA untuk mendeskripsikan dan menerapkan kebijakan sebagai CRD. Batasan yang Anda terapkan ke cluster ditentukan dalam template batasan, yang di-deploy di cluster Anda.
Untuk informasi tentang cara menggunakan batasan Pengontrol Kebijakan guna mendapatkan banyak perlindungan yang sama seperti PodSecurityPolicies, dengan kemampuan tambahan untuk menguji kebijakan Anda sebelum menerapkannya, lihat Menggunakan batasan untuk menerapkan keamanan Pod.
Untuk informasi selengkapnya, lihat dokumentasi berikut:
Membatasi kemampuan workload dalam modifikasi mandiri
Workload Kubernetes tertentu, terutama workload sistem, memiliki izin untuk menjalankan modifikasi mandiri Sebagai contoh, beberapa workload melakukan penskalaan otomatis secara vertikal. Meskipun berguna, ini akan memungkinkan penyerang yang telah menyusupi node untuk menjelajahi cluster lebih dalam lagi. Misalnya, penyerang dapat membuat workload pada node melakukan modifikasi mandiri untuk dijalankan sebagai akun layanan dengan hak istimewa yang berada di namespace yang sama.
Idealnya, workload seharusnya sejak awal tidak diizinkan untuk melakukan modifikasi mandiri. Jika memerlukan modifikasi mandiri, Anda dapat membatasi izin dengan menerapkan batasan Pemilah Komunikasi atau Pengontrol Kebijakan, seperti NoUpdateServiceAccount dari library open source Pemilah Komunikasi, yang memberikan beberapa solusi keamanan bermanfaat.
Saat Anda men-deploy kebijakan, biasanya Anda perlu mengizinkan pengontrol yang
mengelola siklus proses cluster untuk mengabaikan kebijakan serta pipeline logging dan
pemantauan. Hal ini diperlukan agar pengontrol dapat membuat perubahan
pada cluster, seperti menerapkan upgrade cluster. Misalnya, jika Anda men-deploy
kebijakan NoUpdateServiceAccount
di Google Distributed Cloud, Anda harus menetapkan
parameter berikut di Constraint
:
parameters:
allowedGroups:
- system:masters
allowedUsers:
- system:serviceaccount:kube-system:monitoring-operator
- system:serviceaccount:kube-system:stackdriver-operator
- system:serviceaccount:kube-system:metrics-server-operator
- system:serviceaccount:kube-system:logmon-operator
Pemeliharaan
Bagian ini memberikan informasi tentang cara mengelola cluster Anda.
Mengupgrade GKE Enterprise
Kubernetes secara rutin memperkenalkan fitur keamanan baru dan memberikan patch keamanan.
Anda bertanggung jawab untuk terus mengupdate kluster Google Distributed Cloud. Untuk setiap rilis, tinjau catatan rilis. Selain itu, rencanakan update ke rilis patch baru setiap bulan dan versi minor setiap tiga bulan. Pelajari cara mengupgrade cluster.
Anda juga bertanggung jawab untuk mengupgrade dan mengamankan infrastruktur vSphere:
- Buat proses untuk melakukan patch dan upgrade VM secara tepat waktu
- Terus ikuti advis keamanan VMware terbaru
- Ikuti panduan tentang menerapkan patch ke host
Memantau buletin keamanan
Tim keamanan GKE Enterprise memublikasikan buletin keamanan untuk kerentanan tingkat keparahan tinggi dan kritis.
Buletin ini mengikuti skema penomoran kerentanan Google Cloud yang umum dan ditautkan dari halaman buletin Google Cloud utama dan catatan rilis Google Distributed Cloud. Setiap halaman buletin keamanan memiliki feed RSS tempat pengguna dapat berlangganan info terbaru.
Jika tindakan pelanggan diperlukan untuk mengatasi kerentanan tinggi dan kritis ini, Google akan menghubungi pelanggan melalui email. Selain itu, Google juga dapat menghubungi pelanggan untuk memberikan kontrak dukungan melalui saluran dukungan.
Untuk informasi selengkapnya, lihat dokumentasi berikut:
Monitoring dan logging
Google Distributed Cloud mencakup beberapa opsi untuk logging dan pemantauan cluster, termasuk layanan terkelola berbasis cloud, alat open source, dan kompatibilitas yang divalidasi dengan solusi komersial pihak ketiga:
- Cloud Logging dan Cloud Monitoring, yang diaktifkan oleh agen dalam cluster yang di-deploy dengan Google Distributed Cloud
- Konfigurasi yang divalidasi dengan solusi pihak ketiga
Apa pun solusi logging yang Anda pilih berdasarkan persyaratan bisnis, sebaiknya catat peristiwa dan pemberitahuan yang relevan ke layanan informasi keamanan dan manajemen peristiwa (SIEM) terpusat untuk pengelolaan insiden keamanan.
Untuk informasi selengkapnya, lihat dokumentasi berikut:
- Logging dan pemantauan
- Menggunakan logging dan pemantauan
- Logging dan pemantauan aplikasi
- Memantau Google Distributed Cloud dengan Elastic Stack
- Mengumpulkan log di GKE Enterprise dengan Splunk Connect