Aracılığıyla paylaş


İnternet Güvenliği Merkezi (CIS) Kubernetes karşılaştırması

Azure Kubernetes Service (AKS), güvenli bir hizmet olarak SOC, ISO, PCI DSS ve HIPAA standartlarına uygundur. Bu makale, CIS Kubernetes karşılaştırması temelinde AKS'ye uygulanan güvenlik sağlamlaştırmayı kapsar. AKS güvenliği hakkında daha fazla bilgi için bkz . Azure Kubernetes Service'te (AKS) uygulamalar ve kümeler için güvenlik kavramları. CIS karşılaştırması hakkında daha fazla bilgi için bkz . Internet Güvenliği Merkezi (CIS) Karşılaştırmaları.

Kubernetes CIS karşılaştırması

AKS'de CIS Kubernetes V1.27 Benchmark v1.8.0 önerilerinden elde edilen sonuçlar aşağıdadır. Sonuçlar AKS 1.21.x ile AKS 1.27.x arasında geçerlidir.

Puanlanan öneriler uygulanmadıysa karşılaştırma puanını etkilerken Puanlanmamış öneriler bunu etkilemez.

CIS karşılaştırmaları iki güvenlik ayarı düzeyi sağlar:

  • L1 veya Düzey 1, herhangi bir sistemde yapılandırılabilir temel temel güvenlik gereksinimlerini önerir ve hizmette veya azaltılmış işlevsellikte çok az kesintiye veya hiç neden olmamalıdır.
  • L2 veya Düzey 2, daha fazla güvenlik gerektiren ortamlar için güvenlik ayarlarını önerir ve bu da bazı işlevlerin azalmasına neden olabilir.

Öneriler aşağıdaki durumlardan birine sahip olabilir:

  • Geçiş - Öneri uygulandı.
  • Başarısız - Öneri uygulanmadı.
  • Yok - Öneri, AKS ile ilgili olmayan bildirim dosyası izin gereksinimleriyle ilgilidir. Kubernetes kümeleri varsayılan olarak, düğüm VM'sinden dosyaları kullanan denetim düzlemi podlarını dağıtmak için bir bildirim modeli kullanır. CIS Kubernetes karşılaştırması, bu dosyaların belirli izin gereksinimlerine sahip olması gerektiğini önerir. AKS kümeleri, denetim düzlemi podlarını dağıtmak için Helm grafiği kullanır ve düğüm VM'sindeki dosyalara güvenmez.
  • Ortama bağlıdır - Öneri kullanıcının belirli ortamına uygulanır ve AKS tarafından denetlenmiyor. Puanlanan öneriler, önerinin kullanıcının belirli ortamına uygulanıp uygulanmayacağına bakılmaksızın karşılaştırma puanını etkiler.
  • Eşdeğer Denetim - Öneri farklı ve eşdeğer bir şekilde uygulandı.
CIS Kimliği Öneri açıklaması Puanlama Türü Level Durum
1 Denetim Düzlemi Bileşenleri
1.1 Denetim Düzlemi Düğüm Yapılandırma Dosyaları
1.1.1 API sunucusu pod belirtimi dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.2 API sunucusu pod belirtimi dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.3 Denetleyici yöneticisi pod belirtimi dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.4 Denetleyici yöneticisi pod belirtimi dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.5 Zamanlayıcı pod belirtimi dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.6 Zamanlayıcı pod belirtimi dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.7 Etcd pod belirtimi dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.8 Etcd pod belirtimi dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.9 Kapsayıcı Ağ Arabirimi dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Puan alınmadı L1 Yok
1.1.10 Kapsayıcı Ağ Arabirimi dosya sahipliğinin root:root olarak ayarlandığından emin olun Puan alınmadı L1 Yok
1.1.11 Etcd veri dizini izinlerinin 700 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.12 etcd veri dizini sahipliğinin etcd:etcd olarak ayarlandığından emin olun Attı L1 Yok
1.1.13 admin.conf dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.14 admin.conf dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.15 scheduler.conf dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.16 scheduler.conf dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.17 controller-manager.conf dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.18 controller-manager.conf dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.19 Kubernetes PKI dizininin ve dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Yok
1.1.20 Kubernetes PKI sertifika dosyası izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
1.1.21 Kubernetes PKI anahtar dosyası izinlerinin 600 olarak ayarlandığından emin olun Attı L1 Yok
1.2 API Sunucusu
1.2.1 Bağımsız değişkenin --anonymous-auth false olarak ayarlandığından emin olun Puan alınmadı L1 Başarılı
1.2.2 Parametresinin --token-auth-file ayarlanmadığından emin olun Attı L1 Başarısız
1.2.3 Ayarlanmadığından --DenyServiceExternalIPs emin olun Attı L1 Başarısız
1.2.4 --kubelet-client-certificate ve --kubelet-client-key bağımsız değişkenlerinin uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.2.5 Bağımsız değişkenin --kubelet-certificate-authority uygun şekilde ayarlandığından emin olun Attı L1 Başarısız
1.2.6 Bağımsız değişkenin --authorization-mode AlwaysAllow olarak ayarlanmadığından emin olun Attı L1 Başarılı
1.2.7 Bağımsız değişkenin Node içerdiğinden --authorization-mode emin olun Attı L1 Başarılı
1.2.8 Bağımsız değişkeninin RBAC içerdiğinden --authorization-mode emin olun Attı L1 Başarılı
1.2.9 EventRateLimit erişim denetimi eklentisinin ayarlandığından emin olun Puan alınmadı L1 Başarısız
1.2.10 Giriş denetimi eklentisi AlwaysAdmit'in ayarlanmadığından emin olun Attı L1 Başarılı
1.2.11 Giriş denetimi eklentisi AlwaysPullImages'ın ayarlandığından emin olun Puan alınmadı L1 Başarısız
1.2.12 PodSecurityPolicy kullanılmazsa SecurityContextDeny erişim denetimi eklentisinin ayarlandığından emin olun Puan alınmadı L1 Başarısız
1.2.13 ServiceAccount erişim denetimi eklentisinin ayarlandığından emin olun Attı L1 Başarılı
1.2.14 NamespaceLifecycle erişim denetimi eklentisinin ayarlandığından emin olun Attı L1 Başarılı
1.2.15 NodeRestriction erişim denetimi eklentisinin ayarlandığından emin olun Attı L1 Başarılı
1.2.16 Bağımsız değişkenin --secure-port 0 olarak ayarlanmadığından emin olun Attı L1 Başarılı
1.2.17 Bağımsız değişkenin --profiling false olarak ayarlandığından emin olun Attı L1 Başarılı
1.2.18 Bağımsız değişkenin ayarlandığından --audit-log-path emin olun Attı L1 Eşdeğer Denetim
1.2.19 Bağımsız değişkenin --audit-log-maxage 30 veya uygun olarak ayarlandığından emin olun Attı L1 Eşdeğer Denetim
1.2.20 Bağımsız değişkenin --audit-log-maxbackup 10 veya uygun olarak ayarlandığından emin olun Attı L1 Başarılı
1.2.21 Bağımsız değişkenin --audit-log-maxsize 100 veya uygun olarak ayarlandığından emin olun Attı L1 Başarılı
1.2.22 Bağımsız değişkenin --request-timeout uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.2.23 Bağımsız değişkenin true olarak ayarlandığından --service-account-lookup emin olun Attı L1 Başarılı
1.2.24 Bağımsız değişkenin --service-account-key-file uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.2.25 --etcd-certfile ve --etcd-keyfile bağımsız değişkenlerinin uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.2.26 --tls-cert-file ve --tls-private-key-file bağımsız değişkenlerinin uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.2.27 Bağımsız değişkenin --client-ca-file uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.2.28 Bağımsız değişkenin --etcd-cafile uygun şekilde ayarlandığından emin olun Attı L1 Ortama Bağlıdır
1.2.29 Bağımsız değişkenin --encryption-provider-config uygun şekilde ayarlandığından emin olun Attı L1 Ortama Bağlıdır
1.2.30 Şifreleme sağlayıcılarının uygun şekilde yapılandırıldığından emin olun Attı L1 Ortama Bağlıdır
1.2.31 API Server'ın yalnızca Güçlü Şifreleme Şifrelemeleri kullandığından emin olun Puan alınmadı L1 Başarılı
1.3 Denetleyici Yöneticisi
1.3.1 Bağımsız değişkenin --terminated-pod-gc-threshold uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.3.2 Bağımsız değişkenin --profiling false olarak ayarlandığından emin olun Attı L1 Başarılı
1.3.3 Bağımsız değişkenin true olarak ayarlandığından --use-service-account-credentials emin olun Attı L1 Başarılı
1.3.4 Bağımsız değişkenin --service-account-private-key-file uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.3.5 Bağımsız değişkenin --root-ca-file uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
1.3.6 RotateKubeletServerCertificate bağımsız değişkeninin true olarak ayarlandığından emin olun Attı L2 Başarısız
1.3.7 Bağımsız değişkenin --bind-address 127.0.0.1 olarak ayarlandığından emin olun Attı L1 Eşdeğer Denetim
1.4 Scheduler
1.4.1 Bağımsız değişkenin --profiling false olarak ayarlandığından emin olun Attı L1 Başarılı
1.4.2 Bağımsız değişkenin --bind-address 127.0.0.1 olarak ayarlandığından emin olun Attı L1 Eşdeğer Denetim
2 etcd
2.1 --cert-file ve --key-file bağımsız değişkenlerinin uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
2.2 Bağımsız değişkenin true olarak ayarlandığından --client-cert-auth emin olun Attı L1 Başarılı
2.3 Bağımsız değişkenin --auto-tls true olarak ayarlanmadığından emin olun Attı L1 Başarılı
2.4 --peer-cert-file ve --peer-key-file bağımsız değişkenlerinin uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
2.5 Bağımsız değişkenin true olarak ayarlandığından --peer-client-cert-auth emin olun Attı L1 Başarılı
2,6 Bağımsız değişkenin --peer-auto-tls true olarak ayarlanmadığından emin olun Attı L1 Başarılı
2.7 etcd için benzersiz bir Sertifika Yetkilisi kullanıldığından emin olun Puan alınmadı L2 Başarılı
3 Denetim Düzlemi Yapılandırması
3.1 Kimlik Doğrulama ve Yetkilendirme
3.1.1 İstemci sertifikası kimlik doğrulaması kullanıcılar için kullanılmamalıdır Puan alınmadı L2 Başarılı
3.1.2 Hizmet hesabı belirteci kimlik doğrulaması kullanıcılar için kullanılmamalıdır Puan alınmadı L2 Başarılı
3.1.3 Bootstrap belirteci kimlik doğrulaması kullanıcılar için kullanılmamalıdır Puan alınmadı L2 Başarılı
3.2 Günlük Kaydı
3.2.1 En düşük denetim ilkesinin oluşturulduğuna emin olun Attı L1 Başarılı
3.2.2 Denetim ilkesinin önemli güvenlik sorunlarını kapsadığından emin olun Puan alınmadı L2 Başarılı
4 Çalışan Düğümleri
4.1 Çalışan Düğümü Yapılandırma Dosyaları
4.1.1 Kubelet hizmet dosyası izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Başarılı
4.1.2 kubelet hizmeti dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Başarılı
4.1.3 Ara sunucu kubeconfig dosyası varsa, izinlerin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Yok
4.1.4 Ara sunucu kubeconfig dosyası varsa sahipliğin root:root olarak ayarlandığından emin olun Attı L1 Yok
4.1.5 --kubeconfig kubelet.conf dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Başarılı
4.1.6 kubelet.conf dosya sahipliğinin --kubeconfig root:root olarak ayarlandığından emin olun Attı L1 Başarılı
4.1.7 Sertifika yetkilileri dosya izinlerinin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Başarılı
4.1.8 İstemci sertifika yetkilileri dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Başarılı
4.1.9 kubelet config.yaml yapılandırma dosyası kullanılıyorsa, izinlerin 600 veya daha kısıtlayıcı olarak ayarlandığından emin olun Attı L1 Başarılı
4.1.10 kubelet config.yaml yapılandırma dosyası kullanılıyorsa, dosya sahipliğinin root:root olarak ayarlandığından emin olun Attı L1 Başarılı
4.2 Kubelet
4.2.1 Bağımsız değişkenin --anonymous-auth false olarak ayarlandığından emin olun Attı L1 Başarılı
4.2.2 Bağımsız değişkenin --authorization-mode AlwaysAllow olarak ayarlanmadığından emin olun Attı L1 Başarılı
4.2.3 Bağımsız değişkenin --client-ca-file uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
4.2.4 Bağımsız değişkenin --read-only-port 0 olarak ayarlandığından emin olun Attı L1 Başarılı
4.2.5 Bağımsız değişkenin --streaming-connection-idle-timeout 0 olarak ayarlanmadığından emin olun Attı L1 Başarılı
4.2.6 Bağımsız değişkenin true olarak ayarlandığından --protect-kernel-defaults emin olun Attı L1 Başarılı
4.2.7 Bağımsız değişkenin true olarak ayarlandığından --make-iptables-util-chains emin olun Attı L1 Başarılı
4.2.8 Bağımsız değişkenin --hostname-override ayarlanmadığından emin olun Puan alınmadı L1 Başarılı
4.2.9 eventRecordQPS bağımsız değişkeninin uygun olay yakalamayı sağlayan bir düzeye ayarlandığından emin olun Puan alınmadı L2 Başarılı
4.2.10 --tls-cert-fileve --tls-private-key-file bağımsız değişkenlerinin uygun şekilde ayarlandığından emin olun Attı L1 Başarılı
4.2.11 Bağımsız değişkenin --rotate-certificates false olarak ayarlanmadığından emin olun Attı L1 Başarılı
4.2.12 RotateKubeletServerCertificate bağımsız değişkeninin true olarak ayarlandığından emin olun Attı L1 Başarılı
4.2.13 Kubelet'in yalnızca Güçlü Şifreleme Şifrelemeleri kullandığından emin olun Puan alınmadı L1 Başarılı
5 İlkeler
5.1 RBAC ve Hizmet Hesapları
5.1.1 Küme yöneticisi rolünün yalnızca gerektiğinde kullanıldığından emin olun Puan alınmadı L1 Ortama Bağlıdır
5.1.2 Gizli dizilere erişimi en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.1.3 Roller ve ClusterRoles'te joker karakter kullanımını en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.1.4 Pod oluşturmak için erişimi en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.1.5 Varsayılan hizmet hesaplarının etkin olarak kullanılmadığından emin olun Attı L1 Ortama Bağlıdır
5.1.6 Hizmet Hesabı Belirteçlerinin yalnızca gerekli yerlerde bağlandığından emin olun Puan alınmadı L1 Ortama Bağlıdır
5.1.7 system:masters grubunun kullanımından kaçının Puan alınmadı L1 Ortama Bağlıdır
5.1.8 Kubernetes kümesinde Bağlama, Kimliğe Bürünme ve Yükseltme izinlerinin kullanımını sınırlayın Puan alınmadı L1 Ortama Bağlıdır
5.1.9 Kalıcı birimler oluşturmak için erişimi en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.1.10 Düğümlerin ara sunucu alt kaynağına erişimi en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.1.11 certificatesigningrequests nesnelerinin onay alt kaynağına erişimi en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.1.12 Web kancası yapılandırma nesnelerine erişimi en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.1.13 Hizmet hesabı belirteci oluşturmaya erişimi en aza indirme Puan alınmadı L1 Ortama Bağlıdır
5.2 Pod Güvenlik İlkeleri
5.2.1 Kümede en az bir etkin ilke denetim mekanizması olduğundan emin olun Puan alınmadı L1 Ortama Bağlıdır
5.2.2 Ayrıcalıklı kapsayıcıların kabulünün en aza indirilmesi Puan alınmadı L1 Ortama Bağlıdır
5.2.3 Konak işlem kimliği ad alanını paylaşmak isteyen kapsayıcıların kabulünün en aza indirilmesi Attı L1 Ortama Bağlıdır
5.2.4 Konak IPC ad alanını paylaşmak isteyen kapsayıcıların kabulünün en aza indirilmesi Attı L1 Ortama Bağlıdır
5.2.5 Konak ağ ad alanını paylaşmak isteyen kapsayıcıların kabulünün en aza indirilmesi Attı L1 Ortama Bağlıdır
5.2.6 allowPrivilegeEscalation ile kapsayıcıların kabulünün en aza indirilmesi Attı L1 Ortama Bağlıdır
5.2.6 Kök kapsayıcıların kabulünü en aza indirme Puan alınmadı L2 Ortama Bağlıdır
5.2.7 NET_RAW özelliğiyle kapsayıcıların kabulünün en aza indirilmesi Puan alınmadı L1 Ortama Bağlıdır
5.2.8 Eklenen özelliklerle kapsayıcıların kabulünün en aza indirilmesi Puan alınmadı L1 Ortama Bağlıdır
5.2.9 Atanan özelliklerle kapsayıcıların kabulünün en aza indirilmesi Puan alınmadı L1 Ortama Bağlıdır
5.2.10 Atanan özelliklerle kapsayıcıların kabulünün en aza indirilmesi Puan alınmadı L2
5.2.11 Windows HostProcess Kapsayıcıları'nın kabulünün en aza indirilmesi Puan alınmadı L1 Ortama Bağlıdır
5.2.12 HostPath birimlerinin kabulünün en aza indirilmesi Puan alınmadı L1 Ortama Bağlıdır
5.2.13 HostPorts kullanan kapsayıcıların kabulünün en aza indirilmesi Puan alınmadı L1 Ortama Bağlıdır
5.3 Ağ İlkeleri ve CNI
5.3.1 Kullanımdaki CNI'nin Ağ İlkeleri'ni desteklediğinden emin olun Puan alınmadı L1 Başarılı
5.3.2 Tüm Ad Alanlarının Tanımlanmış Ağ İlkeleri olduğundan emin olun Attı L2 Ortama Bağlıdır
5,4 Gizli Dizi Yönetimi
5.4.1 Ortam değişkenleri olarak gizli diziler yerine gizli dizileri dosya olarak kullanmayı tercih edin Puan alınmadı L1 Ortama Bağlıdır
5.4.2 Dış gizli dizi depolamayı göz önünde bulundurun Puan alınmadı L2 Ortama Bağlıdır
5.5 Genişletilebilir Erişim Denetimi
5.5.1 ImagePolicyWebhook erişim denetleyicisini kullanarak Image Provenance'ı yapılandırma Puan alınmadı L2 Başarısız
5.7 Genel İlkeler
5.7.1 Ad alanlarını kullanarak kaynaklar arasında yönetim sınırları oluşturma Puan alınmadı L1 Ortama Bağlıdır
5.7.2 Pod tanımlarınızda seccomp profilinin docker/default olarak ayarlandığından emin olun Puan alınmadı L2 Ortama Bağlıdır
5.7.3 Podlarınıza ve Kapsayıcılarınıza Güvenlik Bağlamı Uygulama Puan alınmadı L2 Ortama Bağlıdır
5.7.4 Varsayılan ad alanı kullanılmamalıdır Attı L2 Ortama Bağlıdır

Not

Kubernetes CIS karşılaştırmasına ek olarak aks CIS karşılaştırması da mevcuttur.

Ek notlar

  • Güvenliği sağlamlaştırılmış işletim sistemi aks için özel olarak derlenir ve korunur ve AKS platformu dışında desteklenmez .
  • Saldırı yüzeyi alanını daha da azaltmak için işletim sisteminde bazı gereksiz çekirdek modülü sürücüleri devre dışı bırakılmıştır.

Sonraki adımlar

AKS güvenliği hakkında daha fazla bilgi için aşağıdaki makalelere bakın: