Melakukan hardening pada keamanan cluster Anda

Dengan cepatnya ritme pengembangan di Kubernetes, akan sering diperkenalkan fitur keamanan baru yang dapat Anda gunakan. Dokumen ini menjelaskan cara memperkuat cluster Google Distributed Cloud.

Dokumen ini memprioritaskan mitigasi keamanan bernilai tinggi yang mengharuskan pada saat pembuatan cluster. Fitur yang tidak terlalu penting, aman secara default setelan, dan setelan yang dapat diaktifkan setelah pembuatan cluster disebutkan nanti di dalam dokumen. Untuk mengetahui ringkasan umum tentang topik keamanan, baca Keamanan.

Checklist

Checklist deployment berikut menyoroti praktik terbaik untuk melakukan hardening Deployment platform cluster GKE. Untuk informasi selengkapnya tentang setiap latihan, lihat bagian dalam dokumen ini.

Checklist deployment Deskripsi
Kontrol akses dan identitas

Menggunakan hak istimewa akun vSphere:
Gunakan akun administrator vSphere dengan hak istimewa minimal.

Mengamankan akun layanan Google Cloud:
Meminimalkan hak istimewa akun layanan Google Cloud.

Mengonfigurasi OpenID Connect (OIDC):
Mengonfigurasi OpenID Connect untuk autentikasi pengguna.

Gunakan namespace Kubernetes dan RBAC untuk membatasi akses:
Gunakan namespace dengan RBAC untuk isolasi administratif dan paling sedikit peran dan hak istimewa.

Perlindungan data

Enkripsi virtual machine vSphere:
Setel vSphere untuk mengenkripsi volume yang digunakan oleh Google Distributed Cloud.

Mengelola secret:
Enkripsi dalam penyimpanan.

Perlindungan jaringan

Membatasi akses jaringan ke bidang kontrol dan node:
Siapkan kontrol untuk mengisolasi dan melindungi jaringan bidang kontrol dan node.

Gunakan kebijakan jaringan untuk membatasi traffic:
Mengimplementasikan kebijakan jaringan untuk membatasi traffic intra-cluster.

Keamanan deklaratif

Gunakan Pengontrol Kebijakan:
Instal Pengontrol Kebijakan untuk deklaratif kebijakan keamanan dalam cluster Anda.

Pemeliharaan

Upgrade GKE Enterprise:
Pastikan Anda menjalankan GKE Enterprise versi terbaru untuk platform Anda.

Pantau buletin keamanan:
Periksa buletin keamanan GKE Enterprise untuk mendapatkan saran terbaru dan panduan pembuatan versi.

Pemantauan dan logging

Tetapkan opsi untuk logging cluster GKE:
Pastikan logging diaktifkan dan diintegrasikan ke dalam solusi SIEM.

Kontrol akses dan identitas

Bagian ini memberikan informasi tentang cara mengontrol akses ke cluster Anda.

Gunakan 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 ditugaskan peran Administrator vCenter memiliki hak istimewa untuk akses lengkap ke semua vCenter objek dan menyediakan cluster Google Distributed Cloud yang memiliki akses penuh.

Prinsip hak istimewa terendah adalah disarankan, hanya memberikan hak istimewa yang diperlukan agar berhasil menginstal GKE Enterprise. Kami telah menetapkan serangkaian minimum dari hak istimewa yang diperlukan untuk melakukan instalasi, serta perintah diperlukan untuk memberikan izin ini.

Akun layanan Google Cloud yang aman

Google Distributed Cloud memerlukan tiga layanan Google Cloud akun:

  • Akun layanan yang telah ditetapkan untuk mengakses Google Distributed Cloud software. Anda membuatnya saat membeli GKE Enterprise.
  • Akun layanan pendaftaran yang akan digunakan oleh Hubungkan untuk mendaftar Cluster Google Distributed Cloud dengan Google Cloud.
  • Akun layanan Cloud Logging untuk mengumpulkan log cluster yang akan digunakan oleh Cloud Logging.

