Tolok Ukur CIS

Halaman ini menjelaskan pendekatan yang digunakan Google Kubernetes Engine (GKE) untuk meningkatkan kepatuhan terhadap tolok ukur Center for Internet Security (CIS) untuk Kubernetes dan GKE. Halaman ini mencakup informasi berikut:

  • Cara kami mengonfigurasi bidang kontrol GKE terkelola agar sesuai dengan Tolok Ukur Kubernetes CIS
  • Cara Anda dapat mengonfigurasi node dan workload GKE agar sesuai dengan Tolok Ukur Google Kubernetes Engine (GKE) CIS

Tentang Tolok Ukur CIS

CIS merilis tolok ukur berikut yang berisi panduan konfigurasi aman untuk Kubernetes:

  • Tolok Ukur Kubernetes CIS: Berlaku untuk project Kubernetes open source. Bertujuan untuk memberikan panduan bagi berbagai implementasi Kubernetes yang dihosting dan dikelola sendiri.
  • Tolok Ukur GKE CIS: Menetapkan panduan untuk konfigurasi aman komponen yang dapat Anda kontrol di cluster GKE. Mencakup rekomendasi yang khusus untuk GKE. Google Cloud

Sebaiknya prioritaskan Tolok Ukur GKE CIS, karena tolok ukur ini khusus untuk GKE Google Cloud. Tolok Ukur Kubernetes CIS berisi banyak rekomendasi untuk kontrol yang tidak dapat Anda lihat atau ubah di GKE. Pendekatan kami terhadap keamanan cluster mencakup mitigasi yang melampaui cakupan tolok ukur Kubernetes open source dan dapat menyebabkan konflik dengan rekomendasi tersebut.

Tolok ukur lain yang berlaku untuk GKE

Selain Tolok Ukur GKE CIS dan Tolok Ukur Kubernetes CIS, tolok ukur berikut berlaku untuk sistem operasi yang tersedia di GKE. Meskipun tolok ukur OS tertentu tidak secara eksplisit membahas penggunaan Kubernetes, Anda tetap harus merujuk tolok ukur tersebut untuk panduan keamanan tambahan.

Runtime container default, containerd, tidak memiliki tolok ukur.

Model tanggung jawab bersama

Berdasarkan model tanggung jawab bersama GKE , kami mengelola komponen berikut untuk Anda:

  • Bidang kontrol, termasuk VM bidang kontrol, server API, dan komponen seperti database status cluster (berbasis etcd atau Spanner), kube-controller-manager, dan kube-scheduler.
  • Sistem operasi node.

Komponen ini ada dalam project yang dimiliki GKE, sehingga Anda tidak dapat mengubah atau mengevaluasi salah satu komponen ini terhadap kontrol Tolok Ukur CIS yang sesuai. Namun, Anda dapat mengevaluasi dan memperbaiki kontrol Tolok Ukur CIS yang berlaku untuk node pekerja dan workload Anda. Berdasarkan model tanggung jawab bersama GKE, komponen ini adalah tanggung jawab Anda.

Pendekatan kami untuk mengamankan GKE untuk Tolok Ukur CIS

GKE adalah implementasi terkelola dari Kubernetes open source. Kami mengelola bidang kontrol sepenuhnya dan bertanggung jawab untuk mengamankan konfigurasi komponen bidang kontrol. Tabel berikut menjelaskan beberapa keputusan kami yang mungkin memengaruhi skor tolok ukur CIS:

Pendekatan keamanan GKE
Autentikasi
  • Beberapa komponen pemantauan GKE menggunakan autentikasi anonim untuk mendapatkan metrik.
  • Beberapa komponen bidang kontrol di-bootstrap menggunakan token statis token, yang kemudian digunakan untuk melakukan autentikasi ke server API. Token ini dibuat setiap kali VM dimulai atau dimulai ulang.
Pengontrol penerimaan

