Baca dalam bahasa Inggris

Bagikan melalui


Tolok ukur Pusat Keamanan Internet (CIS) Kubernetes

Sebagai layanan yang aman, Azure Kubernetes Service (AKS) mematuhi standar SOC, ISO, PCI DSS, dan HIPAA. Artikel ini mencakup pengerasan keamanan yang diterapkan pada AKS berdasarkan tolok ukur CIS Kubernetes. Untuk informasi lebih lanjut tentang keamanan AKS, lihat Konsep keamanan untuk aplikasi dan kluster di Azure Kubernetes Service (AKS). Untuk informasi lebih lanjut tentang tolok ukur CIS, lihat Tolok ukur Center for Internet Security (CIS).

Tolok ukur CIS Kubernetes

Berikut ini adalah hasil dari rekomendasi CIS Kubernetes V1.27 Benchmark v1.9.0 pada AKS. Hasilnya berlaku untuk AKS 1.27.x melalui AKS 1.29.x.

Tingkat keamanan

Tolok ukur CIS menyediakan dua tingkat pengaturan keamanan:

  • L1, atau Level 1, merekomendasikan persyaratan keamanan dasar penting yang dapat dikonfigurasi pada sistem apa pun dan harus menyebabkan sedikit atau tidak ada gangguan layanan atau fungsionalitas yang berkurang.
  • L2, atau Level 2, merekomendasikan setelan keamanan untuk lingkungan yang memerlukan keamanan lebih tinggi yang dapat mengakibatkan beberapa fungsionalitas berkurang.

Status penilaian

Status penilaian disertakan untuk setiap rekomendasi. Status penilaian menunjukkan apakah rekomendasi yang diberikan dapat diotomatisasi atau memerlukan langkah-langkah manual untuk diterapkan. Kedua status sama pentingnya dan ditentukan dan didukung seperti yang didefinisikan di bawah ini:

  • Otomatis: Mewakili rekomendasi di mana penilaian kontrol teknis dapat sepenuhnya otomatis dan divalidasi ke status lulus/gagal. Rekomendasi akan menyertakan informasi yang diperlukan untuk menerapkan otomatisasi.
  • Manual: Mewakili rekomendasi di mana penilaian kontrol teknis tidak dapat sepenuhnya otomatis dan memerlukan semua atau beberapa langkah manual untuk memvalidasi bahwa status yang dikonfigurasi ditetapkan seperti yang diharapkan. Status yang diharapkan dapat bervariasi tergantung pada lingkungan.

Rekomendasi otomatis memengaruhi skor tolok ukur jika tidak diterapkan, sementara Rekomendasi manual tidak.

Status pengesahan

Rekomendasi dapat memiliki salah satu status pengesahan berikut:

  • Pass: Rekomendasi telah diterapkan.
  • Gagal: Rekomendasi belum diterapkan.
  • N/A: Rekomendasi berkaitan dengan persyaratan izin file manifes yang tidak relevan dengan AKS. Kluster Kubernetes secara default menggunakan model manifes untuk menyebarkan pod sarana kontrol, yang mengandalkan file dari VM node. Tolok ukur CIS Kubernetes merekomendasikan file-file ini harus memiliki persyaratan izin tertentu. Kluster AKS menggunakan diagram Helm untuk menyebarkan pod bidang kontrol dan tidak bergantung pada file di VM node.
  • Bergantung pada Lingkungan: Rekomendasi diterapkan di lingkungan spesifik pengguna dan tidak dikontrol oleh AKS. Rekomendasi otomatis memengaruhi skor tolok ukur apakah rekomendasi berlaku untuk lingkungan spesifik pengguna atau tidak.
  • Kontrol yang setara: Rekomendasi telah diterapkan dengan cara yang berbeda dan setara.

Detail tolok ukur