Selama penginstalan, Anda akan mengikat peran Identity and Access Management ke akun layanan ini. Peran tersebut memberikan hak istimewa spesifik ke akun layanan dalam project Anda dan dapat dibuat untuk Anda selama instalasi.

Mengonfigurasi autentikasi untuk pengguna cluster

Untuk mengonfigurasi autentikasi pengguna untuk cluster, Anda dapat menggunakan OpenID Connect (OIDC) atau Lightweight Directory Access Protocol (LDAP).

Untuk mengetahui informasi selengkapnya, lihat GKE Identity Service.

Menggunakan namespace Kubernetes dan RBAC untuk membatasi akses

Untuk memberi tim akses dengan hak istimewa terendah ke Kubernetes, buat Kubernetes Namespace atau klaster yang spesifik per lingkungan. Tetapkan pusat biaya dan label yang sesuai untuk setiap namespace untuk akuntabilitas dan penagihan balik. Hanya berikan tingkat akses ke Namespace mereka yang perlu mereka 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 cluster- dan izin level namespace, gunakan Kubernetes RBAC.

Di luar izin untuk layanan Google Cloud akun 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 menyarankan agar Anda mengenkripsi semua data dengan beristirahat. Untuk melakukannya di vSphere, ikuti Konfigurasi Keamanan VMware vSphere 7 & Panduan Hardening dan panduan praktik terbaik untuk enkripsi VM.

Hal ini harus dilakukan sebelum penginstalan GKE Enterprise.

Kelola rahasia

Untuk memberikan lapisan perlindungan tambahan bagi data sensitif, seperti Kubernetes Rahasia disimpan di etcd, mengonfigurasi secret manager yang terintegrasi dengan Google Distributed Cloud klaster.

Jika Anda menjalankan beban kerja di beberapa lingkungan, Anda mungkin lebih memilih solusi yang sesuai untuk Google Kubernetes Engine dan Google Distributed Cloud. Jika Anda memilih untuk menggunakan pengelola rahasia eksternal, seperti HashiCorp Vault, menyiapkannya sebelum mengintegrasikan cluster Google Distributed Cloud Anda.

Anda memiliki beberapa opsi untuk pengelolaan secret:

  • Anda dapat menggunakan Secret Kubernetes secara native di Google Distributed Cloud. Kami berharap cluster akan menggunakan vSphere enkripsi untuk VM seperti yang dijelaskan sebelumnya, yang memberikan enkripsi dalam penyimpanan untuk rahasia. Rahasia tidak lagi dienkripsi secara default.
  • Anda dapat menggunakan pengelola rahasia eksternal, seperti HashiCorp Vault. Anda dapat mengotentikasi ke HashiCorp menggunakan akun layanan Kubernetes atau akun layanan Google Cloud.

Untuk informasi selengkapnya, lihat dokumentasi berikut:

Perlindungan jaringan

Bagian ini memberikan informasi tentang cara melindungi jaringan Anda.

Membatasi akses jaringan ke bidang kontrol dan node

Batasi eksposur bidang kontrol cluster dan node Anda ke internet. Pilihan ini tidak dapat diubah setelah pembuatan cluster. Secara {i>default<i}, Node cluster Google Distributed Cloud dibuat menggunakan RFC 1918, dan adalah praktik terbaik untuk tidak mengubah ini. Terapkan aturan {i>firewall<i} di jaringan lokal untuk membatasi akses ke bidang kontrol.

Menggunakan kebijakan jaringan untuk membatasi traffic

Secara default, semua Layanan di cluster Google Distributed Cloud dapat berkomunikasi satu sama lain. Untuk informasi tentang mengontrol Komunikasi Service-to-Service sesuai kebutuhan workload Anda, lihat referensi berikut bagian.

Membatasi akses jaringan ke layanan membuat pengguna lebih sulit penyerang bergerak secara lateral di dalam cluster Anda dan menawarkan beberapa layanan perlindungan terhadap denial of service yang tidak disengaja atau disengaja. Ada dua cara yang disarankan untuk mengontrol traffic:

  • Untuk mengontrol traffic L7 ke aplikasi Anda' endpoint, gunakan Istio. Pilih opsi ini jika Anda tertarik pada load balancing, otorisasi layanan, throttling, kuota, dan metrik.
  • Untuk mengontrol traffic L4 antar Pod, gunakan jaringan Kubernetes kebijakan yang relevan. Pilih opsi ini jika Anda mencari 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 bersama-sama jika Anda perlu tempat mesin terhubung.

