Tolok Ukur Kubernetes CIS

Dokumen ini memperkenalkan CIS Kubernetes Benchmark, menjelaskan cara mengaudit kepatuhan Anda terhadap benchmark, dan menjelaskan apa yang dikonfigurasi GKE di VM saat Anda tidak dapat menerapkan rekomendasi sendiri.

Tentang Tolok Ukur CIS

Center for Internet Security (CIS) merilis tolok ukur untuk rekomendasi praktik terbaik keamanan. CIS Kubernetes Benchmark menyediakan serangkaian rekomendasi untuk mengonfigurasi Kubernetes guna 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.

Versi

Nomor versi untuk Benchmark yang berbeda mungkin tidak sama. Dokumen ini mengacu pada versi berikut:

Versi Anthos Versi Kubernetes Versi Tolok Ukur Kubernetes CIS
1.16.0 1.27.1 1.7

Menggunakan Tolok Ukur Kubernetes CIS

Mengakses benchmark

CIS Kubernetes Benchmark tersedia di situs CIS.

Level rekomendasi

Tabel berikut menjelaskan level rekomendasi dalam CIS Kubernetes Benchmark.

Tingkat 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.
  • Status penilaian

    Status penilaian disertakan untuk setiap rekomendasi. Status penilaian menunjukkan apakah rekomendasi yang diberikan dapat bersifat otomatis atau memerlukan langkah manual untuk diterapkan. Kedua status tersebut sama pentingnya serta ditentukan dan didukung seperti yang ditentukan dalam tabel berikut.

    Pemberian skor Deskripsi
    Otomatis Mewakili rekomendasi agar penilaian kontrol teknis dapat sepenuhnya diotomatiskan dan divalidasi ke status lulus/gagal. Rekomendasi mencakup informasi yang diperlukan untuk menerapkan otomatisasi.
    Manual Mewakili rekomendasi yang mana penilaian kontrol teknis tidak dapat sepenuhnya diotomatiskan dan memerlukan semua atau beberapa langkah manual untuk memvalidasi bahwa status yang dikonfigurasi telah ditetapkan seperti yang diharapkan. Status yang diharapkan dapat bervariasi bergantung pada lingkungan.

    Evaluasi GKE pada VMware

    Kami menggunakan nilai berikut untuk menentukan status Rekomendasi Kubernetes di GKE pada VMware.

    Status Deskripsi
    Lulus Mematuhi Rekomendasi Tolok Ukur.
    Gagal Tidak mematuhi Rekomendasi Tolok Ukur.
    Kontrol Setara Tidak mematuhi persyaratan yang tepat dalam Rekomendasi Benchmark, tetapi mekanisme lain dalam GKE di VMware tersedia untuk menyediakan kontrol keamanan yang setara.
    Bergantung pada Lingkungan GKE di VMware tidak mengonfigurasi item yang terkait dengan Rekomendasi ini. Konfigurasi pengguna menentukan apakah lingkungannya mematuhi Rekomendasi Tolok Ukur.

    GKE pada arsitektur VMware

    GKE di VMware menggunakan cluster admin untuk mengelola satu atau beberapa cluster pengguna, yang menjalankan workload Kubernetes sebenarnya. Informasi selengkapnya tentang arsitektur ini dapat ditemukan di ringkasan GKE di VMware. Konfigurasi cluster admin dan pengguna dievaluasi berdasarkan tolok ukur berikut.

    Status di GKE di VMware

    Saat membuat cluster baru di GKE di VMware dengan versi yang ditentukan, berikut performa cluster tersebut terhadap CIS Kubernetes Benchmark. Laporan benchmark CIS otomatis dibuat oleh skrip. Skrip dijalankan pada cluster baru yang tidak menjalankan beban kerja pengguna apa pun. Jika Anda menginstal beban kerja Anda sendiri dan menjalankan skrip, laporannya mungkin berbeda.

    Status GKE pada cluster admin VMware

    # Rekomendasi Tingkat Status
    1 Kontrol Konfigurasi Keamanan Pesawat
    1.1 File Konfigurasi Node Bidang Kontrol
    1.1.1 Pastikan izin file spesifikasi pod server API ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.2 Pastikan kepemilikan file spesifikasi pod server API disetel ke root:root (Otomatis) L1 Lulus
    1.1.3 Pastikan izin file spesifikasi pod pengelola pengontrol disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.4 Pastikan kepemilikan file spesifikasi pod pengelola pengontrol disetel ke root:root (Otomatis) L1 Lulus
    1.1.5 Pastikan izin file spesifikasi pod penjadwal disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.6 Pastikan kepemilikan file spesifikasi pod penjadwal disetel ke root:root (Otomatis) L1 Lulus
    1.1.7 Pastikan izin file spesifikasi pod etcd ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.8 Pastikan kepemilikan file spesifikasi pod etcd disetel ke root:root (Otomatis) L1 Lulus
    1.1.9 Pastikan izin file Antarmuka Jaringan Container ditetapkan ke 600 atau lebih ketat (Manual) L1 Lulus
    1.1.10 Pastikan kepemilikan file Antarmuka Jaringan Container ditetapkan ke root:root (Manual) L1 Lulus
    1.1.11 Pastikan izin direktori data etcd ditetapkan ke 700 atau lebih ketat (Otomatis) L1 Lulus
    1.1.12 Pastikan kepemilikan direktori data etcd ditetapkan ke etcd:etcd (Otomatis) L1 Kontrol Setara
    1.1.13 Pastikan izin file admin.conf disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.14 Pastikan kepemilikan file admin.conf disetel ke root:root (Otomatis) L1 Lulus
    1.1.15 Pastikan izin file scheduler.conf disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.16 Pastikan kepemilikan file scheduler.conf disetel ke root:root (Otomatis) L1 Kontrol Setara
    1.1.17 Pastikan izin file controller-manager.conf ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.18 Pastikan kepemilikan file controller-manager.conf ditetapkan ke root:root (Otomatis) L1 Kontrol Setara
    1.1.19 Pastikan kepemilikan file dan direktori IKP Kubernetes ditetapkan ke root:root (Otomatis) L1 Lulus
    1.1.20 Pastikan izin file sertifikat IKP Kubernetes ditetapkan ke 600 atau lebih ketat (Manual) L1 Lulus
    1.1.21 Pastikan izin file kunci IKP Kubernetes ditetapkan ke 600 (Manual) L1 Lulus
    1.2 Server API
    1.2.1 Pastikan argumen --anonymous-auth disetel ke salah (Manual) L1 Lulus
    1.2.2 Pastikan parameter --token-auth-file tidak ditetapkan (Otomatis) L1 Lulus
    1.2.3 Pastikan --DenyServiceExternalIPs ditetapkan (Manual) L1 Peringatkan
    1.2.4 Pastikan argumen --kubelet-client-certificate dan --kubelet-client-key disetel dengan sesuai (Otomatis) L1 Lulus
    1.2.5 Pastikan argumen --kubelet-certificate-authority disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.6 Pastikan argumen --authorization-mode tidak ditetapkan ke AlwaysAllow (Otomatis) L1 Lulus
    1.2.7 Pastikan argumen --authorization-mode menyertakan Node (Otomatis) L1 Lulus
    1.2.8 Pastikan argumen --authorization-mode menyertakan RBAC (Otomatis) L1 Lulus
    1.2.9 Pastikan plugin kontrol penerimaan EventRateLimit ditetapkan (Manual) L1 Peringatkan
    1.2.10 Pastikan plugin kontrol penerimaan AlwaysAdmit tidak disetel (Otomatis) L1 Lulus
    1.2.11 Pastikan plugin kontrol akses masuk AlwaysPullImages disetel (Manual) L1 Tergantung Lingkungan
    1.2.12 Pastikan plugin kontrol penerimaan SecurityContextDeny ditetapkan jika PodSecurityPolicy tidak digunakan (Manual) L1 Kontrol Setara
    1.2.13 Pastikan ServiceAccount plugin kontrol penerimaan ditetapkan (Otomatis) L1 Lulus
    1.2.14 Pastikan NamespaceLifecycle plugin kontrol penerimaan ditetapkan (Otomatis) L1 Lulus
    1.2.15 Pastikan plugin kontrol penerimaan NodeRestriction disetel (Otomatis) L1 Lulus
    1.2.16 Pastikan argumen --secure-port tidak disetel ke 0 - Catatan Rekomendasi ini sudah tidak berlaku dan akan dihapus sesuai dengan proses konsensus (Manual) L1 Lulus
    1.2.17 Pastikan argumen --profiling disetel ke salah (false) (Otomatis) L1 Lulus
    1.2.18 Pastikan argumen --audit-log-path ditetapkan (Otomatis) L1 Lulus
    1.2.19 Pastikan argumen --audit-log-maxage disetel ke 30 atau yang sesuai (Otomatis) L1 Kontrol Setara
    1.2.20 Pastikan argumen --audit-log-maxbackup disetel ke 10 atau yang sesuai (Otomatis) L1 Lulus
    1.2.21 Pastikan argumen --audit-log-maxsize disetel ke 100 atau yang sesuai (Otomatis) L1 Lulus
    1.2.22 Pastikan argumen --request-timeout disetel sebagaimana mestinya (Manual) L1 Lulus
    1.2.23 Pastikan argumen --service-account-lookup disetel ke benar (true) (Otomatis) L1 Lulus
    1.2.24 Pastikan argumen --service-account-key-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.25 Pastikan argumen --etcd-certfile dan --etcd-keyfile disetel dengan sesuai (Otomatis) L1 Lulus
    1.2.26 Pastikan argumen --tls-cert-file dan --tls-private-key-file disetel dengan sesuai (Otomatis) L1 Lulus
    1.2.27 Pastikan argumen --client-ca-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.28 Pastikan argumen --etcd-cafile disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.29 Pastikan argumen --encryption-provider-config disetel sebagaimana mestinya (Manual) L1 Lulus
    1.2.30 Pastikan penyedia enkripsi dikonfigurasi dengan benar (Manual) L1 Lulus
    1.2.31 Memastikan Server API hanya menggunakan Cipher Kriptografi yang Kuat (Manual) L1 Lulus
    1.3 Controller Manager
    1.3.1 Pastikan argumen --terminated-pod-gc-threshold disetel sebagaimana mestinya (Manual) L1 Lulus
    1.3.2 Pastikan argumen --profiling disetel ke salah (false) (Otomatis) L1 Lulus
    1.3.3 Pastikan argumen --use-service-account-credentials disetel ke benar (true) (Otomatis) L1 Lulus
    1.3.4 Pastikan argumen --service-account-private-key-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.3.5 Pastikan argumen --root-ca-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.3.6 Pastikan argumen RotateKubeletServerCertificate disetel ke true (Otomatis) L2 Lulus
    1.3.7 Pastikan argumen --bind-address disetel ke 127.0.0.1 (Otomatis) L1 Lulus
    1.4 Scheduler
    1.4.1 Pastikan argumen --profiling disetel ke salah (false) (Otomatis) L1 Lulus
    1.4.2 Pastikan argumen --bind-address disetel ke 127.0.0.1 (Otomatis) L1 Lulus
    2 Konfigurasi Node Etcd
    2 Konfigurasi Node Etcd
    2.1 Pastikan argumen --cert-file dan --key-file disetel dengan sesuai (Otomatis) L1 Lulus
    2.2 Pastikan argumen --client-cert-auth disetel ke benar (true) (Otomatis) L1 Lulus
    2.3 Pastikan argumen --auto-tls tidak disetel ke benar (Otomatis) L1 Lulus
    2.4 Pastikan argumen --peer-cert-file dan --peer-key-file disetel dengan sesuai (Otomatis) L1 Lulus
    2.5 Pastikan argumen --peer-client-cert-auth disetel ke benar (true) (Otomatis) L1 Lulus
    2.6 Pastikan argumen --peer-auto-tls tidak disetel ke benar (Otomatis) L1 Lulus
    2.7 Pastikan bahwa Certificate Authority unik digunakan untuk etcd (Manual) L2 Lulus
    3 Konfigurasi Bidang Kontrol
    3.1 Autentikasi dan Otorisasi
    3.1.1 Autentikasi sertifikat klien tidak boleh digunakan untuk pengguna (Manual) L2 Lulus
    3.1.2 Autentikasi token akun layanan tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan
    3.1.3 Autentikasi token bootstrap tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan
    3.2 Logging
    3.2.1 Memastikan bahwa kebijakan audit minimal dibuat (Manual) L1 Lulus
    3.2.2 Pastikan bahwa kebijakan audit mencakup masalah keamanan utama (Manual) L2 Kontrol Setara
    4 Konfigurasi Keamanan Node Pekerja
    4.1 File Konfigurasi Worker Node
    4.1.1 Pastikan izin file layanan kubelet disetel ke 600 atau lebih ketat (Otomatis) L1 Gagal
    4.1.2 Pastikan kepemilikan file layanan kubelet disetel ke root:root (Otomatis) L1 Lulus
    4.1.3 Jika file kubeconfig proxy ada, pastikan izin disetel ke 600 atau lebih ketat (Manual) L1 Lulus
    4.1.4 Jika file kubeconfig proxy ada, pastikan kepemilikan disetel ke root:root (Manual) L1 Lulus
    4.1.5 Pastikan izin file kubelet.conf --kubeconfig disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    4.1.6 Pastikan kepemilikan file kubelet.conf --kubeconfig disetel ke root:root (Otomatis) L1 Lulus
    4.1.7 Pastikan izin file certificate authority ditetapkan ke 600 atau lebih ketat (Manual) L1 Lulus
    4.1.8 Pastikan kepemilikan file certificate authority klien disetel ke root:root (Manual) L1 Lulus
    4.1.9 Jika konfigurasi kubelet.file konfigurasi yaml sedang digunakan, validasikan izin yang ditetapkan ke 600 atau yang lebih terbatas (Manual) L1 Peringatkan
    4.1.10 Jika konfigurasi kubelet.file konfigurasi yaml sedang digunakan, validasi kepemilikan file ditetapkan ke root:root (Manual) L1 Lulus
    4.2 Kubelet
    4.2.1 Pastikan argumen --anonymous-auth disetel ke salah (false) (Otomatis) L1 Lulus
    4.2.2 Pastikan argumen --authorization-mode tidak ditetapkan ke AlwaysAllow (Otomatis) L1 Lulus
    4.2.3 Pastikan argumen --client-ca-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    4.2.4 Verifikasi bahwa argumen --read-only-port disetel ke 0 (Manual) L1 Lulus
    4.2.5 Pastikan argumen --streaming-connection-idle-timeout tidak disetel ke 0 (Manual) L1 Lulus
    4.2.6 Pastikan argumen --make-iptables-util-chains disetel ke benar (true) (Otomatis) L1 Lulus
    4.2.7 Pastikan argumen --hostname-override tidak ditetapkan (Manual) L1 Lulus
    4.2.8 Pastikan argumen eventRecordQPS disetel ke level yang memastikan perekaman peristiwa yang sesuai (Manual) L1 Lulus
    4.2.9 Pastikan argumen --tls-cert-file dan --tls-private-key-file ditetapkan dengan sesuai (Manual) L2 Kontrol Setara
    4.2.10 Pastikan argumen --rotate-certificates tidak disetel ke salah (Otomatis) L1 Lulus
    4.2.11 Verifikasi bahwa argumen RotateKubeletServerCertificate disetel ke benar (Manual) L1 Lulus
    4.2.12 Memastikan bahwa Kubelet hanya menggunakan Cipher Kriptografi yang Kuat (Manual) L1 Lulus
    4.2.13 Pastikan batas ditetapkan pada pod PID (Manual) L1 Lulus

    Deskripsi Kegagalan dan Kontrol yang Setara untuk GKE di cluster admin VMware

    # Rekomendasi Tingkat Status Nilai Justifikasi
    1.1.1 Pastikan izin file spesifikasi pod server API ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi pod server API cluster pengguna disimpan dalam etcd.
    1.1.3 Pastikan izin file spesifikasi pod pengelola pengontrol disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi pod pengelola pengontrol cluster pengguna disimpan dalam etcd.
    1.1.5 Pastikan izin file spesifikasi pod penjadwal disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi pod penjadwal cluster pengguna disimpan dalam etcd.
    1.1.7 Pastikan izin file spesifikasi pod etcd ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi etcd cluster pengguna disimpan dalam etcd cluster admin.
    1.1.12 Pastikan kepemilikan direktori data etcd ditetapkan ke etcd:etcd (Otomatis) L1 Kontrol Setara 2001:2001 Penampung etcd berjalan sebagai 2001 dan direktori data etcd dimiliki oleh 2001:2001.
    1.1.16 Pastikan kepemilikan file scheduler.conf disetel ke root:root (Otomatis) L1 Kontrol Setara 2000:2000 Container kube-scheduler berjalan sebagai 2000 dan file ini dimiliki oleh 2000:2000.
    1.1.18 Pastikan kepemilikan file controller-manager.conf ditetapkan ke root:root (Otomatis) L1 Kontrol Setara 2002:2002 Kontainer {i>controller-manager<i} berjalan sebagai 2002 dan file ini dimiliki oleh 2002:2002.
    1.2.3 Pastikan --DenyServiceExternalIPs ditetapkan (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    1.2.9 Pastikan plugin kontrol penerimaan EventRateLimit ditetapkan (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    1.2.11 Pastikan plugin kontrol akses masuk AlwaysPullImages disetel (Manual) L1 Tergantung Lingkungan tidak ditetapkan Pengontrol penerimaan AlwaysPullImages memberikan beberapa perlindungan untuk image registry pribadi di cluster multitenant non-kooperatif, dengan mengorbankan membuat registry container sebagai satu titik kegagalan untuk membuat Pod baru di seluruh cluster. GKE di VMware tidak mengaktifkan pengontrol penerimaan AlwaysPullImages, sehingga menyerahkan tugas kepada admin cluster untuk menerapkan kebijakan penerimaan guna melakukan kompromi ini bagi mereka sendiri.
    1.2.12 Pastikan plugin kontrol penerimaan SecurityContextDeny ditetapkan jika PodSecurityPolicy tidak digunakan (Manual) L1 Kontrol Setara tidak ditetapkan PodSecurityPolicy akan dihapus dari Kubernetes pada 1.25. Sebagai pengganti, Tiket Masuk Keamanan Pod diaktifkan secara default mulai versi 1.23.
    1.2.19 Pastikan argumen --audit-log-maxage disetel ke 30 atau yang sesuai (Otomatis) L1 Kontrol Setara tidak ditetapkan GKE di VMware menangkap log audit, tetapi tidak menggunakan flag ini untuk mengaudit. Lihat Kebijakan audit GKE di VMware untuk mengetahui detail selengkapnya.
    3.1.2 Autentikasi token akun layanan tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    3.1.3 Autentikasi token bootstrap tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    3.2.2 Pastikan bahwa kebijakan audit mencakup masalah keamanan utama (Manual) L2 Kontrol Setara tidak ditetapkan GKE di VMware menangkap log audit, tetapi tidak menggunakan flag ini untuk mengaudit. Lihat Kebijakan audit GKE di VMware untuk mengetahui detail selengkapnya.
    4.1.1 Pastikan izin file layanan kubelet disetel ke 600 atau lebih ketat (Otomatis) L1 Gagal tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    4.1.9 Jika konfigurasi kubelet.file konfigurasi yaml sedang digunakan, validasikan izin yang ditetapkan ke 600 atau yang lebih terbatas (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    4.2.9 Pastikan argumen --tls-cert-file dan --tls-private-key-file ditetapkan dengan sesuai (Manual) L2 Kontrol Setara tidak ditetapkan GKE di VMware mengelola TLS server kubelet menggunakan flag --rotate-server-certificates.

    Status GKE pada cluster pengguna VMware

    # Rekomendasi Tingkat Status
    1 Kontrol Konfigurasi Keamanan Pesawat
    1.1 File Konfigurasi Node Bidang Kontrol
    1.1.1 Pastikan izin file spesifikasi pod server API ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.2 Pastikan kepemilikan file spesifikasi pod server API disetel ke root:root (Otomatis) L1 Lulus
    1.1.3 Pastikan izin file spesifikasi pod pengelola pengontrol disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.4 Pastikan kepemilikan file spesifikasi pod pengelola pengontrol disetel ke root:root (Otomatis) L1 Lulus
    1.1.5 Pastikan izin file spesifikasi pod penjadwal disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.6 Pastikan kepemilikan file spesifikasi pod penjadwal disetel ke root:root (Otomatis) L1 Lulus
    1.1.7 Pastikan izin file spesifikasi pod etcd ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara
    1.1.8 Pastikan kepemilikan file spesifikasi pod etcd disetel ke root:root (Otomatis) L1 Lulus
    1.1.9 Pastikan izin file Antarmuka Jaringan Container ditetapkan ke 600 atau lebih ketat (Manual) L1 Lulus
    1.1.10 Pastikan kepemilikan file Antarmuka Jaringan Container ditetapkan ke root:root (Manual) L1 Lulus
    1.1.11 Pastikan izin direktori data etcd ditetapkan ke 700 atau lebih ketat (Otomatis) L1 Lulus
    1.1.12 Pastikan kepemilikan direktori data etcd ditetapkan ke etcd:etcd (Otomatis) L1 Kontrol Setara
    1.1.13 Pastikan izin file admin.conf disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.14 Pastikan kepemilikan file admin.conf disetel ke root:root (Otomatis) L1 Lulus
    1.1.15 Pastikan izin file scheduler.conf disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.16 Pastikan kepemilikan file scheduler.conf disetel ke root:root (Otomatis) L1 Kontrol Setara
    1.1.17 Pastikan izin file controller-manager.conf ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.18 Pastikan kepemilikan file controller-manager.conf ditetapkan ke root:root (Otomatis) L1 Kontrol Setara
    1.1.19 Pastikan kepemilikan file dan direktori IKP Kubernetes ditetapkan ke root:root (Otomatis) L1 Lulus
    1.1.20 Pastikan izin file sertifikat IKP Kubernetes ditetapkan ke 600 atau lebih ketat (Manual) L1 Lulus
    1.1.21 Pastikan izin file kunci IKP Kubernetes ditetapkan ke 600 (Manual) L1 Lulus
    1.2 Server API
    1.2.1 Pastikan argumen --anonymous-auth disetel ke salah (Manual) L1 Lulus
    1.2.2 Pastikan parameter --token-auth-file tidak ditetapkan (Otomatis) L1 Lulus
    1.2.3 Pastikan --DenyServiceExternalIPs ditetapkan (Manual) L1 Peringatkan
    1.2.4 Pastikan argumen --kubelet-client-certificate dan --kubelet-client-key disetel dengan sesuai (Otomatis) L1 Lulus
    1.2.5 Pastikan argumen --kubelet-certificate-authority disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.6 Pastikan argumen --authorization-mode tidak ditetapkan ke AlwaysAllow (Otomatis) L1 Lulus
    1.2.7 Pastikan argumen --authorization-mode menyertakan Node (Otomatis) L1 Lulus
    1.2.8 Pastikan argumen --authorization-mode menyertakan RBAC (Otomatis) L1 Lulus
    1.2.9 Pastikan plugin kontrol penerimaan EventRateLimit ditetapkan (Manual) L1 Peringatkan
    1.2.10 Pastikan plugin kontrol penerimaan AlwaysAdmit tidak disetel (Otomatis) L1 Lulus
    1.2.11 Pastikan plugin kontrol akses masuk AlwaysPullImages disetel (Manual) L1 Tergantung Lingkungan
    1.2.12 Pastikan plugin kontrol penerimaan SecurityContextDeny ditetapkan jika PodSecurityPolicy tidak digunakan (Manual) L1 Kontrol Setara
    1.2.13 Pastikan ServiceAccount plugin kontrol penerimaan ditetapkan (Otomatis) L1 Lulus
    1.2.14 Pastikan NamespaceLifecycle plugin kontrol penerimaan ditetapkan (Otomatis) L1 Lulus
    1.2.15 Pastikan plugin kontrol penerimaan NodeRestriction disetel (Otomatis) L1 Lulus
    1.2.16 Pastikan argumen --secure-port tidak disetel ke 0 - Catatan Rekomendasi ini sudah tidak berlaku dan akan dihapus sesuai dengan proses konsensus (Manual) L1 Lulus
    1.2.17 Pastikan argumen --profiling disetel ke salah (false) (Otomatis) L1 Lulus
    1.2.18 Pastikan argumen --audit-log-path ditetapkan (Otomatis) L1 Lulus
    1.2.19 Pastikan argumen --audit-log-maxage disetel ke 30 atau yang sesuai (Otomatis) L1 Kontrol Setara
    1.2.20 Pastikan argumen --audit-log-maxbackup disetel ke 10 atau yang sesuai (Otomatis) L1 Lulus
    1.2.21 Pastikan argumen --audit-log-maxsize disetel ke 100 atau yang sesuai (Otomatis) L1 Lulus
    1.2.22 Pastikan argumen --request-timeout disetel sebagaimana mestinya (Manual) L1 Lulus
    1.2.23 Pastikan argumen --service-account-lookup disetel ke benar (true) (Otomatis) L1 Lulus
    1.2.24 Pastikan argumen --service-account-key-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.25 Pastikan argumen --etcd-certfile dan --etcd-keyfile disetel dengan sesuai (Otomatis) L1 Lulus
    1.2.26 Pastikan argumen --tls-cert-file dan --tls-private-key-file disetel dengan sesuai (Otomatis) L1 Lulus
    1.2.27 Pastikan argumen --client-ca-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.28 Pastikan argumen --etcd-cafile disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.29 Pastikan argumen --encryption-provider-config disetel sebagaimana mestinya (Manual) L1 Lulus
    1.2.30 Pastikan penyedia enkripsi dikonfigurasi dengan benar (Manual) L1 Lulus
    1.2.31 Memastikan Server API hanya menggunakan Cipher Kriptografi yang Kuat (Manual) L1 Lulus
    1.3 Controller Manager
    1.3.1 Pastikan argumen --terminated-pod-gc-threshold disetel sebagaimana mestinya (Manual) L1 Lulus
    1.3.2 Pastikan argumen --profiling disetel ke salah (false) (Otomatis) L1 Lulus
    1.3.3 Pastikan argumen --use-service-account-credentials disetel ke benar (true) (Otomatis) L1 Lulus
    1.3.4 Pastikan argumen --service-account-private-key-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.3.5 Pastikan argumen --root-ca-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.3.6 Pastikan argumen RotateKubeletServerCertificate disetel ke true (Otomatis) L2 Lulus
    1.3.7 Pastikan argumen --bind-address disetel ke 127.0.0.1 (Otomatis) L1 Lulus
    1.4 Scheduler
    1.4.1 Pastikan argumen --profiling disetel ke salah (false) (Otomatis) L1 Lulus
    1.4.2 Pastikan argumen --bind-address disetel ke 127.0.0.1 (Otomatis) L1 Lulus
    2 Konfigurasi Node Etcd
    2 Konfigurasi Node Etcd
    2.1 Pastikan argumen --cert-file dan --key-file disetel dengan sesuai (Otomatis) L1 Lulus
    2.2 Pastikan argumen --client-cert-auth disetel ke benar (true) (Otomatis) L1 Lulus
    2.3 Pastikan argumen --auto-tls tidak disetel ke benar (Otomatis) L1 Lulus
    2.4 Pastikan argumen --peer-cert-file dan --peer-key-file disetel dengan sesuai (Otomatis) L1 Lulus
    2.5 Pastikan argumen --peer-client-cert-auth disetel ke benar (true) (Otomatis) L1 Lulus
    2.6 Pastikan argumen --peer-auto-tls tidak disetel ke benar (Otomatis) L1 Lulus
    2.7 Pastikan bahwa Certificate Authority unik digunakan untuk etcd (Manual) L2 Lulus
    3 Konfigurasi Bidang Kontrol
    3.1 Autentikasi dan Otorisasi
    3.1.1 Autentikasi sertifikat klien tidak boleh digunakan untuk pengguna (Manual) L2 Lulus
    3.1.2 Autentikasi token akun layanan tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan
    3.1.3 Autentikasi token bootstrap tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan
    3.2 Logging
    3.2.1 Memastikan bahwa kebijakan audit minimal dibuat (Manual) L1 Lulus
    3.2.2 Pastikan bahwa kebijakan audit mencakup masalah keamanan utama (Manual) L2 Kontrol Setara
    4 Konfigurasi Keamanan Node Pekerja
    4.1 File Konfigurasi Worker Node
    4.1.1 Pastikan izin file layanan kubelet disetel ke 600 atau lebih ketat (Otomatis) L1 Gagal
    4.1.2 Pastikan kepemilikan file layanan kubelet disetel ke root:root (Otomatis) L1 Lulus
    4.1.3 Jika file kubeconfig proxy ada, pastikan izin disetel ke 600 atau lebih ketat (Manual) L1 Lulus
    4.1.4 Jika file kubeconfig proxy ada, pastikan kepemilikan disetel ke root:root (Manual) L1 Lulus
    4.1.5 Pastikan izin file kubelet.conf --kubeconfig disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    4.1.6 Pastikan kepemilikan file kubelet.conf --kubeconfig disetel ke root:root (Otomatis) L1 Lulus
    4.1.7 Pastikan izin file certificate authority ditetapkan ke 600 atau lebih ketat (Manual) L1 Lulus
    4.1.8 Pastikan kepemilikan file certificate authority klien disetel ke root:root (Manual) L1 Lulus
    4.1.9 Jika konfigurasi kubelet.file konfigurasi yaml sedang digunakan, validasikan izin yang ditetapkan ke 600 atau yang lebih terbatas (Manual) L1 Peringatkan
    4.1.10 Jika konfigurasi kubelet.file konfigurasi yaml sedang digunakan, validasi kepemilikan file ditetapkan ke root:root (Manual) L1 Lulus
    4.2 Kubelet
    4.2.1 Pastikan argumen --anonymous-auth disetel ke salah (false) (Otomatis) L1 Lulus
    4.2.2 Pastikan argumen --authorization-mode tidak ditetapkan ke AlwaysAllow (Otomatis) L1 Lulus
    4.2.3 Pastikan argumen --client-ca-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    4.2.4 Verifikasi bahwa argumen --read-only-port disetel ke 0 (Manual) L1 Lulus
    4.2.5 Pastikan argumen --streaming-connection-idle-timeout tidak disetel ke 0 (Manual) L1 Lulus
    4.2.6 Pastikan argumen --make-iptables-util-chains disetel ke benar (true) (Otomatis) L1 Lulus
    4.2.7 Pastikan argumen --hostname-override tidak ditetapkan (Manual) L1 Lulus
    4.2.8 Pastikan argumen eventRecordQPS disetel ke level yang memastikan perekaman peristiwa yang sesuai (Manual) L1 Lulus
    4.2.9 Pastikan argumen --tls-cert-file dan --tls-private-key-file ditetapkan dengan sesuai (Manual) L2 Kontrol Setara
    4.2.10 Pastikan argumen --rotate-certificates tidak disetel ke salah (Otomatis) L1 Lulus
    4.2.11 Verifikasi bahwa argumen RotateKubeletServerCertificate disetel ke benar (Manual) L1 Lulus
    4.2.12 Memastikan bahwa Kubelet hanya menggunakan Cipher Kriptografi yang Kuat (Manual) L1 Lulus
    4.2.13 Pastikan batas ditetapkan pada pod PID (Manual) L1 Lulus

    Deskripsi Kegagalan dan Kontrol yang Setara untuk GKE di cluster pengguna VMware

    # Rekomendasi Tingkat Status Nilai Justifikasi
    1.1.1 Pastikan izin file spesifikasi pod server API ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi pod server API cluster pengguna disimpan dalam etcd.
    1.1.3 Pastikan izin file spesifikasi pod pengelola pengontrol disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi pod pengelola pengontrol cluster pengguna disimpan dalam etcd.
    1.1.5 Pastikan izin file spesifikasi pod penjadwal disetel ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi pod penjadwal cluster pengguna disimpan dalam etcd.
    1.1.7 Pastikan izin file spesifikasi pod etcd ditetapkan ke 600 atau lebih ketat (Otomatis) L1 Kontrol Setara T/A Dalam mode kubeception, spesifikasi etcd cluster pengguna disimpan dalam etcd cluster admin.
    1.1.12 Pastikan kepemilikan direktori data etcd ditetapkan ke etcd:etcd (Otomatis) L1 Kontrol Setara 2001:2001 Penampung etcd berjalan sebagai 2001 dan direktori data etcd dimiliki oleh 2001:2001.
    1.1.16 Pastikan kepemilikan file scheduler.conf disetel ke root:root (Otomatis) L1 Kontrol Setara 2000:2000 Container kube-scheduler berjalan sebagai 2000 dan file ini dimiliki oleh 2000:2000.
    1.1.18 Pastikan kepemilikan file controller-manager.conf ditetapkan ke root:root (Otomatis) L1 Kontrol Setara 2002:2002 Kontainer {i>controller-manager<i} berjalan sebagai 2002 dan file ini dimiliki oleh 2002:2002.
    1.2.3 Pastikan --DenyServiceExternalIPs ditetapkan (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    1.2.9 Pastikan plugin kontrol penerimaan EventRateLimit ditetapkan (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    1.2.11 Pastikan plugin kontrol akses masuk AlwaysPullImages disetel (Manual) L1 Tergantung Lingkungan tidak ditetapkan Pengontrol penerimaan AlwaysPullImages memberikan beberapa perlindungan untuk image registry pribadi di cluster multitenant non-kooperatif, dengan mengorbankan membuat registry container sebagai satu titik kegagalan untuk membuat Pod baru di seluruh cluster. GKE di VMware tidak mengaktifkan pengontrol penerimaan AlwaysPullImages, sehingga menyerahkan tugas kepada admin cluster untuk menerapkan kebijakan penerimaan guna melakukan kompromi ini bagi mereka sendiri.
    1.2.12 Pastikan plugin kontrol penerimaan SecurityContextDeny ditetapkan jika PodSecurityPolicy tidak digunakan (Manual) L1 Kontrol Setara tidak ditetapkan PodSecurityPolicy akan dihapus dari Kubernetes pada 1.25. Sebagai pengganti, Tiket Masuk Keamanan Pod diaktifkan secara default mulai versi 1.23.
    1.2.19 Pastikan argumen --audit-log-maxage disetel ke 30 atau yang sesuai (Otomatis) L1 Kontrol Setara tidak ditetapkan GKE di VMware menangkap log audit, tetapi tidak menggunakan flag ini untuk mengaudit. Lihat Kebijakan audit GKE di VMware untuk mengetahui detail selengkapnya.
    3.1.2 Autentikasi token akun layanan tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    3.1.3 Autentikasi token bootstrap tidak boleh digunakan untuk pengguna (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    3.2.2 Pastikan bahwa kebijakan audit mencakup masalah keamanan utama (Manual) L2 Kontrol Setara tidak ditetapkan GKE di VMware menangkap log audit, tetapi tidak menggunakan flag ini untuk mengaudit. Lihat Kebijakan audit GKE di VMware untuk mengetahui detail selengkapnya.
    4.1.1 Pastikan izin file layanan kubelet disetel ke 600 atau lebih ketat (Otomatis) L1 Gagal tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    4.1.9 Jika konfigurasi kubelet.file konfigurasi yaml sedang digunakan, validasikan izin yang ditetapkan ke 600 atau yang lebih terbatas (Manual) L1 Peringatkan tidak ditetapkan Cluster Anthos di VMware tidak mendukung pengontrol penerimaan Batas Kapasitas Peristiwa karena merupakan fitur Kubernetes Alpha.
    4.2.9 Pastikan argumen --tls-cert-file dan --tls-private-key-file ditetapkan dengan sesuai (Manual) L2 Kontrol Setara tidak ditetapkan GKE di VMware mengelola TLS server kubelet menggunakan flag --rotate-server-certificates.

    Tolok ukur audit

    Petunjuk khusus 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 berikut dapat membantu mengatasi hal ini.

    Audit otomatis Tolok Ukur Kubernetes CIS

    Anda dapat menggunakan alat open source kube-bench untuk menguji konfigurasi cluster terhadap CIS Kubernetes Benchmark.

    Pastikan untuk menentukan versi yang sesuai. Contoh:

    kube-bench node --benchmark cis-1.7