GKE menonaktifkan pengontrol penerimaan berikut:

  • EventRateLimit: Ini adalah fitur alfa di Kubernetes
  • AlwaysPullImages: Pengontrol ini memberikan beberapa perlindungan untuk image registry pribadi di cluster multitenant non-kooperatif, namun juga menjadikan image registry titik tunggal kegagalan untuk membuat Pod baru di cluster.
  • SecurityContextDeny: Pengontrol Penerimaan Keamanan Pod lebih disukai dan tersedia di semua edisi GKE. Anda juga dapat mengaktifkan penerapan Standar Keamanan Pod menggunakan Pengontrol Kebijakan.
  • ImagePolicyWebhook: GKE menonaktifkan ImagePolicyWebhook secara default karena memiliki mekanisme sendiri untuk pengelolaan dan keamanan image. Hal ini memungkinkan GKE mempertahankan kontrol yang lebih ketat atas lingkungan dan memastikan bahwa praktik keamanannya diterapkan secara konsisten. Namun, Anda dapat menggunakan Otorisasi Biner atau Pengontrol Kebijakan untuk pengelolaan kebijakan.
Logging audit GKE mengambil log audit menggunakan kebijakan audit GKE. Oleh karena itu, kita tidak perlu menetapkan flag logging audit server Kubernetes API flags.
Proses Debug GKE menggunakan pembuatan profil untuk proses debug.
Enkripsi
etcd

Dalam Kubernetes open source, database status cluster menggunakan etcd. Di GKE, database backend yang menyimpan status cluster adalah salah satu teknologi berikut:

  • etcd: cluster menjalankan instance etcd di bidang kontrol.
  • Spanner: GKE menyimpan status cluster dalam database berbasis Spanner yang terpisah dari VM bidang kontrol.

Semua cluster GKE menayangkan etcd API di VM bidang kontrol. Semua interaksi klien dengan Kubernetes API sama seperti di Kubernetes open source. Bergantung pada teknologi database yang menjadi backend untuk etcd API di cluster Anda, Anda mungkin melihat perbedaan dalam skor terkait etcd di Tolok Ukur Kubernetes CIS open source.

kubelet
  • GKE mengaktifkan port kubelet hanya baca yang tidak diautentikasi. Anda dapat menonaktifkan port dengan menetapkan --no-autoprovisioning-enable-insecure-kubelet-readonly-port. Port hanya baca akan dinonaktifkan secara default pada rilis mendatang setelah memberi Anda waktu untuk bermigrasi.
  • Mode GKE Standard memungkinkan workload Anda mengubah default kernel jika diperlukan.
  • GKE membatasi jumlah peristiwa Kubernetes di kubelet untuk mengurangi risiko serangan denial of service.
  • GKE menggunakan mTLS untuk mengamankan traffic antara kubelet dan server API.
  • GKE merotasi sertifikat server secara default, dan merotasi sertifikat klien saat Node GKE yang Terlindungi diaktifkan.
  • GKE menggunakan set cipher yang diizinkan default golang, yang juga merupakan default untuk Kubernetes.

Mengevaluasi GKE terhadap Tolok Ukur CIS

Anda dapat mengotomatiskan evaluasi cluster terhadap Tolok Ukur menggunakan salah satu metode berikut:

  • Tolok Ukur GKE CIS:
    • Jalankan kube-bench untuk mengevaluasi node pekerja terhadap Tolok Ukur. Untuk mengetahui detailnya, lihat repositori GitHub kube-bench.
    • Gunakan alat pihak ketiga seperti Twistlock Defender untuk mengevaluasi node terhadap Tolok Ukur.
  • Tolok Ukur Kubernetes CIS: Jalankan kube-bench untuk mengevaluasi node pekerja terhadap Tolok Ukur. Anda tidak dapat mengevaluasi bidang kontrol terkelola terhadap rekomendasi tersebut dalam Tolok Ukur.

Langkah berikutnya