ID CIS Deskripsi rekomendasi Status penilaian Tingkat Status
1 Komponen Sarana Kontrol
1.1 File Konfigurasi Node Sarana Kontrol
1.1.1 Pastikan bahwa izin file spesifikasi pod server API diatur ke 600 atau lebih ketat Otomatis L1 T/A
1.1.2 Pastikan bahwa kepemilikan file spesifikasi pod server API pod diatur ke root:root Otomatis L1 T/A
1.1.3 Pastikan bahwa izin file spesifikasi pod manajer pengontrol diatur ke 600 atau lebih ketat Otomatis L1 T/A
1.1.4 Pastikan bahwa kepemilikan file spesifikasi pod manajer pengontrol diatur ke root:root Otomatis L1 T/A
1.1.5 Pastikan bahwa izin file spesifikasi pod penjadwal diatur ke 600 atau lebih ketat Otomatis L1 T/A
1.1.6 Pastikan bahwa kepemilikan file spesifikasi pod penjadwal diatur ke root:root Otomatis L1 T/A
1.1.7 Pastikan bahwa izin file spesifikasi pod etcd diatur ke 600 atau lebih ketat Otomatis L1 T/A
1.1.8 Pastikan bahwa kepemilikan file spesifikasi pod etcd diatur ke root:root Otomatis L1 T/A
1.1.9 Pastikan bahwa izin file Antarmuka Jaringan Kontainer diatur ke 600 atau lebih ketat Manual L1 T/A
1.1.10 Pastikan bahwa kepemilikan file Antarmuka Jaringan Kontainer diatur ke root:root Manual L1 T/A
1.1.11 Pastikan bahwa izin direktori data etcd diatur ke 700 atau lebih ketat Otomatis L1 T/A
1.1.12 Pastikan bahwa kepemilikan direktori data etcd diatur ke etcd:etcd Otomatis L1 T/A
1.1.13 Pastikan bahwa izin file admin.conf diatur ke 600 atau lebih ketat Otomatis L1 T/A
1.1.14 Pastikan bahwa kepemilikan file admin.conf diatur ke root:root Otomatis L1 T/A
1.1.15 Pastikan bahwa izin file scheduler.conf diatur ke 600 atau lebih ketat Otomatis L1 T/A
1.1.16 Pastikan bahwa kepemilikan file scheduler.conf diatur ke root:root Otomatis L1 T/A
1.1.17 Pastikan bahwa izin file controller-manager.conf diatur ke 600 atau lebih ketat Otomatis L1 T/A
1.1.18 Pastikan bahwa kepemilikan file controller-manager.conf diatur ke root:root Otomatis L1 T/A
1.1.19 Pastikan bahwa direktori PKI Kubernetes dan kepemilikan file diatur ke root:root Otomatis L1 T/A
1.1.20 Pastikan bahwa izin file sertifikat Kubernetes PKI diatur ke 600 atau lebih ketat Manual L1 T/A
1.1.21 Pastikan bahwa izin file kunci PKI Kubernetes diatur ke 600 Manual L1 T/A
1.2 Server API
1.2.1 Pastikan bahwa argumen --anonymous-auth disetel ke false Manual L1 Lulus
1.2.2 Pastikan bahwa parameter --token-auth-file tidak disetel Otomatis L1 Gagal
1.2.3 Pastikan bahwa --DenyServiceExternalIPs tidak diatur Manual L1 Gagal
1.2.4 Pastikan bahwa argumen --kubelet-client-certificate dan --kubelet-client-key disetel sebagaimana mestinya Otomatis L1 Lulus
1.2.5 Pastikan bahwa argumen --kubelet-certificate-authority disetel sebagaimana mestinya Otomatis L1 Gagal
1.2.6 Pastikan bahwa argumen --authorization-mode tidak disetel ke AlwaysAllow Otomatis L1 Lulus
1.2.7 Pastikan bahwa argumen --authorization-mode menyertakan Node Otomatis L1 Lulus
1.2.8 Pastikan bahwa argumen --authorization-mode menyertakan RBAC Otomatis L1 Lulus
1.2.9 Pastikan bahwa plugin kontrol masuk EventRateLimit disetel Manual L1 Gagal
1.2.10 Pastikan bahwa plugin kontrol penerimaan AlwaysAdmit tidak disetel Otomatis L1 Lulus
1.2.11 Pastikan bahwa plugin kontrol penerimaan AlwaysPullImages disetel Manual L1 Gagal
1.2.12 Pastikan bahwa plugin kontrol masuk ServiceAccount disetel Otomatis L2 Gagal
1.2.13 Pastikan bahwa plugin kontrol masuk NamespaceLifecycle disetel Otomatis L2 Lulus
1.2.14 Pastikan bahwa plugin kontrol masuk NodeRestriction disetel Otomatis L2 Lulus
1.2.15 Pastikan bahwa argumen --profiling disetel ke false Otomatis L1 Lulus
1.2.16 Pastikan bahwa argumen --audit-log-path disetel Otomatis L1 Lulus
1.2.17 Pastikan bahwa argumen --audit-log-maxage disetel ke 30 atau sesuai Otomatis L1 Kontrol Setara
1.2.18 Pastikan bahwa argumen --audit-log-maxbackup disetel ke 10 atau sesuai Otomatis L1 Kontrol Setara
1.2.19 Pastikan bahwa argumen --audit-log-maxsize disetel ke 100 atau sesuai Otomatis L1 Lulus
1.2.20 Pastikan bahwa argumen --request-timeout disetel sebagaimana mestinya Manual L1 Lulus
1.2.21 Pastikan bahwa argumen --service-account-lookup disetel ke true Otomatis L1 Lulus
1.2.22 Pastikan bahwa argumen --service-account-key-file disetel sebagaimana mestinya Otomatis L1 Lulus
1.2.23 Pastikan bahwa argumen --etcd-certfile dan --etcd-keyfile disetel sebagaimana mestinya Otomatis L1 Lulus
1.2.24 Pastikan bahwa argumen --tls-cert-file dan --tls-private-key-file disetel sebagaimana mestinya Otomatis L1 Lulus
1.2.25 Pastikan bahwa argumen --client-ca-file disetel sebagaimana mestinya Otomatis L1 Lulus
1.2.26 Pastikan bahwa argumen --etcd-cafile disetel sebagaimana mestinya Otomatis L1 Lulus
1.2.27 Pastikan bahwa argumen --encryption-provider-config disetel sebagaimana mestinya Manual L1 Tergantung pada Lingkungan
1.2.28 Pastikan bahwa penyedia enkripsi dikonfigurasi dengan tepat Manual L1 Tergantung pada Lingkungan
1.2.29 Pastikan bahwa Server API hanya menggunakan Strong Cryptographic Ciphers Manual L1 Lulus
1.3 Manajer Pengontrol
1.3.1 Pastikan bahwa argumen --terminated-pod-gc-threshold disetel sebagaimana mestinya Manual L1 Lulus
1.3.2 Pastikan bahwa argumen --profiling disetel ke false Otomatis L1 Lulus
1.3.3 Pastikan bahwa argumen --use-service-account-credentials disetel ke true Otomatis L1 Lulus
1.3.4 Pastikan bahwa argumen --service-account-private-key-file disetel sebagaimana mestinya Otomatis L1 Lulus
1.3.5 Pastikan bahwa argumen --root-ca-file disetel sebagaimana mestinya Otomatis L1 Lulus
1.3.6 Pastikan bahwa argumen RotateKubeletServerCertificate disetel ke true Otomatis L2 Lulus
1.3.7 Pastikan bahwa argumen --bind-address disetel ke 127.0.0.1 Otomatis L1 Kontrol Setara
1.4 Scheduler
1.4.1 Pastikan bahwa argumen --profiling disetel ke false Otomatis L1 Lulus
1.4.2 Pastikan bahwa argumen --bind-address disetel ke 127.0.0.1 Otomatis L1 Kontrol Setara
2 etcd
2.1 Pastikan bahwa argumen --cert-file dan --key-file disetel sebagaimana mestinya Otomatis L1 Lulus
2.2 Pastikan bahwa argumen --client-cert-auth disetel ke true Otomatis L1 Lulus
2.3 Pastikan bahwa argumen --auto-tls tidak disetel ke true Otomatis L1 Lulus
2.4 Pastikan bahwa argumen --peer-cert-file dan --peer-key-file disetel sebagaimana mestinya Otomatis L1 Lulus
2.5 Pastikan bahwa argumen --peer-client-cert-auth disetel ke true Otomatis L1 Lulus
2.6 Pastikan bahwa argumen --peer-auto-tls tidak disetel ke true Otomatis L1 Lulus
2.7 Pastikan bahwa Otoritas Sertifikat unik digunakan untuk etcd Manual L2 Lulus
3 Konfigurasi Sarana Kontrol
3.1 Autentikasi dan Otorisasi
3.1.1 Autentikasi sertifikat klien tidak boleh digunakan untuk pengguna Manual L1 Lulus
3.1.2 Autentikasi token akun layanan tidak boleh digunakan untuk pengguna Manual L1 Lulus
+3.1.3 Autentikasi token bootstrap tidak boleh digunakan untuk pengguna Manual L1 Lulus
3.2 Pencatatan
3.2.1 Pastikan bahwa kebijakan audit minimal dibuat Manual L1 Lulus
3.2.2 Pastikan bahwa kebijakan audit mencakup masalah keamanan utama Manual L2 Lulus
4 Node Pekerja
4.1 File Konfigurasi Node Pekerja
4.1.1 Pastikan bahwa izin file layanan kubelet diatur ke 600 atau lebih ketat Otomatis L1 Lulus
4.1.2 Pastikan bahwa kepemilikan file layanan kubelet diatur ke root:root Otomatis L1 Lulus
4.1.3 Jika ada file kubeconfig proksi, pastikan izin diatur ke 600 atau lebih ketat Manual L1 T/A
4.1.4 Jika ada file kubeconfig proksi, pastikan kepemilikan diatur ke root:root Manual L1 T/A
4.1.5 Pastikan izin --kubeconfig file kubelet.conf diatur ke 600 atau lebih ketat Otomatis L1 Lulus
4.1.6 Pastikan kepemilikan --kubeconfig file kubelet.conf diatur ke root:root Otomatis L1 Lulus
4.1.7 Pastikan bahwa izin file otoritas sertifikat diatur ke 600 atau lebih ketat Manual L1 Lulus
4.1.8 Pastikan bahwa kepemilikan file otoritas sertifikat klien diatur ke root: root Manual L1 Lulus
4.1.9 Jika file konfigurasi kubelet config.yaml sedang digunakan, pastikan izin diatur ke 600 atau lebih ketat Otomatis L1 Lulus
4.1.10 Jika file konfigurasi kubelet config.yaml sedang digunakan, pastikan kepemilikan file diatur ke root:root Otomatis L1 Lulus
4.2 Kubelet
4.2.1 Pastikan bahwa argumen --anonymous-auth disetel ke false Otomatis L1 Lulus
4.2.2 Pastikan bahwa argumen --authorization-mode tidak disetel ke AlwaysAllow Otomatis L1 Lulus
4.2.3 Pastikan bahwa argumen --client-ca-file disetel sebagaimana mestinya Otomatis L1 Lulus
4.2.4 Pastikan bahwa argumen --read-only-port disetel ke 0 Manual L1 Lulus
4.2.5 Pastikan bahwa argumen --streaming-connection-idle-timeout tidak disetel ke 0 Manual L1 Lulus
4.2.6 Pastikan bahwa argumen --make-iptables-util-chains disetel ke true Otomatis L1 Lulus
4.2.7 Pastikan bahwa argumen --hostname-override tidak disetel Manual L1 Lulus
4.2.8 Pastikan argumen --eventRecordQPS diatur ke tingkat yang memastikan pengambilan peristiwa yang sesuai Manual L2 Lulus
4.2.9 Pastikan bahwa argumen --tls-cert-file dan --tls-private-key-file disetel sebagaimana mestinya Manual L1 Lulus
4.2.10 Pastikan bahwa argumen --rotate-certificates tidak disetel ke false Otomatis L1 Lulus
4.2.11 Verifikasi bahwa argumen RotateKubeletServerCertificate diatur ke true Manual L1 Gagal
4.2.12 Pastikan bahwa Kubelet hanya menggunakan Sandi Kriptografi yang Kuat Manual L1 Lulus
4.2.13 Pastikan batas diatur pada PID pod Manual L1 Lulus
4.3 kube-proxy
4.3.1 Pastikan bahwa layanan metrik kube-proxy terikat ke localhost Otomatis L1 Lulus
5 Kebijakan
5.1 RBAC dan Akun Layanan
5.1.1 Pastikan bahwa peran kluster-admin hanya digunakan jika diperlukan Otomatis L1 Tergantung pada Lingkungan
5.1.2 Minimalkan akses ke rahasia Otomatis L1 Tergantung pada Lingkungan
5.1.3 Minimalkan penggunaan kartubebas di Roles dan ClusterRoles Otomatis L1 Tergantung pada Lingkungan
5.1.4 Minimalkan akses untuk membuat pod Otomatis L1 Tergantung pada Lingkungan
5.1.5 Pastikan bahwa akun layanan default tidak digunakan secara aktif Otomatis L1 Tergantung pada Lingkungan
5.1.6 Pastikan bahwa Token Akun Layanan hanya dipasang jika diperlukan Otomatis L1 Tergantung pada Lingkungan
5.1.7 Hindari penggunaan grup system:masters Manual L1 Tergantung pada Lingkungan
5.1.8 Batasi penggunaan izin Bind, Impersonate, dan Escalate di kluster Kubernetes Manual L1 Tergantung pada Lingkungan
5.1.9 Meminimalkan akses untuk membuat volume persisten Manual L1 Tergantung pada Lingkungan
5.1.10 Meminimalkan akses ke sub-sumber daya proksi simpul Manual L1 Tergantung pada Lingkungan
5.1.11 Meminimalkan akses ke sub-sumber daya persetujuan objek certificatesigningrequests Manual L1 Tergantung pada Lingkungan
5.1.12 Meminimalkan akses ke objek konfigurasi webhook Manual L1 Tergantung pada Lingkungan
5.1.13 Meminimalkan akses ke pembuatan token akun layanan Manual L1 Tergantung pada Lingkungan
5.2 Standar Keamanan Pod
5.2.1 Pastikan bahwa kluster memiliki setidaknya satu mekanisme kontrol kebijakan aktif di tempat Manual L1 Tergantung pada Lingkungan
5.2.2 Minimalkan masuknya kontainer istimewa Manual L1 Tergantung pada Lingkungan
5.2.3 Minimalkan penerimaan kontainer yang ingin berbagi namespace ID proses host Manual L1 Tergantung pada Lingkungan
5.2.4 Minimalkan masuknya kontainer yang ingin berbagi namespace IPC host Manual L1 Tergantung pada Lingkungan
5.2.5 Minimalkan penerimaan kontainer yang ingin berbagi ruang nama jaringan host Manual L1 Tergantung pada Lingkungan
5.2.6 Minimalkan penerimaan kontainer dengan allowPrivilegeEscalation Manual L1 Tergantung pada Lingkungan
5.2.7 Minimalkan masuknya kontainer root Manual L2 Tergantung pada Lingkungan
5.2.8 Minimalkan penerimaan kontainer dengan kemampuan NET_RAW Manual L1 Tergantung pada Lingkungan
5.2.9 Minimalkan penerimaan kontainer dengan kemampuan tambahan Manual L1 Tergantung pada Lingkungan
5.2.10 Minimalkan penerimaan kontainer dengan kemampuan yang ditetapkan Manual L2 Tergantung pada Lingkungan
5.2.11 Meminimalkan penerimaan Kontainer HostProcess Windows Manual L1 Tergantung pada Lingkungan
5.2.12 Meminimalkan penerimaan volume HostPath Manual L1 Tergantung pada Lingkungan
5.2.13 Meminimalkan penerimaan kontainer yang menggunakan HostPorts Manual L1 Tergantung pada Lingkungan
5.3 Kebijakan Jaringan dan CNI
5.3.1 Pastikan bahwa CNI yang digunakan mendukung Kebijakan Jaringan Manual L1 Lulus
5.3.2 Pastikan bahwa semua Namespace memiliki Kebijakan Jaringan yang ditentukan Manual L2 Tergantung pada Lingkungan
5.4 Manajemen Rahasia
5.4.1 Lebih suka menggunakan rahasia sebagai file daripada rahasia sebagai variabel lingkungan Manual L2 Tergantung pada Lingkungan
5.4.2 Pertimbangkan penyimpanan rahasia eksternal Manual L2 Tergantung pada Lingkungan
5.5 Kontrol Masuk yang Dapat Diperluas
5.5.1 Konfigurasikan Sumber Gambar menggunakan pengontrol masuk ImagePolicyWebhook Manual L2 Gagal
5.6 Kebijakan Umum
5.6.1 Buat batasan administratif antara sumber daya menggunakan ruang nama Manual L1 Tergantung pada Lingkungan
5.6.2 Pastikan bahwa profil seccomp disetel ke buruh pelabuhan/default dalam definisi pod Anda Manual L2 Tergantung pada Lingkungan
5.6.3 Terapkan Konteks Keamanan ke Pod dan Kontainer Anda Manual L2 Tergantung pada Lingkungan
5.6.4 Namespace default tidak boleh digunakan Manual L2 Tergantung pada Lingkungan

Catatan

Selain tolok ukur CIS Kubernetes, tersedia juga patokan CIS AKS.

Catatan tambahan

  • OS yang diperkeras keamanan dibangun dan dikelola khusus untuk AKS dan tidak didukung di luar platform AKS.
  • Untuk lebih mengurangi area permukaan serangan, beberapa driver modul kernel yang tidak perlu dinonaktifkan di OS.

Langkah berikutnya

Untuk informasi selengkapnya tentang keamanan AKS, lihat artikel berikut: