Tolok Ukur CIS


Dokumen ini menjelaskan apa yang dimaksud dengan Tolok Ukur CIS Kubernetes dan Google Kubernetes Engine (GKE), cara mengaudit kepatuhan Anda terhadap Tolok ukur, dan apa saja yang dikonfigurasi GKE di mana Anda tidak dapat langsung mengaudit atau menerapkan rekomendasi.

Menggunakan Tolok Ukur CIS

Center for Internet Security (CIS) merilis tolok ukur untuk rekomendasi praktik terbaik keamanan. Tolok Ukur Kubernetes CIS adalah serangkaian rekomendasi dalam mengonfigurasi Kubernetes untuk mendukung postur keamanan yang kuat. Tolok ukur ini terikat dengan rilis Kubernetes tertentu. Tolok Ukur Kubernetes CIS ditulis untuk distribusi Kubernetes open source dan dimaksudkan untuk dapat diterapkan secara universal di seluruh distribusi.

Dengan layanan terkelola seperti GKE, tidak semua item di tolok ukur merupakan tanggung jawab Anda, dan ada beberapa rekomendasi yang tidak dapat Anda audit atau perbaiki sendiri secara langsung. Jika Anda menjalankan GKE, gunakan Tolok Ukur GKE CIS, yang merupakan tolok ukur turunan dari CIS Kubernetes Benchmark, yang dimaksudkan secara khusus untuk diterapkan ke Distribusi GKE. Tindakan ini diambil dari Tolok Ukur CIS yang ada, tetapi menghapus item yang tidak dapat dikonfigurasi atau dikelola oleh pengguna dan menambahkan kontrol tambahan khusus untuk Google Cloud.

Beberapa set Tolok Ukur

Dengan GKE, Anda dapat menggunakan Tolok Ukur CIS untuk GKE, Kubernetes, Docker, Container-Optimized OS, dan Linux. Untuk mendownload tolok ukur terbaru produk ini, kunjungi situs Tolok Ukur CIS.

Runtime container default, containerd, tidak memiliki Tolok Ukur CIS.

Node Windows Server yang digunakan dengan GKE tidak diberi skor berdasarkan tolok ukur CIS yang sesuai karena tolok ukur Windows Server CIS tidak secara khusus mengizinkan penggunaan Kubernetes, dan tolok ukur Kubernetes CIS saat ini tidak mengakomodasi node Windows.

Beberapa alat mencoba menganalisis node Kubernetes dengan beberapa Tolok Ukur CIS (misalnya Linux, Docker, dan Kubernetes) dan menggabungkan hasilnya. Analisis ini sering kali memberikan saran yang membingungkan dan mungkin bertentangan karena tolok ukur tersebut tidak dirancang untuk digabungkan dan diterapkan di lingkungan Kubernetes.

Model tanggung jawab bersama

Di GKE, pada Model tanggung jawab bersama, Google mengelola komponen Kubernetes berikut:

  • Bidang kontrol, termasuk VM bidang kontrol, server API, komponen lain pada VM, dan etcd.
  • Distribusi Kubernetes.
  • Sistem operasi node.

Konfigurasi yang terkait dengan item ini biasanya tidak bisa Anda audit atau ubah di GKE.

Anda masih bertanggung jawab untuk mengupgrade node yang menjalankan workload Anda, dan workload itu sendiri. Anda umumnya dapat mengaudit dan memperbaiki rekomendasi apa pun untuk komponen ini.

Kemampuan untuk mengaudit dan memperbaiki

Tolok Ukur GKE CIS diambil dari Tolok Ukur Kubernetes CIS yang ada, tetapi menghapus item yang tidak dapat dikonfigurasi atau dikelola pengguna, dan menambahkan kontrol tambahan yang khusus untuk Google Cloud.

Bagian dari Tolok Ukur GKE CIS adalah:

  • Komponen Bidang Kontrol, etcd, dan Konfigurasi Bidang Kontrol (bagian 1, 2, dan 3) berasal dari Tolok Ukur Kubernetes CIS. Bagian ini biasanya tidak dapat diaudit atau diperbaiki di GKE.
  • Worker Node (bagian 4) berasal dari Tolok Ukur Kubernetes CIS. Beberapa item ini dapat diaudit atau diperbaiki di GKE, tetapi petunjuknya mungkin berbeda.
  • Kebijakan (bagian 5) juga berasal dari Tolok Ukur Kubernetes CIS. Bagian ini umumnya berlaku secara langsung untuk GKE, tanpa perubahan petunjuk.
  • Layanan terkelola (bagian 6) di Tolok Ukur GKE CIS adalah konten baru khusus untuk GKE. Bagian ini berisi semua rekomendasi spesifik untuk kontrol Google Cloud. Bagian ini dapat diaudit dan diperbaiki di GKE.

Untuk item yang tidak dapat diaudit atau diperbaiki di GKE, lihat bagian Nilai default untuk memahami performa cluster default yang dibuat di GKE dengan Tolok Ukur Kubernetes.

Versi

Perlu diingat bahwa nomor versi untuk tolok ukur yang berbeda mungkin tidak sama.

Dokumen ini merujuk pada versi berikut:

Versi Kubernetes Versi Tolok Ukur Kubernetes CIS Versi Tolok Ukur GKE CIS
1.15 1.5.0 1.0.0

Tolok Ukur Kubernetes CIS

Mengakses Tolok Ukur

Tolok Ukur Kubernetes CIS tersedia di situs CIS.

Level rekomendasi

Dalam Tolok Ukur Kubernetes CIS:

Level Deskripsi
Level 1