Untuk informasi selengkapnya, lihat dokumentasi berikut:

Keamanan deklaratif

Bagian ini memberikan rekomendasi untuk mengamankan cluster Anda.

Menggunakan Pengontrol Kebijakan

Tiket masuk Kubernetes pengontrol adalah plugin yang mengatur dan menerapkan cara penggunaan cluster Kubernetes. Tiket masuk sebagai bagian penting dari pendekatan pertahanan mendalam untuk melakukan hardening cluster Anda.

Praktik terbaik adalah menggunakan Pengontrol Kebijakan. Pengontrol Kebijakan menggunakan Framework Batasan OPA untuk menggambarkan dan menegakkan kebijakan sebagai CRD. Batasan yang Anda terapkan pada ditentukan dalam template batasan, yang di-deploy di klaster.

Untuk mengetahui informasi tentang cara menggunakan batasan Pengontrol Kebijakan guna mencapai banyak perlindungan yang sama dengan PodSecurityPolicies, dengan kemampuan tambahan untuk menguji kebijakan sebelum menerapkannya, lihat Menggunakan batasan untuk menerapkan Pod keamanan.

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, beban kerja tidak boleh diberi izin untuk memodifikasi sendiri fitur tersebut. 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 melewatkan kebijakan dan logging serta pemantauan pipeline. Hal ini diperlukan agar {i>controller<i} dapat melakukan perubahan ke cluster, seperti menerapkan upgrade cluster. Misalnya, jika Anda men-deploy kebijakan NoUpdateServiceAccount di Google Distributed Cloud, Anda harus menyetel parameter berikut dalam 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 memelihara cluster Anda.

Mengupgrade GKE Enterprise

Kubernetes secara rutin memperkenalkan fitur keamanan baru dan memberikan keamanan patching.

Anda bertanggung jawab untuk menjaga cluster Google Distributed Cloud tetap tinggi hingga saat ini. Untuk setiap rilis, tinjau catatan rilis. Selain itu, rencanakan untuk mengupdate ke rilis patch baru setiap bulan dan versi minor setiap tiga bulan berikutnya. Pelajari cara mengupgrade cluster.

Anda juga bertanggung jawab untuk mengupgrade dan mengamankan vSphere infrastruktur:

Memantau buletin keamanan

Tim keamanan GKE Enterprise memublikasikan buletin keamanan kerentanan dengan tingkat keparahan yang tinggi dan kritis.

Buletin ini mengikuti penomoran kerentanan Google Cloud 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.

Ketika tindakan pelanggan diperlukan untuk mengatasi masalah ini, kerentanan, Google akan menghubungi pelanggan melalui email. Selain itu, Google mungkin juga menghubungi pelanggan dengan kontrak dukungan melalui saluran dukungan.

Untuk informasi selengkapnya, lihat dokumentasi berikut:

Monitoring dan logging

Google Distributed Cloud mencakup beberapa opsi untuk logging cluster dan pemantauan, termasuk layanan terkelola berbasis cloud, alat open source, dan kompatibilitas yang tervalidasi dengan solusi komersial pihak ketiga:

  • Cloud Logging dan Cloud Monitoring, diaktifkan oleh agen dalam cluster yang di-deploy dengan Google Distributed Cloud
  • Konfigurasi yang divalidasi dengan solusi pihak ketiga

Apa pun solusi pencatatan yang Anda pilih berdasarkan kebutuhan bisnis, kami sangat menyarankan pencatatan log peristiwa dan pemberitahuan yang relevan ke depan ke server layanan informasi keamanan dan manajemen peristiwa (SIEM) untuk pengelolaan yang sama dengan kemungkinan adanya insiden keamanan.

Untuk informasi selengkapnya, lihat dokumentasi berikut: