Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 Kubernetes CIS
Berikut ini adalah hasil dari rekomendasi CIS Kubernetes V1.27 Benchmark v1.9.0 pada AKS. Hasilnya berlaku untuk AKS 1.27.x hingga AKS 1.29.x, di mana 1.29.x akan mencapai akhir dukungan pada Maret 2025.
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 sebagai berikut:
- Otomatis: Mewakili rekomendasi di mana penilaian kontrol teknis dapat sepenuhnya otomatis dan divalidasi ke status lulus/gagal. Rekomendasi mencakup 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 diterapkan.
- Gagal: Rekomendasi tidak 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 control plane, yang bergantung pada 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 diimplementasikan dengan cara yang berbeda dan setara.
Rincian patokan
ID CIS | Deskripsi rekomendasi | Status penilaian | Tingkat | Kedudukan | Alasan |
---|---|---|---|---|---|
1 | Komponen Sarana Kontrol | ||||
1.1 | File Konfigurasi Node Sarana Kontrol | ||||
1.1.1 | Pastikan izin file spesifikasi pod server API disetel ke 600 atau lebih ketat | Otomatis | L1 | T/A | |
1.1.2 | Pastikan bahwa kepemilikan file spesifikasi pod server API ditetapkan 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 ditetapkan menjadi 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 kepemilikan file spesifikasi pod etcd diatur sebagai root: root |
Otomatis | L1 | T/A | |
1.1.9 | Pastikan bahwa izin file Antarmuka Jaringan Kontainer diatur ke 600 atau lebih ketat | Panduan | L1 | T/A | |
1.1.10 | Pastikan kepemilikan file Antarmuka Jaringan Kontainer diatur ke root: root |
Panduan | 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 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 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 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 | Panduan | L1 | T/A | |
1.1.21 | Pastikan bahwa izin file kunci PKI Kubernetes diatur ke 600 | Panduan | L1 | T/A | |
1.2 | Server API | ||||
1.2.1 | Pastikan bahwa argumen --anonymous-auth disetel ke false |
Panduan | L1 | Lulus | |
1.2.2 | Pastikan parameter --token-auth-file tidak diatur |
Otomatis | L1 | Gagal | Kontrol yang setara diimplementasikan |
1.2.3 | Pastikan bahwa --DenyServiceExternalIPs tidak disetel |
Panduan | L1 | Gagal | Kontrol setara yang diimplementasikan |
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 argumen --authorization-mode tidak diatur 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 | Panduan | L1 | Gagal | Dampak operasional |
1.2.10 | Pastikan bahwa plugin kontrol penerimaan AlwaysAdmit tidak diatur | Otomatis | L1 | Lulus | |
1.2.11 | Pastikan bahwa plugin kontrol penerimaan AlwaysPullImages disetel | Panduan | L1 | Gagal | Dampak operasional |
1.2.12 | Pastikan bahwa plugin kontrol masuk ServiceAccount disetel | Otomatis | L2 | Gagal | Kontrol yang setara diimplementasikan |
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 |
Panduan | 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 |
Panduan | L1 | Tergantung pada Lingkungan | |
1.2.28 | Pastikan bahwa penyedia enkripsi dikonfigurasi dengan tepat | Panduan | L1 | Tergantung pada Lingkungan | |
1.2.29 | Pastikan bahwa Server API hanya menggunakan Strong Cryptographic Ciphers | Panduan | L1 | Lulus | |
1.3 | Manajer Pengontrol | ||||
1.3.1 | Pastikan bahwa argumen --terminated-pod-gc-threshold disetel sebagaimana mestinya |
Panduan | 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 | Penjadwal | ||||
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 argumen --auto-tls tidak disetel menjadi benar |
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 argumen --peer-auto-tls tidak diatur ke true |
Otomatis | L1 | Lulus | |
2.7 | Pastikan bahwa Otoritas Sertifikat unik digunakan untuk etcd |
Panduan | L2 | Lulus | |
3 | Konfigurasi Sarana Kontrol | ||||
3.1 | Autentikasi dan Otorisasi | ||||
3.1.1 | Autentikasi sertifikat klien tidak boleh digunakan untuk pengguna | Panduan | L1 | Lulus | |
3.1.2 | Autentikasi token akun layanan tidak boleh digunakan untuk pengguna | Panduan | L1 | Lulus | |
3.1.3 | Autentikasi token bootstrap tidak boleh digunakan untuk pengguna | Panduan | L1 | Lulus | |
3.2 | Pencatatan | ||||
3.2.1 | Pastikan bahwa kebijakan audit minimal dibuat | Panduan | L1 | Lulus | |
3.2.2 | Pastikan bahwa kebijakan audit mencakup masalah keamanan utama | Panduan | 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 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 lagi | Panduan | L1 | T/A | |
4.1.4 | Jika ada file kubeconfig proksi, pastikan kepemilikan diatur ke root: root |
Panduan | 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 | Panduan | L1 | Lulus | |
4.1.8 | Pastikan bahwa berkas otoritas sertifikat klien diatur kepemilikannya ke root: root |
Panduan | 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 argumen --authorization-mode tidak diatur 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 |
Panduan | L1 | Lulus | |
4.2.5 | Pastikan argumen --streaming-connection-idle-timeout tidak diatur ke 0 |
Panduan | L1 | Lulus | |
4.2.6 | Pastikan bahwa argumen --make-iptables-util-chains disetel ke true |
Otomatis | L1 | Lulus | |
4.2.7 | Pastikan argumen --hostname-override tidak diatur |
Panduan | L1 | Lulus | |
4.2.8 | Pastikan argumen --eventRecordQPS diatur ke tingkat yang memastikan pengambilan peristiwa yang sesuai |
Panduan | L2 | Lulus | |
4.2.9 | Pastikan bahwa argumen --tls-cert-file dan --tls-private-key-file disetel sebagaimana mestinya |
Panduan | L1 | Lulus | |
4.2.10 | Pastikan argumen --rotate-certificates tidak diatur ke false |
Otomatis | L1 | Lulus | |
4.2.11 | Verifikasi bahwa argumen RotateKubeletServerCertificate disetel menjadi true | Panduan | L1 | Gagal | |
4.2.12 | Pastikan bahwa Kubelet hanya menggunakan Sandi Kriptografi yang Kuat | Panduan | L1 | Lulus | |
4.2.13 | Pastikan batas diatur pada PID pod | Panduan | L1 | Lulus | |
4.3 | kube-proxy | ||||
4.3.1 | Pastikan bahwa layanan metrik kube-proxy terikat ke localhost | Otomatis | L1 | Gagal | Dampak operasional |
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 | Kurangi penggunaan wildcard 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 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 sistem: grup master | Panduan | L1 | Tergantung pada Lingkungan | |
5.1.8 | Batasi penggunaan izin Bind, Impersonate, dan Escalate di kluster Kubernetes | Panduan | L1 | Tergantung pada Lingkungan | |
5.1.9 | Meminimalkan akses untuk membuat volume persisten | Panduan | L1 | Tergantung pada Lingkungan | |
5.1.10 | Meminimalkan akses ke sub sumber daya proksi simpul | Panduan | L1 | Tergantung pada Lingkungan | |
5.1.11 | Meminimalkan akses ke sub-sumber daya persetujuan pada objek certificatesigningrequests |
Panduan | L1 | Tergantung pada Lingkungan | |
5.1.12 | Meminimalkan akses ke objek konfigurasi webhook | Panduan | L1 | Tergantung pada Lingkungan | |
5.1.13 | Meminimalkan akses ke pembuatan token akun layanan | Panduan | L1 | Tergantung pada Lingkungan | |
5.2 | Standar Keamanan Pod | ||||
5.2.1 | Pastikan bahwa kluster memiliki setidaknya satu mekanisme kontrol kebijakan aktif di tempat | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.2 | Minimalkan masuknya kontainer istimewa | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.3 | Minimalkan penerimaan kontainer yang ingin berbagi namespace ID proses host | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.4 | Minimalkan masuknya kontainer yang ingin berbagi namespace IPC host | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.5 | Minimalkan penerimaan kontainer yang ingin berbagi ruang nama jaringan host | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.6 | Minimalkan penerimaan kontainer dengan allowPrivilegeEscalation | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.7 | Minimalkan masuknya kontainer root | Panduan | L2 | Tergantung pada Lingkungan | |
5.2.8 | Minimalkan penerimaan kontainer dengan kemampuan NET_RAW | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.9 | Minimalkan penerimaan wadah yang memiliki kemampuan tambahan | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.10 | Minimalisir pemasukan kontainer dengan kemampuan yang telah ditugaskan | Panduan | L2 | Tergantung pada Lingkungan | |
5.2.11 | Meminimalkan penerimaan Kontainer HostProcess Windows | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.12 | Meminimalkan penerimaan volume HostPath | Panduan | L1 | Tergantung pada Lingkungan | |
5.2.13 | Meminimalkan penerimaan kontainer yang menggunakan HostPorts | Panduan | L1 | Tergantung pada Lingkungan | |
5.3 | Kebijakan Jaringan dan CNI | ||||
5.3.1 | Pastikan bahwa CNI yang digunakan mendukung Kebijakan Jaringan | Panduan | L1 | Lulus | |
5.3.2 | Pastikan bahwa semua Namespace memiliki Kebijakan Jaringan yang ditentukan | Panduan | L2 | Tergantung pada Lingkungan | |
5.4 | Manajemen Rahasia | ||||
5.4.1 | Lebih suka menggunakan rahasia sebagai file daripada rahasia sebagai variabel lingkungan | Panduan | L2 | Tergantung pada Lingkungan | |
5.4.2 | Pertimbangkan penyimpanan rahasia eksternal | Panduan | L2 | Tergantung pada Lingkungan | |
5.5 | Kontrol Masuk yang Dapat Diperluas | ||||
5.5.1 | Konfigurasikan Asal Usul Gambar menggunakan pengendali penerimaan ImagePolicyWebhook | Panduan | L2 | Gagal | Kontrol yang setara diimplementasikan |
5.6 | Kebijakan Umum | ||||
5.6.1 | Buat batasan administratif antara sumber daya menggunakan ruang nama | Panduan | L1 | Tergantung pada Lingkungan | |
5.6.2 | Pastikan bahwa profil seccomp diatur ke docker/default dalam definisi pod Anda | Panduan | L2 | Tergantung pada Lingkungan | |
5.6.3 | Terapkan Konteks Keamanan ke Pod dan Kontainer Anda | Panduan | L2 | Tergantung pada Lingkungan | |
5.6.4 | Namespace default tidak boleh digunakan | Panduan | L2 | Tergantung pada Lingkungan |
Catatan
Selain tolok ukur CIS Kubernetes, ada tolok ukur CIS AKS juga tersedia.
Catatan lainnya
- 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:
Azure Kubernetes Service