Tolok Ukur Kubernetes CIS

Dokumen ini memperkenalkan Tolok Ukur CIS Kubernetes, menjelaskan cara mengaudit kepatuhan Anda terhadap tolok ukur, dan menjelaskan apa yang dikonfigurasi Google Distributed Cloud (GDC) air-gapped 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 memberikan 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.

Mengakses tolok ukur

Tolok Ukur Kubernetes CIS tersedia di situs CIS.

Level rekomendasi

Tabel berikut menjelaskan tingkat rekomendasi dalam Tolok Ukur CIS Kubernetes.

Tingkat Deskripsi
Level 1

Rekomendasi menunjukkan satu atau beberapa karakteristik berikut:

  • Bersikaplah praktis dan cermat.
  • Memberikan manfaat keamanan yang jelas.
  • Jangan menghambat utilitas teknologi di luar batas yang dapat diterima.
  • Level 2

    Memperluas profil Level 1.

    Rekomendasi menunjukkan satu atau beberapa karakteristik berikut:

  • Terapkan ke lingkungan atau kasus penggunaan yang sangat mengutamakan keamanan.
  • Bertindak sebagai langkah defense in depth.
  • Mungkin menghambat utilitas atau kinerja teknologi secara negatif.
  • Status penilaian

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

    Versi

    Penilaian ini merujuk pada versi berikut:

    Versi GDC on bare metal Versi Kubernetes Versi Tolok Ukur Kubernetes CIS
    1,30 1.30.9 v0.10.4

    Status cluster Kubernetes dengan air gap GDC

    # Rekomendasi Tingkat Status
    1 Konfigurasi Keamanan Bidang Kontrol
    1.1 File Konfigurasi Node Bidang Kontrol
    1.1.1 Memastikan izin file spesifikasi pod server API disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.2 Memastikan kepemilikan file spesifikasi pod server API disetel ke root:root (Otomatis) L1 Lulus
    1.1.3 Memastikan izin file spesifikasi pod pengelola pengontrol disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.4 Memastikan kepemilikan file spesifikasi pod pengelola pengontrol disetel ke root:root (Otomatis) L1 Lulus
    1.1.5 Memastikan izin file spesifikasi pod scheduler disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.6 Memastikan kepemilikan file spesifikasi pod scheduler disetel ke root:root (Otomatis) L1 Lulus
    1.1.7 Memastikan izin file spesifikasi pod etcd disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.8 Memastikan kepemilikan file spesifikasi pod etcd disetel ke root:root (Otomatis) L1 Lulus
    1.1.9 Memastikan izin file Antarmuka Jaringan Container disetel ke 600 atau lebih ketat (Manual) L1 Peringatkan
    1.1.10 Memastikan kepemilikan file Antarmuka Jaringan Container disetel ke root:root (Manual) L1 Peringatkan
    1.1.11 Memastikan izin direktori data etcd disetel ke 700 atau lebih ketat (Otomatis) L1 Lulus
    1.1.12 Memastikan kepemilikan direktori data etcd disetel ke etcd:etcd (Otomatis) L1 Gagal
    1.1.13 Memastikan izin file kredensial administratif default disetel ke 600 (Otomatis) L1 Lulus
    1.1.14 Memastikan kepemilikan file kredensial administratif default disetel ke root:root (Otomatis) L1 Lulus
    1.1.15 Memastikan izin file scheduler.conf disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.16 Memastikan kepemilikan file scheduler.conf disetel ke root:root (Otomatis) L1 Gagal
    1.1.17 Memastikan izin file controller-manager.conf disetel ke 600 atau lebih ketat (Otomatis) L1 Lulus
    1.1.18 Memastikan kepemilikan file controller-manager.conf disetel ke root:root (Otomatis) L1 Gagal
    1.1.19 Memastikan kepemilikan file dan direktori IKP Kubernetes disetel ke root:root (Otomatis) L1 Gagal
    1.1.20 Memastikan izin file sertifikat PKI Kubernetes disetel ke 600 atau lebih ketat (Manual) L1 Peringatkan
    1.1.21 Memastikan izin file kunci IKP Kubernetes disetel ke 600 (Manual) L1 Peringatkan
    1.2 Server API
    1.2.1 Pastikan argumen --anonymous-auth disetel ke false (Manual) L1 Peringatkan
    1.2.2 Pastikan parameter --token-auth-file tidak ditetapkan (Otomatis) L1 Lulus
    1.2.3 Pastikan --DenyServiceExternalIPs telah disetel (Manual) L1 Peringatkan
    1.2.4 Pastikan argumen --kubelet-client-certificate dan --kubelet-client-key disetel sebagaimana mestinya (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 disetel ke AlwaysAllow (Otomatis) L1 Lulus
    1.2.7 Pastikan argumen --authorization-mode menyertakan Node (Otomatis) L1 Lulus
    1.2.8 Memastikan argumen --authorization-mode menyertakan RBAC (Otomatis) L1 Lulus
    1.2.9 Memastikan plugin kontrol penerimaan EventRateLimit ditetapkan (Manual) L1 Peringatkan
    1.2.10 Memastikan plugin kontrol penerimaan AlwaysAdmit tidak ditetapkan (Otomatis) L1 Lulus
    1.2.11 Memastikan plugin kontrol penerimaan AlwaysPullImages ditetapkan (Manual) L1 Peringatkan
    1.2.12 Memastikan plugin kontrol penerimaan ServiceAccount ditetapkan (Otomatis) L1 Lulus
    1.2.13 Memastikan plugin kontrol penerimaan NamespaceLifecycle ditetapkan (Otomatis) L1 Lulus
    1.2.14 Memastikan plugin kontrol penerimaan NodeRestriction ditetapkan (Otomatis) L1 Lulus
    1.2.15 Pastikan argumen --profiling disetel ke false (Otomatis) L1 Lulus
    1.2.16 Pastikan argumen --audit-log-path ditetapkan (Otomatis) L1 Lulus
    1.2.17 Pastikan argumen --audit-log-maxage disetel ke 30 atau sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.18 Pastikan argumen --audit-log-maxbackup disetel ke 10 atau sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.19 Pastikan argumen --audit-log-maxsize disetel ke 100 atau sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.20 Memastikan argumen --request-timeout disetel sebagaimana mestinya (Manual) L1 Peringatkan
    1.2.21 Pastikan argumen --service-account-lookup disetel ke true (Otomatis) L1 Lulus
    1.2.22 Pastikan argumen --service-account-key-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.23 Pastikan argumen --etcd-certfile dan --etcd-keyfile disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.24 Pastikan argumen --tls-cert-file dan --tls-private-key-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.25 Pastikan argumen --client-ca-file disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.26 Pastikan argumen --etcd-cafile disetel sebagaimana mestinya (Otomatis) L1 Lulus
    1.2.27 Memastikan argumen --encryption-provider-config disetel sebagaimana mestinya (Manual) L1 Lulus
    1.2.28 Memastikan penyedia enkripsi dikonfigurasi dengan benar (Manual) L1 Lulus
    1.2.29 Memastikan Server API hanya menggunakan Cipher Kriptografi yang Kuat (Manual) L1 Lulus
    1.3 Controller Manager
    1.3.1 Memastikan argumen --terminated-pod-gc-threshold disetel sebagaimana mestinya (Manual) L1 Lulus
    1.3.2 Pastikan --profiling argument disetel ke false (Otomatis) L1 Lulus
    1.3.3 Pastikan argumen --use-service-account-credentials disetel ke 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 Gagal
    1.4 Scheduler
    1.4.1 Pastikan argumen --profiling disetel ke false (Otomatis) L1 Lulus
    1.4.2 Pastikan argumen --bind-address disetel ke 127.0.0.1 (Otomatis) L1 Gagal

    Tolok ukur audit

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

    Audit otomatis Tolok Ukur Kubernetes CIS

    Anda dapat menggunakan alat open source kube-bench untuk menguji konfigurasi cluster Anda dengan Tolok Ukur Kubernetes CIS.

    Pastikan untuk menentukan versi yang sesuai. Contoh:

    kube-bench --benchmark BENCHMARK_VERSION
    

    Ganti BENCHMARK_VERSION dengan versi Tolok Ukur CIS Kubernetes yang Anda gunakan untuk menilai cluster.

    Untuk menjalankan bagian CIS Benchmark tertentu, seperti master, node, atau etcd, gunakan perintah run --targets. Contoh:

    kube-bench run --targets master,node
    

    Untuk mengetahui informasi selengkapnya, lihat dokumentasi kube-bench tentang menjalankan kube-bench dan perintah dan flag.