Rekomendasi bertujuan untuk:

  • bersifat praktis dan cermat;
  • memberikan manfaat keamanan yang jelas; dan
  • tidak menghambat utilitas teknologi di luar batas yang dapat diterima.
  • Level 2

    Memperluas profil Level 1.

    Rekomendasi menunjukkan satu atau beberapa karakteristik berikut:

  • ditujukan untuk lingkungan atau kasus penggunaan yang sangat mengutamakan keamanan;
  • bertindak sebagai langkah defense in depth; atau
  • mungkin menghambat utilitas atau kinerja teknologi.
  • Penskoran rekomendasi

    Dalam Tolok Ukur Kubernetes CIS:

    Pemberian skor Deskripsi
    Dinilai Ketidakpatuhan terhadap rekomendasi ini akan menurunkan skor akhir tolok ukur.
    Tidak Dinilai Ketidakpatuhan terhadap rekomendasi ini tidak menurunkan skor akhir tolok ukur.

    Evaluasi GKE

    Kami menggunakan nilai berikut untuk menentukan status rekomendasi Kubernetes di GKE:

    Status Deskripsi
    Lulus Mematuhi rekomendasi tolok ukur.
    Gagal Tidak mematuhi rekomendasi tolok ukur.
    Kontrol Setara Tidak mematuhi persyaratan yang sama persis dengan rekomendasi tolok ukur, tetapi terdapat mekanisme lain di GKE untuk memberikan kontrol keamanan yang setara.
    Bergantung pada Lingkungan GKE tidak mengonfigurasi item yang terkait dengan rekomendasi ini. Konfigurasi pengguna menentukan apakah lingkungan mereka mematuhi rekomendasi tolok ukur.

    Status GKE

    Saat membuat cluster GKE baru dengan versi yang ditentukan, berikut adalah performanya pada Tolok Ukur Kubernetes CIS.

    Status cluster GKE default:

    # Rekomendasi Dinilai/ Tidak Dinilai Level Status Default
    1 Komponen Bidang Kontrol
    1.1 File Konfigurasi Node Bidang Kontrol
    1.1.1 Memastikan izin file spesifikasi pod server API disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.2 Memastikan kepemilikan file spesifikasi pod server API disetel ke root:root Dinilai L1 Lulus
    1.1.3 Memastikan izin file spesifikasi pod pengelola pengontrol disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.4 Memastikan kepemilikan file spesifikasi pod pengelola pengontrol disetel ke root:root Dinilai L1 Lulus
    1.1.5 Memastikan izin file spesifikasi pod scheduler disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.6 Memastikan kepemilikan file spesifikasi pod scheduler disetel ke root:root Dinilai L1 Lulus
    1.1.7 Memastikan izin file spesifikasi pod etcd disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.8 Memastikan kepemilikan file spesifikasi pod etcd disetel ke root:root Dinilai L1 Lulus
    1.1.9 Memastikan izin file Antarmuka Jaringan Container disetel ke 644 atau lebih ketat Tidak Dinilai L1 Lulus
    1.1.10 Memastikan kepemilikan file Antarmuka Jaringan Container disetel ke root:root Tidak Dinilai L1 Lulus
    1.1.11 Memastikan izin direktori data etcd disetel ke 700 atau lebih ketat Dinilai L1 Lulus
    1.1.12 Memastikan kepemilikan direktori data etcd disetel ke etcd:etcd Dinilai L1 Lulus
    1.1.13 Memastikan izin file admin.conf disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.14 Memastikan kepemilikan file admin.conf disetel ke root:root Dinilai L1 Lulus
    1.1.15 Memastikan izin file scheduler.conf disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.16 Memastikan kepemilikan file scheduler.conf disetel ke root:root Dinilai L1 Lulus
    1.1.17 Memastikan izin file controller-manager.conf disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.18 Memastikan kepemilikan file controller-manager.conf disetel ke root:root Dinilai L1 Lulus
    1.1.19 Memastikan kepemilikan file dan direktori IKP Kubernetes disetel ke root:root Dinilai L1 Lulus
    1.1.20 Memastikan izin file sertifikat IKP Kubernetes disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    1.1.21 Memastikan izin file kunci IKP Kubernetes disetel ke 600 Dinilai L1 Lulus
    1.2 Server API
    1.2.1 Memastikan argumen --anonymous-auth disetel ke false Tidak Dinilai L1 Gagal
    1.2.2 Memastikan argumen --basic-auth-file tidak disetel Dinilai L1 Lulus
    1.2.3 Memastikan parameter --token-auth-file tidak ditetapkan Dinilai L1 Gagal
    1.2.4 Memastikan argumen --kubelet-https disetel ke true Dinilai L1 Lulus
    1.2.5 Memastikan argumen --kubelet-client-certificate dan --kubelet-client-key disetel sebagaimana mestinya Dinilai L1 Lulus
    1.2.6 Memastikan argumen --kubelet-certificate-authority disetel sebagaimana mestinya Dinilai L1 Lulus
    1.2.7 Memastikan argumen --authorization-mode tidak disetel ke AlwaysAllow Dinilai L1 Lulus
    1.2.8 Memastikan argumen --authorization-mode menyertakan Node Dinilai L1 Lulus
    1.2.9 Memastikan argumen --authorization-mode menyertakan RBAC Dinilai L1 Lulus
    1.2.10 Memastikan plugin kontrol penerimaan EventRateLimit ditetapkan Tidak Dinilai L1 Gagal
    1.2.11 Memastikan plugin kontrol penerimaan AlwaysAdmit tidak ditetapkan Dinilai L1 Lulus
    1.2.12 Memastikan plugin kontrol penerimaan AlwaysPullImages ditetapkan Tidak Dinilai L1 Gagal
    1.2.13 Memastikan plugin kontrol penerimaan SecurityContextDeny ditetapkan jika PodSecurityPolicy tidak digunakan Tidak Dinilai L1 Gagal
    1.2.14 Memastikan plugin kontrol penerimaan ServiceAccount ditetapkan Dinilai L1 Lulus
    1.2.15 Memastikan plugin kontrol penerimaan NamespaceLifecycle ditetapkan Dinilai L1 Lulus
    1.2.16 Memastikan plugin kontrol penerimaan PodSecurityPolicy ditetapkan Dinilai L1 Gagal
    1.2.17 Memastikan plugin kontrol penerimaan NodeRestriction ditetapkan Dinilai L1 Lulus
    1.2.18 Memastikan argumen --insecure-bind-address tidak ditetapkan Dinilai L1 Lulus
    1.2.19 Memastikan argumen --insecure-port disetel ke 0 Dinilai L1 Lulus
    1.2.20 Memastikan argumen --secure-port tidak disetel ke 0 Dinilai L1 Lulus
    1.2.21 Memastikan argumen --profiling disetel ke false Dinilai L1 Gagal
    1.2.22 Memastikan argumen --audit-log-path ditetapkan Dinilai L1 Kontrol Setara
    1.2.23 Memastikan argumen --audit-log-maxage disetel ke 30 atau sebagaimana mestinya Dinilai L1 Kontrol Setara
    1.2.24 Memastikan argumen --audit-log-maxbackup disetel ke 10 atau sebagaimana mestinya Dinilai L1 Kontrol Setara
    1.2.25 Memastikan argumen --audit-log-maxsize disetel ke 100 atau sebagaimana mestinya Dinilai L1 Kontrol Setara
    1.2.26 Memastikan argumen --request-timeout disetel sebagaimana mestinya Dinilai L1 Lulus
    1.2.27 Memastikan argumen --service-account-lookup disetel ke true Dinilai L1 Lulus
    1.2.28 Memastikan argumen --service-account-key-file disetel sebagaimana mestinya Dinilai L1 Lulus
    1.2.29 Memastikan argumen --etcd-certfile dan --etcd-keyfile disetel sebagaimana mestinya Dinilai L1 Gagal
    1.2.30 Memastikan argumen --tls-cert-file dan --tls-private-key-file disetel sebagaimana mestinya Dinilai L1 Lulus
    1.2.31 Memastikan argumen --client-ca-file disetel sebagaimana mestinya Dinilai L1 Lulus
    1.2.32 Memastikan argumen --etcd-cafile disetel sebagaimana mestinya Dinilai L1 Gagal
    1.2.33 Memastikan argumen --encryption-provider-config disetel sebagaimana mestinya Dinilai L1 Lulus
    1.2.34 Memastikan penyedia enkripsi dikonfigurasi dengan benar Dinilai L1 Gagal
    1.2.35 Memastikan Server API hanya menggunakan Cipher Kriptografi yang Kuat Tidak Dinilai L1 Lulus
    1.3 Controller Manager
    1.3.1 Memastikan argumen --resolved-pod-gc-threshold disetel sebagaimana mestinya Dinilai L1 Lulus
    1.3.2 Memastikan argumen --profiling disetel ke false Dinilai L1 Gagal
    1.3.3 Memastikan argumen --use-service-account-credentials disetel ke true Dinilai L1 Gagal
    1.3.4 Memastikan argumen --service-account-private-key-file disetel sebagaimana mestinya Dinilai L1 Lulus
    1.3.5 Memastikan argumen --root-ca-file disetel sebagaimana mestinya Dinilai L1 Lulus
    1.3.6 Memastikan argumen RotateKubeletServerCertificate disetel ke true Dinilai L2 Kontrol Setara
    1.3.7 Memastikan argumen --bind-address disetel ke 127.0.0.1 Dinilai L1 Lulus
    1.4 Scheduler
    1.4.1 Memastikan argumen --profiling disetel ke false Dinilai L1 Gagal
    1.4.2 Memastikan argumen --bind-address disetel ke 127.0.0.1 Dinilai L1 Lulus
    2 etcd
    2.1 Memastikan argumen --cert-file dan --key-file disetel sebagaimana mestinya Dinilai L1 Gagal
    2.2 Memastikan argumen --client-cert-auth disetel ke true Dinilai L1 Gagal
    2.3 Memastikan argumen --auto-tls tidak disetel ke true Dinilai L1 Lulus
    2.4 Memastikan argumen --peer-cert-file dan --peer-key-file disetel sebagaimana mestinya Dinilai L1 Kontrol Setara
    2.5 Memastikan argumen --peer-client-cert-auth disetel ke true Dinilai L1 Kontrol Setara
    2.6 Memastikan argumen --peer-auto-tls tidak disetel ke true Dinilai L1 Kontrol Setara
    2.7 Memastikan Certificate Authority yang digunakan untuk etcd unik Tidak Dinilai L2 Lulus
    3 Konfigurasi Bidang Kontrol
    3.1 Autentikasi dan Otorisasi
    3.1.1 Otentikasi sertifikat klien tidak boleh digunakan untuk pengguna. Tidak Dinilai L2 Lulus
    3.2 Logging
    3.2.1 Memastikan kebijakan audit minimal telah dibuat Dinilai L1 Lulus
    3.2.2 Memastikan kebijakan audit mencakup masalah keamanan utama Tidak Dinilai L2 Lulus
    4 Worker Node
    4.1 File Konfigurasi Worker Node
    4.1.1 Memastikan izin file layanan kubelet disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    4.1.2 Memastikan kepemilikan file layanan kubelet disetel ke root:root Dinilai L1 Lulus
    4.1.3 Memastikan izin file kubeconfig proxy disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    4.1.4 Memastikan kepemilikan file kubeconfig proxy disetel ke root:root Dinilai L1 Lulus
    4.1.5 Memastikan izin file kubelet.conf disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    4.1.6 Memastikan kepemilikan file kubelet.conf disetel ke root:root Dinilai L1 Lulus
    4.1.7 Memastikan izin file certificate authority disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    4.1.8 Memastikan kepemilikan file certificate authority klien disetel ke root:root Dinilai L1 Lulus
    4.1.9 Memastikan izin file konfigurasi kubelet disetel ke 644 atau lebih ketat Dinilai L1 Lulus
    4.1.10 Memastikan kepemilikan file konfigurasi kubelet disetel ke root:root Dinilai L1 Lulus
    4.2 Kubelet
    4.2.1 Memastikan argumen --anonymous-auth disetel ke false Dinilai L1 Lulus
    4.2.2 Memastikan argumen --authorization-mode tidak disetel ke AlwaysAllow Dinilai L1 Lulus
    4.2.3 Memastikan argumen --client-ca-file disetel sebagaimana mestinya Dinilai L1 Lulus
    4.2.4 Memastikan argumen --read-only-port disetel ke 0 Dinilai L1 Gagal
    4.2.5 Memastikan argumen --streaming-connection-idle-timeout tidak disetel ke 0 Dinilai L1 Lulus
    4.2.6 Memastikan argumen --Protect-kernel-defaults disetel ke true Dinilai L1 Gagal
    4.2.7 Memastikan argumen --make-iptables-util-chains disetel ke true Dinilai L1 Lulus
    4.2.8 Memastikan argumen --hostname-override tidak ditetapkan Tidak Dinilai L1 Lulus
    4.2.9 Memastikan argumen --event-qps disetel ke 0 atau tingkat yang memastikan pengambilan peristiwa yang sesuai Tidak Dinilai L2 Gagal
    4.2.10 Memastikan argumen --tls-cert-file dan --tls-private-key-file disetel sebagaimana mestinya Dinilai L1 Kontrol Setara
    4.2.11 Memastikan argumen --rotate-certificates tidak disetel ke false Dinilai L1 Kontrol Setara
    4.2.12 Memastikan argumen RotateKubeletServerCertificate disetel ke true Dinilai L1 Kontrol Setara
    4.2.13 Memastikan Kubelet hanya menggunakan Cipher Kriptografi yang Kuat Tidak Dinilai L1 Gagal
    5 Kebijakan
    5.1 RBAC dan Akun Layanan
    5.1.1 Memastikan peran admin cluster hanya digunakan jika diperlukan Tidak Dinilai L1 Bergantung pada Lingkungan
    5.1.2 Meminimalkan akses ke secret Tidak Dinilai L1 Bergantung pada Lingkungan
    5.1.3 Meminimalkan penggunaan karakter pengganti dalam Peran dan ClusterRole Tidak Dinilai L1 Bergantung pada Lingkungan
    5.1.4 Meminimalkan akses untuk membuat pod Tidak Dinilai L1 Bergantung pada Lingkungan
    5.1.5 Memastikan akun layanan default tidak digunakan secara aktif Dinilai L1 Bergantung pada Lingkungan
    5.1.6 Memastikan Token Akun Layanan hanya dipasang jika diperlukan Tidak Dinilai L1 Bergantung pada Lingkungan
    5.2 Kebijakan Keamanan Pod
    5.2.1 Meminimalkan penerimaan container dengan hak istimewa Tidak Dinilai L1 Bergantung pada Lingkungan
    5.2.2 Meminimalkan penerimaan container yang ingin berbagi namespace ID proses host Dinilai L1 Bergantung pada Lingkungan
    5.2.3 Meminimalkan penerimaan container yang ingin berbagi namespace IPC host Dinilai L1 Bergantung pada Lingkungan
    5.2.4 Meminimalkan penerimaan container yang ingin berbagi namespace jaringan host Dinilai L1 Bergantung pada Lingkungan
    5.2.5 Meminimalkan penerimaan container dengan allowPrivilegeEscalation Dinilai L1 Bergantung pada Lingkungan
    5.2.6 Meminimalkan penerimaan container root Tidak Dinilai L2 Bergantung pada Lingkungan
    5.2.7 Meminimalkan penerimaan container dengan kemampuan NET_RAW Tidak Dinilai L1 Bergantung pada Lingkungan
    5.2.8 Meminimalkan penerimaan container dengan kemampuan tambahan Tidak Dinilai L1 Bergantung pada Lingkungan
    5.2.9 Meminimalkan penerimaan container dengan kemampuan yang ditetapkan Tidak Dinilai L2 Bergantung pada Lingkungan
    5.3 Kebijakan Jaringan dan CNI
    5.3.1 Memastikan CNI yang digunakan mendukung Kebijakan Jaringan Tidak Dinilai L1 Lulus
    5.3.2 Memastikan semua Namespace telah menentukan Kebijakan Jaringan Dinilai L2 Bergantung pada Lingkungan
    5.4 Pengelolaan Secret
    5.4.1 Lebih memilih menggunakan secret sebagai file daripada sebagai variabel lingkungan Tidak Dinilai L1 Bergantung pada Lingkungan
    5.4.2 Mempertimbangkan penyimpanan secret eksternal Tidak Dinilai L2 Bergantung pada Lingkungan
    5.5 Kontrol Penerimaan yang Dapat Diperluas
    5.5.1 Mengonfigurasi Provenance Image menggunakan pengontrol penerimaan ImagePolicyWebhook Tidak Dinilai L2 Bergantung pada Lingkungan
    5.6 Kebijakan Umum
    5.6.1 Membuat batas administratif antar resource menggunakan namespace Tidak Dinilai L1 Bergantung pada Lingkungan
    5.6.2 Memastikan profil seccomp disetel ke docker/default di definisi pod Anda Tidak Dinilai L2 Bergantung pada Lingkungan
    5.6.3 Menerapkan Konteks Keamanan ke Pod dan Container Anda Tidak Dinilai L2 Bergantung pada Lingkungan
    5.6.4 Namespace default tidak boleh digunakan Dinilai L2 Bergantung pada Lingkungan

    Nilai default GKE

    Jika default untuk cluster GKE baru tidak meneruskan rekomendasi Tolok Ukur Kubernetes CIS, berikut adalah nilai default yang digunakan di GKE, beserta penjelasannya. Beberapa rekomendasi ini dapat diperbaiki, dengan mengikuti prosedur perbaikan yang ditetapkan dalam Tolok Ukur GKE CIS. Item yang dapat diaudit secara otomatis ditandai sebagai Dinilai pada Tolok Ukur GKE CIS.

    Nilai default untuk rekomendasi yang Gagal atau Bergantung pada Lingkungan di cluster GKE default:

    # Rekomendasi Dinilai/ Tidak Dinilai
    pada Tolok Ukur Kubernetes CIS
    Level Status Default Nilai Default Justifikasi Dinilai/ Tidak Dinilai
    pada Tolok Ukur GKE CIS
    1 Komponen Bidang Kontrol
    1.2 Server API
    1.2.1 Memastikan argumen --anonymous-auth disetel ke false Tidak Dinilai L1 Gagal true Beberapa komponen pemantauan GKE menggunakan autentikasi anonim untuk mendapatkan metrik. Meskipun GKE mengizinkan autentikasi anonim untuk kubelet, eksposurnya identik dengan port hanya baca karena GKE menonaktifkan pengendali proses debug tambahan. Tidak Dinilai
    1.2.3 Memastikan parameter --token-auth-file tidak ditetapkan Dinilai L1 Gagal Ditetapkan Beberapa komponen bidang kontrol di-bootstrap menggunakan token statis, yang kemudian digunakan untuk melakukan autentikasi ke server API. Tidak Dinilai
    1.2.10 Memastikan plugin kontrol penerimaan EventRateLimit ditetapkan Tidak Dinilai L1 Gagal Tidak ditetapkan GKE tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena pengontrol ini merupakan fitur Kubernetes Alpha. Tidak Dinilai
    1.2.12 Memastikan plugin kontrol penerimaan AlwaysPullImages ditetapkan Tidak Dinilai L1 Gagal Tidak ditetapkan Pengontrol penerimaan AlwaysPullImages memberikan beberapa perlindungan untuk image registry pribadi di cluster multitenant non-kooperatif, namun juga menjadikan container registry titik tunggal kegagalan untuk membuat Pod baru di seluruh cluster. GKE tidak mengaktifkan pengontrol penerimaan AlwaysPullImages, sehingga admin cluster bebas dalam menerapkan kebijakan penerimaan dan melakukan pertukaran ini. Tidak Dinilai
    1.2.13 Memastikan plugin kontrol penerimaan SecurityContextDeny ditetapkan jika PodSecurityPolicy tidak digunakan Tidak Dinilai L1 Gagal Tidak ditetapkan GKE tidak mengaktifkan pengontrol penerimaan Konteks Keamanan secara default. Penggunaan Kebijakan Keamanan Pod memungkinkan lebih banyak kontrol dan lebih disarankan. Tidak Dinilai
    1.2.16 Memastikan plugin kontrol penerimaan PodSecurityPolicy ditetapkan Dinilai L1 Gagal Tidak ditetapkan GKE tidak mengaktifkan pengontrol penerimaan Kebijakan Keamanan Pod secara default, karena tindakan ini memerlukan penyetelan kebijakan. Pelanggan GKE dapat mengaktifkan PodSecurityPolicy. Tidak Dinilai, lihat juga 6.10.3
    1.2.21 Memastikan argumen --profiling disetel ke false Dinilai L1 Gagal Tidak ditetapkan GKE menggunakan pembuatan profil untuk proses debug. Tidak Dinilai
    1.2.22 Memastikan argumen --audit-log-path ditetapkan Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menangkap log audit, tetapi tidak menggunakan flag ini untuk audit. Lihat kebijakan Audit GKE untuk detail selengkapnya. Tidak Dinilai
    1.2.23 Memastikan argumen --audit-log-maxage disetel ke 30 atau sebagaimana mestinya Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menangkap log audit, tetapi tidak menggunakan flag ini untuk audit. Lihat kebijakan Audit GKE untuk detail selengkapnya. Tidak Dinilai
    1.2.24 Memastikan argumen --audit-log-maxbackup disetel ke 10 atau sebagaimana mestinya Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menangkap log audit, tetapi tidak menggunakan flag ini untuk audit. Lihat kebijakan Audit GKE untuk detail selengkapnya. Tidak Dinilai
    1.2.25 Memastikan argumen --audit-log-maxsize disetel ke 100 atau sebagaimana mestinya Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menangkap log audit, tetapi tidak menggunakan flag ini untuk audit. Lihat kebijakan Audit GKE untuk detail selengkapnya. Tidak Dinilai
    1.2.29 Memastikan argumen --etcd-certfile dan --etcd-keyfile disetel sebagaimana mestinya Dinilai L1 Gagal Tidak ditetapkan GKE saat ini tidak menggunakan mTLS untuk melindungi koneksi antara server API dan etcd. Perlu diingat bahwa etcd memproses di localhost. Lihat Kepercayaan cluster untuk detail selengkapnya. Tidak Dinilai
    1.2.32 Memastikan argumen --etcd-cafile disetel sebagaimana mestinya Dinilai L1 Gagal Tidak ditetapkan GKE saat ini tidak menggunakan mTLS untuk melindungi koneksi antara server API dan etcd. Perlu diingat bahwa etcd memproses di localhost. Lihat Kepercayaan cluster untuk detail selengkapnya. Tidak Dinilai
    1.2.34 Memastikan penyedia enkripsi dikonfigurasi dengan benar Dinilai L1 Gagal identity GKE mengenkripsi konten pelanggan dalam penyimpanan secara default. Untuk mengenkripsi secret lebih lanjut, gunakan Enkripsi Secret lapisan Aplikasi. Tidak Dinilai, lihat juga 6.3.1
    1.3 Controller Manager
    1.3.2 Memastikan argumen --profiling disetel ke false Dinilai L1 Gagal true GKE menggunakan pembuatan profil untuk proses debug. Tidak Dinilai
    1.3.6 Memastikan argumen RotateKubeletServerCertificate disetel ke true Dinilai L2 Kontrol Setara false GKE merotasi sertifikat kubelet, tetapi tidak menggunakan flag ini. Tidak Dinilai
    1.4 Scheduler
    1.4.1 Memastikan argumen --profiling disetel ke false Dinilai L1 Gagal true GKE menggunakan pembuatan profil untuk proses debug. Tidak Dinilai
    2 etcd
    2.1 Memastikan argumen --cert-file dan --key-file disetel sebagaimana mestinya Dinilai L1 Gagal Tidak ditetapkan GKE saat ini tidak menggunakan mTLS untuk melindungi koneksi antara server API dan etcd. Perlu diingat bahwa etcd memproses di localhost. Lihat Kepercayaan cluster untuk detail selengkapnya. Tidak Dinilai
    2.2 Memastikan argumen --client-cert-auth disetel ke true Dinilai L1 Gagal Tidak ditetapkan GKE saat ini tidak menggunakan mTLS untuk melindungi koneksi antara server API dan etcd. Perlu diingat bahwa etcd memproses di localhost. Lihat Kepercayaan cluster untuk detail selengkapnya. Tidak Dinilai
    2.4 Memastikan argumen --peer-cert-file dan --peer-key-file disetel sebagaimana mestinya Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menggunakan mTLS untuk traffic peer antar instance etcd. Flag ini digunakan untuk cluster regional, tetapi tidak untuk cluster zonal, karena hanya ada satu instance etcd dalam cluster zonal. Lihat Kepercayaan cluster untuk detail selengkapnya. Tidak Dinilai
    2.5 Memastikan argumen --peer-client-cert-auth disetel ke true Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menggunakan mTLS untuk traffic peer antar instance etcd. Flag ini digunakan untuk cluster regional, tetapi tidak untuk cluster zonal, karena hanya ada satu instance etcd dalam cluster zonal. Lihat Kepercayaan cluster untuk detail selengkapnya. Tidak Dinilai
    2.6 Memastikan argumen --peer-auto-tls tidak disetel ke true Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menggunakan mTLS untuk traffic peer antar instance etcd. Flag ini digunakan untuk cluster regional, tetapi tidak untuk cluster zonal, karena hanya ada satu instance etcd dalam cluster zonal. Lihat Kepercayaan cluster untuk detail selengkapnya. Tidak Dinilai
    4 Worker Node
    4.2 Kubelet
    4.2.4 Memastikan argumen --read-only-port disetel ke 0 Dinilai L1 Gagal 10255 Beberapa komponen pemantauan GKE menggunakan port hanya baca kubelet untuk mendapatkan metrik. Dinilai
    4.2.6 Memastikan argumen --Protect-kernel-defaults disetel ke true Dinilai L1 Gagal false GKE tidak melindungi default kernel dari Kubernetes, karena workload pelanggan mungkin ingin mengubahnya. Dinilai
    4.2.9 Memastikan argumen --event-qps disetel ke 0 atau tingkat yang memastikan pengambilan peristiwa yang sesuai Tidak Dinilai L2 Gagal 5 Peristiwa adalah objek Kubernetes yang disimpan di etcd. Agar etcd tidak terbebani, peristiwa hanya disimpan selama satu jam, dan bukan merupakan mekanisme audit keamanan yang tepat. Mengizinkan jumlah peristiwa tak terbatas seperti yang disarankan dalam kontrol ini akan mengekspos cluster pada risiko DoS yang tidak perlu dan bertentangan dengan rekomendasi untuk menggunakan penerimaan EventRateLimits. Peristiwa terkait keamanan yang memerlukan penyimpanan permanen harus dikirim ke log. Dinilai
    4.2.10 Memastikan argumen --tls-cert-file dan --tls-private-key-file disetel sebagaimana mestinya Dinilai L1 Kontrol Setara Tidak ditetapkan GKE menggunakan mTLS untuk traffic kubelet ke server API. GKE menggunakan TLS untuk server API ke traffic kubelet, yang telah diautentikasi untuk cluster GKE v1.12+. GKE tidak menggunakan flag ini, tetapi flag ini ditentukan dalam file konfigurasi kubelet. Lihat Kepercayaan cluster untuk detail selengkapnya. Dinilai
    4.2.11 Memastikan argumen --rotate-certificates tidak disetel ke false Dinilai L1 Kontrol Setara Tidak ditetapkan GKE merotasi sertifikat server untuk cluster GKE v1.12+. GKE tidak menggunakan flag ini, tetapi flag ini ditentukan dalam file konfigurasi kubelet. GKE tidak merotasi sertifikat klien, kecuali jika Node GKE yang Terlindungi diaktifkan. Dalam kasus ini, GKE tidak menggunakan flag ini, tetapi menjalankan proses terpisah untuk rotasi sertifikat. Lihat Kepercayaan cluster untuk detail selengkapnya. Dinilai
    4.2.12 Memastikan argumen RotateKubeletServerCertificate disetel ke true Dinilai L1 Kontrol Setara Tidak ditetapkan GKE merotasi sertifikat server untuk cluster GKE v1.12+. GKE tidak menggunakan flag ini, tetapi flag ini ditentukan dalam file konfigurasi kubelet. Lihat Kepercayaan cluster untuk detail selengkapnya. Dinilai
    4.2.13 Memastikan kubelet hanya menggunakan Cipher Kriptografi yang Kuat Tidak Dinilai Gagal Tidak ditetapkan GKE menggunakan set cipher yang diizinkan default golang, yang dianggap aman untuk digunakan oleh pakar kriptografi golang, dan juga merupakan default untuk Kubernetes. Tidak Dinilai
    5 Kebijakan
    5.1 RBAC dan Akun Layanan
    5.1.1 Memastikan peran admin cluster hanya digunakan jika diperlukan Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.1.2 Meminimalkan akses ke secret Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.1.3 Meminimalkan penggunaan karakter pengganti dalam Peran dan ClusterRole Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.1.4 Meminimalkan akses untuk membuat pod Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.1.5 Memastikan akun layanan default tidak digunakan secara aktif Dinilai L1 Bergantung pada Lingkungan t/a Dinilai
    5.1.6 Memastikan Token Akun Layanan hanya dipasang jika diperlukan Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.2 Kebijakan Keamanan Pod
    5.2.1 Meminimalkan penerimaan container dengan hak istimewa Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.2 Meminimalkan penerimaan container yang ingin berbagi namespace ID proses host Dinilai L1 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.3 Meminimalkan penerimaan container yang ingin berbagi namespace IPC host Dinilai L1 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.4 Meminimalkan penerimaan container yang ingin berbagi namespace jaringan host Dinilai L1 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.5 Meminimalkan penerimaan container dengan allowPrivilegeEscalation Dinilai L1 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.6 Meminimalkan penerimaan container root Tidak Dinilai L2 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.7 Meminimalkan penerimaan container dengan kemampuan NET_RAW Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.8 Meminimalkan penerimaan container dengan kemampuan tambahan Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.2.9 Meminimalkan penerimaan container dengan kemampuan yang ditetapkan Tidak Dinilai L2 Bergantung pada Lingkungan t/a Tidak ada Kebijakan Keamanan Pod yang disetel secara default. Dinilai
    5.3 Kebijakan Jaringan dan CNI
    5.3.2 Memastikan semua Namespace telah menentukan Kebijakan Jaringan Dinilai L2 Bergantung pada Lingkungan t/a Dinilai
    5.4 Pengelolaan Secret
    5.4.1 Lebih memilih menggunakan secret sebagai file daripada sebagai variabel lingkungan Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.4.2 Mempertimbangkan penyimpanan secret eksternal Tidak Dinilai L2 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.5 Kontrol Penerimaan yang Dapat Diperluas
    5.5.1 Mengonfigurasi Provenance Image menggunakan pengontrol penerimaan ImagePolicyWebhook Tidak Dinilai L2 Bergantung pada Lingkungan Tidak diaktifkan GKE tidak mengaktifkan pengontrol penerimaan Webhook Kebijakan Image secara default. Provenance Gambar yang menggunakan Otorisasi Biner tidak ditetapkan secara default, karena ini membutuhkan kebijakan untuk ditetapkan. Tidak Dinilai, lihat juga 6.10.5
    5.6 Kebijakan Umum
    5.6.1 Membuat batas administratif antar resource menggunakan namespace Tidak Dinilai L1 Bergantung pada Lingkungan t/a Tidak Dinilai
    5.6.2 Memastikan profil seccomp disetel ke docker/default di definisi pod Anda Tidak Dinilai L2 Bergantung pada Lingkungan t/a Tidak ada profil seccomp yang disetel secara default. Tidak Dinilai
    5.6.3 Menerapkan Konteks Keamanan ke Pod dan Container Anda Tidak Dinilai L2 Bergantung pada Lingkungan t/a Tidak ada Konteks Keamanan yang disetel secara default. Tidak Dinilai
    5.6.4 Namespace default tidak boleh digunakan Dinilai L2 Bergantung pada Lingkungan t/a Dinilai

    Tolok Ukur GKE CIS

    Mengakses Tolok Ukur

    Tolok Ukur GKE CIS tersedia di situs CIS:

    • Buka daftar lengkap Tolok Ukur CIS.
    • Di bawah judul Kubernetes, klik Luaskan untuk melihat konten terkait.
    • Tolok Ukur GKE CIS tersedia untuk didownload.

    Level Rekomendasi

    Dalam Tolok Ukur GKE CIS,

    Level Deskripsi
    Level 1

    Rekomendasi dimaksudkan untuk dapat diterapkan secara luas. Rekomendasi ini harus diterapkan ke hampir semua lingkungan.

    Level 2

    Rekomendasi menghasilkan lingkungan keamanan yang lebih ketat, tetapi tidak selalu berlaku untuk semua kasus. Rekomendasi ini mungkin berdampak pada performa, atau mungkin tidak dapat diterapkan bersama dengan rekomendasi lain. Rekomendasi ini harus dievaluasi untuk lingkungan Anda sebelum diterapkan.

    Dalam beberapa kasus, misalnya workload multi-tenant, rekomendasi ini mungkin lebih relevan.

    Penskoran rekomendasi

    Dalam Tolok Ukur GKE CIS,

    Pemberian skor Deskripsi
    Dinilai

    Rekomendasi mudah diuji menggunakan metode otomatis, dan memiliki nilai yang dapat dievaluasi secara pasti.

    Rekomendasi ini hanya mencakup produk atau fitur yang Tersedia secara Umum.

    Tidak Dinilai

    Rekomendasi tidak dapat dengan mudah dinilai menggunakan otomatisasi atau memerlukan evaluasi untuk menentukan implementasi yang tepat dan sesuai dengan workload Anda. Rekomendasi ini mungkin menggunakan produk atau fitur Beta.

    Misalnya, Kebijakan Keamanan Pod memerlukan penggunaan kebijakan khusus untuk workload Anda, dan merupakan fitur Beta, sehingga Tidak Dinilai.

    Evaluasi GKE

    Untuk rekomendasi khusus GKE (bagian 6), karena semuanya dapat dikonfigurasi untuk Lulus di lingkungan Anda, kami menggunakan nilai berikut untuk menentukan nilai default:

    Status Deskripsi
    Default Cluster baru mematuhi rekomendasi tolok ukur secara default.
    Bukan Default Cluster baru tidak mematuhi rekomendasi tolok ukur secara default.
    Bergantung pada Lingkungan GKE tidak mengonfigurasi item yang terkait dengan Rekomendasi ini. Konfigurasi pengguna menentukan apakah lingkungan mereka mematuhi rekomendasi tolok ukur.

    Nilai default GKE

    Saat membuat cluster GKE baru dengan versi yang ditentukan, berikut adalah performanya pada Tolok Ukur Kubernetes CIS.

    Status cluster GKE default:

    # Rekomendasi Dinilai/ Tidak Dinilai Level Status Default
    6 Layanan terkelola
    6.1 Registry Image dan Pemindaian Image
    6.1.1 Memastikan Pemindaian Kerentanan Image menggunakan Container Analysis GCR atau penyedia pihak ketiga Dinilai L1 Bukan Default
    6.1.2 Meminimalkan akses pengguna ke GCR Dinilai L1 Bergantung pada Lingkungan
    6.1.3 Meminimalkan akses cluster ke hanya baca untuk GCR Dinilai L1 Bukan Default
    6.1.4 Meminimalkan Container Registry hanya untuk yang disetujui Tidak Dinilai L2 Bukan Default
    6.2 Identity and Access Management (IAM)
    6.2.1 Memilih tidak menjalankan cluster GKE menggunakan akun layanan default Compute Engine Dinilai L2 Bukan Default
    6.2.2 Lebih memilih menggunakan Akun Layanan Google Cloud dan Workload Identity khusus Tidak Dinilai L1 Bukan Default
    6.3 Cloud Key Management Service (Cloud KMS)
    6.3.1 Pertimbangkan untuk mengenkripsi Secret Kubernetes menggunakan kunci yang dikelola di Cloud KMS Dinilai L1 Bukan Default
    6.4 Metadata Node
    6.4.1 Memastikan API metadata instance Compute Engine lama Dinonaktifkan Dinilai L1 Default
    6.4.2 Memastikan Server Metadata GKE Diaktifkan Tidak Dinilai L2 Bukan Default
    6.5 Konfigurasi dan Pemeliharaan Node
    6.5.1 Memastikan Container-Optimized OS (COS) digunakan untuk image node GKE Dinilai L2 Default
    6.5.2 Memastikan Perbaikan Otomatis Node diaktifkan untuk node GKE Dinilai L1 Default
    6.5.3 Memastikan Upgrade Otomatis Node diaktifkan untuk node GKE Dinilai L1 Default
    6.5.4 Pertimbangkan untuk mengotomatiskan pengelolaan versi GKE menggunakan Saluran Rilis Tidak Dinilai L1 Bukan Default
    6.5.5 Memastikan Node GKE yang Terlindungi Diaktifkan Tidak Dinilai L1 Bukan Default
    6.5.6 Memastikan Pemantauan Integritas untuk Node GKE yang Terlindungi Diaktifkan Tidak Dinilai L1 Bukan Default
    6.5.7 Memastikan Booting Aman untuk Node GKE yang Terlindungi Diaktifkan Tidak Dinilai L2 Bukan Default
    6.6 Jaringan Cluster
    6.6.1 Pertimbangkan untuk mengaktifkan Log Aliran Traffic VPC dan Visibilitas Intranode Tidak Dinilai L2 Bukan Default
    6.6.2 Lebih memilih cluster VPC native Dinilai L1 Bukan Default
    6.6.3 Memastikan Jaringan yang Diizinkan Master Diaktifkan Dinilai L1 Bukan Default
    6.6.4 Memastikan cluster dibuat dengan Endpoint Pribadi Aktif dan Akses Publik Nonaktif Dinilai L2 Bukan Default
    6.6.5 Memastikan cluster dibuat dengan Node Pribadi Dinilai L1 Bukan Default
    6.6.6 Mempertimbangkan untuk membuat firewall worker node GKE Tidak Dinilai L1 Bukan Default
    6.6.7 Memastikan Kebijakan Jaringan Diaktifkan dan disetel sebagaimana mestinya Tidak Dinilai L1 Bukan Default
    6.6.8 Mempertimbangkan untuk menggunakan Sertifikat SSL yang dikelola Google Tidak Dinilai L2 Bergantung pada Lingkungan
    6.7 Logging
    6.7.1 Memastikan Logging dan Monitoring Stackdriver Kubernetes Diaktifkan Dinilai L1 Default
    6.7.2 Mempertimbangkan untuk mengaktifkan logging auditd Linux Tidak Dinilai L2 Bukan Default
    6.8 Autentikasi dan Otorisasi
    6.8.1 Memastikan Autentikasi Dasar yang menggunakan sandi statis Dinonaktifkan Dinilai L1 Default
    6.8.2 Memastikan autentikasi menggunakan Sertifikat Klien Dinonaktifkan Dinilai L1 Default
    6.8.3 Mempertimbangkan untuk mengelola pengguna RBAC Kubernetes dengan Google Grup untuk RBAC Tidak Dinilai L2 Bukan Default
    6.8.4 Memastikan Otorisasi Lama (ABAC) Dinonaktifkan Dinilai L1 Default
    6.9 Penyimpanan
    6.9.1 Mempertimbangkan untuk mengaktifkan Kunci Enkripsi yang Dikelola Pelanggan (CMEK) untuk persistent disk (PD) GKE Tidak Dinilai L1 Bukan Default
    6.10 Konfigurasi Cluster Lainnya
    6.10.1 Memastikan UI Web Kubernetes Dinonaktifkan Dinilai L1 Default
    6.10.2 Memastikan cluster Alfa tidak digunakan untuk workload produksi Dinilai L1 Default
    6.10.3 Memastikan Kebijakan Keamanan Pod Diaktifkan dan disetel sebagaimana mestinya Tidak Dinilai L1 Bukan Default
    6.10.4 Mempertimbangkan GKE Sandbox untuk menjalankan workload yang tidak tepercaya Tidak Dinilai L2 Bukan Default
    6.10.5 Lebih memilih mengaktifkan Otorisasi Biner dan mengonfigurasi kebijakan yang sesuai Tidak Dinilai L2 Bukan Default
    6.10.6 Lebih memilih mengaktifkan Cloud Security Command Center (Cloud SCC) Tidak Dinilai L1 Bukan Default

    Cara mengaudit Tolok Ukur

    Petunjuk spesifik untuk mengaudit setiap rekomendasi tersedia sebagai bagian dari Tolok Ukur CIS yang relevan. Namun, Anda mungkin ingin mengotomatiskan beberapa pemeriksaan untuk menyederhanakan verifikasi kontrol ini di lingkungan Anda. Alat yang tercantum di bawah dapat membantu ini.

    Perlu diingat bahwa ini bukan berarti Anda dapat mengaudit rekomendasi dari Kubernetes CIS Benchmark yang tidak dapat diaudit di GKE. Untuk komponen yang tidak dapat Anda audit secara langsung, lihat Nilai default untuk memahami bagaimana lingkungan Anda sudah dikonfigurasi oleh GKE.

    Audit otomatis Tolok Ukur Kubernetes CIS

    Anda dapat menggunakan alat open source kube-bench untuk menguji konfigurasi cluster dengan Tolok Ukur Kubernetes CIS. Perlu diingat bahwa Anda tidak akan dapat menjalankan pengujian kube-bench master pada workload GKE karena Anda tidak memiliki akses ke node bidang kontrol secara langsung; dan hanya dapat menjalankan pengujian kube-bench node.

    Pastikan untuk menentukan versi yang sesuai, misalnya:

    kube-bench node --benchmark cis-1.5
    

    Audit otomatis Tolok Ukur GKE CIS

    Security Health Analytics mengidentifikasi kesalahan konfigurasi umum di lingkungan Anda, seperti firewall terbuka atau bucket publik. Security Health Analytics mencakup rekomendasi keamanan GKE. Dengan mengaktifkan Security Health Analytics, Anda akan diberi tahu kesalahan konfigurasi cluster yang mungkin Anda miliki di Cloud Security Command Center.

    Banyak rekomendasi Dinilai Level 1 yang dicakup temuan terkait di Security Health Analytics.

    # Rekomendasi Dinilai/ Tidak Dinilai Level Temuan Security Health Analytics
    6.1 Registry Image dan Pemindaian Image
    6.1.1 Memastikan Pemindaian Kerentanan Image menggunakan Container Analysis GCR atau penyedia pihak ketiga Dinilai L1 t/a
    6.1.2 Meminimalkan akses pengguna ke GCR Dinilai L1 t/a
    6.1.3 Meminimalkan akses cluster ke hanya baca untuk GCR Dinilai L1 t/a
    6.1.4 Meminimalkan Container Registry hanya untuk yang disetujui Tidak Dinilai L2 t/a
    6.2 Identity and Access Management (IAM)
    6.2.1 Memilih tidak menjalankan cluster GKE menggunakan akun layanan default Compute Engine Dinilai L2 OVER_PRIVILEGED_ACCOUNT dan OVER_PRIVILEGED_SCOPES
    6.2.2 Lebih memilih menggunakan Akun Layanan Google Cloud dan Workload Identity khusus Tidak Dinilai L1 WORKLOAD_IDENTITY_DISABLED
    6.3 Cloud Key Management Service (Cloud KMS)
    6.3.1 Pertimbangkan untuk mengenkripsi Secret Kubernetes menggunakan kunci yang dikelola di Cloud KMS Dinilai L1 t/a
    6.4 Metadata Node
    6.4.1 Memastikan API metadata instance Compute Engine lama Dinonaktifkan Dinilai L1 LEGACY_METADATA_ENABLED
    6.4.2 Memastikan Server Metadata GKE Diaktifkan Tidak Dinilai L2 t/a
    6.5 Konfigurasi dan Pemeliharaan Node
    6.5.1 Memastikan Container-Optimized OS (COS) digunakan untuk image node GKE Dinilai L2 COS_NOT_USED
    6.5.2 Memastikan Perbaikan Otomatis Node diaktifkan untuk node GKE Dinilai L1 AUTO_REPAIR_DISABLED
    6.5.3 Memastikan Upgrade Otomatis Node diaktifkan untuk node GKE Dinilai L1 AUTO_UPGRADE_DISABLED
    6.5.4 Pertimbangkan untuk mengotomatiskan pengelolaan versi GKE menggunakan Saluran Rilis Tidak Dinilai L1 t/a
    6.5.5 Memastikan Node GKE yang Terlindungi Diaktifkan Tidak Dinilai L1 t/a
    6.5.6 Memastikan Pemantauan Integritas untuk Node GKE yang Terlindungi Diaktifkan Tidak Dinilai L1 t/a
    6.5.7 Memastikan Booting Aman untuk Node GKE yang Terlindungi Diaktifkan Tidak Dinilai L2 t/a
    6.6 Jaringan Cluster
    6.6.1 Pertimbangkan untuk mengaktifkan Log Aliran Traffic VPC dan Visibilitas Intranode Tidak Dinilai L2 FLOW_LOGS_DISABLED
    6.6.2 Lebih memilih cluster VPC native Dinilai L1 IP_ALIAS_DISABLED
    6.6.3 Memastikan Jaringan yang Diizinkan Master Diaktifkan Dinilai L1 MASTER_AUTHORIZED_NETWORKS_DISABLED
    6.6.4 Memastikan cluster dibuat dengan Endpoint Pribadi Aktif dan Akses Publik Nonaktif Dinilai L2 t/a
    6.6.5 Memastikan cluster dibuat dengan Node Pribadi Dinilai L1 PRIVATE_CLUSTER_DISABLED
    6.6.6 Mempertimbangkan untuk membuat firewall worker node GKE Tidak Dinilai L1 t/a
    6.6.7 Memastikan Kebijakan Jaringan Diaktifkan dan disetel sebagaimana mestinya Tidak Dinilai L1 NETWORK_POLICY_DISABLED
    6.6.8 Mempertimbangkan untuk menggunakan Sertifikat SSL yang dikelola Google Tidak Dinilai L2 t/a
    6.7 Logging
    6.7.1 Memastikan Logging dan Monitoring Stackdriver Kubernetes Diaktifkan Dinilai L1 CLUSTER_LOGGING_DISABLED dan CLUSTER_MONITORING_DISABLED
    6.7.2 Mempertimbangkan untuk mengaktifkan logging auditd Linux Tidak Dinilai L2 t/a
    6.8 Autentikasi dan Otorisasi
    6.8.1 Memastikan Autentikasi Dasar yang menggunakan sandi statis Dinonaktifkan Dinilai L1 t/a
    6.8.2 Memastikan autentikasi menggunakan Sertifikat Klien Dinonaktifkan Dinilai L1 t/a
    6.8.3 Mempertimbangkan untuk mengelola pengguna RBAC Kubernetes dengan Google Grup untuk RBAC Tidak Dinilai L2 t/a
    6.8.4 Memastikan Otorisasi Lama (ABAC) Dinonaktifkan Dinilai L1 LEGACY_AUTHORIZATION_ENABLED
    6.9 Penyimpanan
    6.9.1 Mempertimbangkan untuk mengaktifkan Kunci Enkripsi yang Dikelola Pelanggan (CMEK) untuk persistent disk (PD) GKE Tidak Dinilai L1 t/a
    6.10 Konfigurasi Cluster Lainnya
    6.10.1 Memastikan UI Web Kubernetes Dinonaktifkan Dinilai L1 WEB_UI_ENABLED
    6.10.2 Memastikan cluster Alfa tidak digunakan untuk workload produksi Dinilai L1 t/a
    6.10.3 Memastikan Kebijakan Keamanan Pod Diaktifkan dan disetel sebagaimana mestinya Tidak Dinilai L1 POD_SECURITY_POLICY_DISABLED
    6.10.4 Mempertimbangkan GKE Sandbox untuk menjalankan workload yang tidak tepercaya Tidak Dinilai L2 t/a
    6.10.5 Lebih memilih mengaktifkan Otorisasi Biner dan mengonfigurasi kebijakan yang sesuai Tidak Dinilai L2 t/a
    6.10.6 Lebih memilih mengaktifkan Cloud Security Command Center (Cloud SCC) Tidak Dinilai L1 t/a

    Langkah selanjutnya