Test porównawczy platformy Kubernetes w usłudze Center for Internet Security (CIS)

Jako bezpieczna usługa Azure Kubernetes Service (AKS) jest zgodna ze standardami SOC, ISO, PCI DSS i HIPAA. W tym artykule opisano wzmocnienie zabezpieczeń stosowane do usługi AKS na podstawie testu porównawczego CIS Kubernetes. Aby uzyskać więcej informacji na temat zabezpieczeń usługi AKS, zobacz Zabezpieczenia dotyczące aplikacji i klastrów w Azure Kubernetes Service (AKS). Aby uzyskać więcej informacji na temat testu porównawczego CIS, zobacz Centrum testów porównawczych zabezpieczeń internetowych (CIS).

Test odniesienia CIS dla platformy Kubernetes

Poniżej przedstawiono wyniki zaleceń CIS Kubernetes Benchmark w wersji 1.12.0 na platformie AKS. Wyniki mają zastosowanie do wersji AKS 1.32.x do 1.34.x. Aby uzyskać informacje na temat harmonogramu wsparcia, zobacz obsługiwane wersje platformy Kubernetes.

Uwaga

Oprócz testu porównawczego CIS dla Kubernetes, dostępny jest również benchmark CIS dla AKS.

Poziomy zabezpieczeń

Testy porównawcze CIS zapewniają dwa poziomy ustawień zabezpieczeń:

  • L1 lub Poziom 1 zaleca podstawowe wymagania dotyczące zabezpieczeń, które można skonfigurować w dowolnym systemie i powinny powodować niewielkie przerwy w działaniu usługi lub ograniczonej funkcjonalności.
  • L2 lub Poziom 2 zaleca ustawienia zabezpieczeń dla środowisk wymagających większego bezpieczeństwa, co może spowodować zmniejszenie funkcjonalności.

Stan oceny

Stan oceny jest uwzględniany dla każdego zalecenia. Stan oceny wskazuje, czy dana rekomendacja może być zautomatyzowana, czy wymaga ręcznego wykonania kroków. Oba stany są równie ważne i są określane i obsługiwane w następujący sposób:

  • Zautomatyzowane: reprezentuje zalecenia, dla których ocena kontroli technicznej może być w pełni zautomatyzowana i zweryfikowana w stanie pass/fail. Zalecenia obejmują niezbędne informacje do zaimplementowania automatyzacji.
  • Ręczne: reprezentuje zalecenia, dla których ocena kontroli technicznej nie może być w pełni zautomatyzowana i wymaga wszystkich lub niektórych ręcznych kroków w celu sprawdzenia, czy skonfigurowany stan jest ustawiony zgodnie z oczekiwaniami. Oczekiwany stan może się różnić w zależności od środowiska.

Zautomatyzowane rekomendacje wpływają na ocenę porównawczą, jeśli nie są stosowane, a rekomendacje ręczne nie są stosowane.

Stan zaświadczania

Zalecenia mogą mieć jeden z następujących statusów atestacji:

  • Pass: Zalecenie zostało zastosowane.
  • Niepowodzenie: zalecenie nie zostało zastosowane.
  • N/A: Zalecenie dotyczy wymagań dotyczących uprawnień w pliku manifestu, które nie są istotne dla AKS. Klastry Kubernetes domyślnie używają modelu manifestu do wdrażania zasobników płaszczyzny kontrolnej, opierając się na plikach z wirtualnej maszyny węzła. Test porównawczy CIS Kubernetes zaleca, aby te pliki miały pewne wymagania dotyczące uprawnień. Klastry usługi AKS używają wykresu Helm do wdrażania zasobników płaszczyzny sterowania i nie polegają na plikach na maszynie wirtualnej węzła.
  • Zależy od środowiska: zalecenie jest stosowane w określonym środowisku użytkownika i nie jest kontrolowane przez usługę AKS. Zautomatyzowane rekomendacje wpływają na ocenę porównawczą, czy rekomendacja ma zastosowanie do określonego środowiska użytkownika, czy nie.
  • Równoważna kontrola: zalecenie zostało zaimplementowane w inny, równoważny sposób.

Szczegóły testu porównawczego

Identyfikator CIS Opis rekomendacji Stan oceny Poziom Stan Powód
1 Składniki płaszczyzny sterowania
1.1 Pliki konfiguracji węzła płaszczyzny sterowania
1.1.1 Upewnij się, że uprawnienia pliku specyfikacji zasobnika serwera interfejsu API są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.2 Upewnij się, że właściciel pliku specyfikacji podu serwera API jest ustawiony na wartość root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.3 Upewnij się, że uprawnienia pliku specyfikacji podu menedżera kontrolera są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.4 Upewnij się, że własność pliku specyfikacji zasobnika menedżera kontrolera jest ustawiona na root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.5 Zadbaj o to, aby uprawnienia pliku specyfikacji harmonogramu były ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.6 Upewnij się, że przynależność pliku specyfikacji zasobnika harmonogramu jest ustawiona na root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.7 Upewnij się, że uprawnienia pliku specyfikacji zasobnika etcd są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.8 Upewnij się, że własność pliku specyfikacji podu etcd jest ustawiona na root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.9 Upewnij się, że uprawnienia pliku interfejsu sieciowego kontenera są ustawione na 600 lub bardziej restrykcyjne Instrukcja L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.10 Upewnij się, że właścicielstwo pliku interfejsu sieciowego kontenera jest ustawione na root: root Instrukcja L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.11 Upewnij się, że uprawnienia katalogu danych etcd są ustawione na 700 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.12 Upewnij się, że właściwość katalogu danych etcd została ustawiona na etcd:etcd Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.13 Upewnij się, że uprawnienia pliku admin.conf są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.14 Upewnij się, że właściwość pliku admin.conf jest ustawiona na wartość root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.15 Upewnij się, że uprawnienia pliku scheduler.conf są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.16 Upewnij się, że właściwość pliku scheduler.conf jest ustawiona na wartość root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.17 Upewnij się, że uprawnienia pliku controller-manager.conf są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.18 Upewnij się, że właściwość pliku controller-manager.conf jest ustawiona na wartość root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.19 Upewnij się, że dla katalogu PKI Kubernetes i własności pliku ustawiono wartość root: root Zautomatyzowane L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.20 Upewnij się, że uprawnienia pliku certyfikatu PKI platformy Kubernetes są ustawione na 600 lub bardziej restrykcyjne Instrukcja L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.1.21 Upewnij się, że uprawnienia pliku klucza PKI platformy Kubernetes są ustawione na 600 Instrukcja L1 Nie dotyczy Nie dotyczy, ponieważ usługa AKS jest rozwiązaniem zarządzanym
1.2 Serwer interfejsu API
1.2.1 Upewnij się, że --anonymous-auth argument ma wartość false Instrukcja L1 Pomiń
1.2.2 Upewnij się, że --token-auth-file parametr nie jest ustawiony Zautomatyzowane L1 Niepowodzenie Zarządzane przez AKS. Parametr jest ustawiany i obracany automatycznie i nie jest konfigurowalny przez klienta.
1.2.3 Upewnij się, że --DenyServiceExternalIPs nie ustawiono Instrukcja L1 Niepowodzenie Klienci mogą używać Azure Policy dla platformy Kubernetes do odmowy usług z zewnętrznym adresem IP.
1.2.4 Upewnij się, że --kubelet-client-certificate i --kubelet-client-key argument są ustawione odpowiednio Zautomatyzowane L1 Pomiń
1.2.5 Upewnij się, że --kubelet-certificate-authority argument jest ustawiony zgodnie z potrzebami Zautomatyzowane L1 Niepowodzenie Kubelet korzysta z certyfikatu obsługującego, który jest certyfikatem z własnym podpisem
1.2.6 Upewnij się, że --authorization-mode argument nie jest ustawiony na AlwaysAllow Zautomatyzowane L1 Pomiń
1.2.7 Upewnij się, że argument --authorization-mode zawiera Node. Zautomatyzowane L1 Pomiń
1.2.8 Upewnij się, że argument zawiera kontrolę dostępu opartą na rolach --authorization-mode Zautomatyzowane L1 Pomiń
1.2.9 Upewnij się, że ustawiono wtyczkę kontroli dostępu EventRateLimit Instrukcja L1 Niepowodzenie Wpływ operacyjny
1.2.10 Upewnij się, że wtyczka AlwaysAdmit kontroli dostępu nie jest ustawiona Zautomatyzowane L1 Pomiń
1.2.11 Upewnij się, że ustawiono wtyczkę kontroli dostępu AlwaysPullImages Instrukcja L1 Niepowodzenie Wpływ operacyjny
1.2.12 Upewnij się, że ustawiono wtyczkę kontroli dostępu ServiceAccount Zautomatyzowane L2 Pomiń
1.2.13 Upewnij się, że ustawiono wtyczkę kontroli dostępu NamespaceLifecycle Zautomatyzowane L2 Pomiń
1.2.14 Upewnij się, że ustawiono wtyczkę kontroli dostępu NodeRestriction Zautomatyzowane L2 Pomiń
1.2.15 Upewnij się, że --profiling argument ma wartość false Zautomatyzowane L1 Pomiń
1.2.16 Upewnij się, że --audit-log-path argument jest ustawiony Zautomatyzowane L1 Pomiń
1.2.17 Upewnij się, że --audit-log-maxage argument jest ustawiony na 30 lub odpowiednio Zautomatyzowane L1 Równoważna kontrola Usługa AKS przechowuje dziennik inspekcji przez 14 dni, plik Deployment.yaml ma ustawioną wartość 0.
1.2.18 Upewnij się, że --audit-log-maxbackup argument jest ustawiony na 10 lub odpowiednio Zautomatyzowane L1 Równoważna kontrola Usługa AKS przechowuje dziennik inspekcji przez 14 dni, plik Deployment.yaml ma ustawioną wartość 0.
1.2.19 Upewnij się, że --audit-log-maxsize argument jest ustawiony na 100 lub odpowiednio Zautomatyzowane L1 Pomiń
1.2.20 Upewnij się, że --request-timeout argument jest ustawiony zgodnie z potrzebami Instrukcja L1 Pomiń Parametr nie jest ustawiony, co spowoduje ustawienie wartości domyślnej = 60s (która jest zgodna)
1.2.21 Upewnij się, że --service-account-lookup argument ma wartość true Zautomatyzowane L1 Pomiń Parametr nie jest ustawiony, co spowoduje ustawienie wartości domyślnej jako true (która jest zgodna)
1.2.22 Upewnij się, że --service-account-key-file argument jest ustawiony zgodnie z potrzebami Zautomatyzowane L1 Pomiń
1.2.23 Upewnij się, że --etcd-certfile i --etcd-keyfile argument są ustawione odpowiednio Zautomatyzowane L1 Pomiń
1.2.24 Upewnij się, że --tls-cert-file i --tls-private-key-file argument są ustawione odpowiednio Zautomatyzowane L1 Pomiń
1.2.25 Upewnij się, że --client-ca-file argument jest ustawiony zgodnie z potrzebami Zautomatyzowane L1 Pomiń
1.2.26 Upewnij się, że --etcd-cafile argument jest ustawiony zgodnie z potrzebami Zautomatyzowane L1 Pomiń
1.2.27 Upewnij się, że --encryption-provider-config argument jest ustawiony zgodnie z potrzebami Instrukcja L1 Zależy od środowiska Argument jest ustawiany po włączeniu Azure KMS
1.2.28 Upewnij się, że dostawcy szyfrowania są odpowiednio skonfigurowani Instrukcja L1 Zależy od środowiska Argument jest ustawiany po włączeniu Azure KMS
1.2.29 Upewnij się, że serwer api używa tylko silnych szyfrów kryptograficznych Instrukcja L1 Pomiń Usługa AKS obsługuje podzestaw 4 silnych pakietów szyfrów spośród 21 zalecanych przez CIS.
1.2.30 Upewnij się, że --service-account-extend-token-expiration parametr ma wartość false Zautomatyzowane L1 Zależy od środowiska Ten parametr jest ustawiony na wartość false, gdy funkcja OIDC jest włączona w klastrze
1.3 Menedżer kontrolerów
1.3.1 Upewnij się, że --terminated-pod-gc-threshold argument jest ustawiony zgodnie z potrzebami Instrukcja L1 Pomiń Usługa AKS ustawia wartość domyślną na 6000 zamiast 12500
1.3.2 Upewnij się, że --profiling argument ma wartość false Zautomatyzowane L1 Pomiń
1.3.3 Upewnij się, że --use-service-account-credentials argument ma wartość true Zautomatyzowane L1 Pomiń
1.3.4 Upewnij się, że --service-account-private-key-file argument jest ustawiony zgodnie z potrzebami Zautomatyzowane L1 Pomiń
1.3.5 Upewnij się, że --root-ca-file argument jest ustawiony zgodnie z potrzebami Zautomatyzowane L1 Pomiń
1.3.6 Upewnij się, że argument RotateKubeletServerCertificate ma wartość true Zautomatyzowane L2 Pomiń Parametr jest ustawiony na true, zobacz Kubelet Serving Certificate Rotation
1.3.7 Upewnij się, że --bind-address argument jest ustawiony na 127.0.0.1 Zautomatyzowane L1 Równoważna kontrola Adres IP poda jest używany
1.4 Harmonogram
1.4.1 Upewnij się, że --profiling argument ma wartość false Zautomatyzowane L1 Pomiń
1.4.2 Upewnij się, że --bind-address argument jest ustawiony na 127.0.0.1 Zautomatyzowane L1 Równoważna kontrola Adres IP poda jest używany
2 etcd
2.1 Upewnij się, że --cert-file i --key-file argument są ustawione odpowiednio Zautomatyzowane L1 Pomiń
2,2 Upewnij się, że --client-cert-auth argument ma wartość true Zautomatyzowane L1 Pomiń
2.3 Upewnij się, że --auto-tls argument nie jest ustawiony na true Zautomatyzowane L1 Pomiń Parametr nie jest ustawiony, co spowoduje ustawienie wartości domyślnej jako false (która jest zgodna)
2,4 Upewnij się, że --peer-cert-file i --peer-key-file argument są ustawione odpowiednio Zautomatyzowane L1 Pomiń
2,5 Upewnij się, że --peer-client-cert-auth argument ma wartość true Zautomatyzowane L1 Pomiń
2.6 Upewnij się, że --peer-auto-tls argument nie jest ustawiony na true Zautomatyzowane L1 Pomiń Parametr nie jest ustawiony, co spowoduje ustawienie wartości domyślnej jako false (która jest zgodna)
2.7 Upewnij się, że do etcd używany jest unikalny urząd certyfikacji Instrukcja L2 Pomiń --client-ca-file dla serwera API różni się od --trusted-ca-file dla etcd
3 Konfiguracja płaszczyzny sterowania
3.1 Uwierzytelnianie i autoryzacja
3.1.1 Uwierzytelnianie certyfikatu klienta nie powinno być używane dla użytkowników Instrukcja L1 Pomiń Podczas wdrażania klastra usługi AKS konta lokalne są domyślnie włączone. Możesz wyłączyć konta lokalne, aby wyłączyć certyfikaty klienta na potrzeby uwierzytelniania.
3.1.2 Uwierzytelnianie tokenu konta usługi nie powinno być używane dla użytkowników Instrukcja L1 Pomiń Usługa AKS zapewnia obsługę uwierzytelniania dla żądań wysyłanych do warstwy kontrolnej klastra za pomocą Microsoft Entra. Użycie tokenów konta usługi jest pozostawione klientowi (aby wymusić najlepszą praktykę w razie potrzeby)
3.1.3 Uwierzytelnianie tokenu bootstrap nie powinno być używane dla użytkowników Instrukcja L1 Pomiń Tokeny bootstrap nie mogą być używane przez użytkowników
3.2 Rejestrowanie
3.2.1 Upewnij się, że utworzono minimalne zasady inspekcji Instrukcja L1 Pomiń
3.2.2 Upewnij się, że zasady inspekcji obejmują kluczowe zagadnienia dotyczące zabezpieczeń Instrukcja L2 Pomiń
4 Węzły procesu roboczego
4.1 Pliki konfiguracyjne węzła roboczego
4.1.1 Upewnij się, że uprawnienia pliku usługi kubelet są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Pomiń
4.1.2 Upewnij się, że własność pliku kubelet jest ustawiona na wartość root: root Zautomatyzowane L1 Pomiń
4.1.3 Jeśli plik kubeconfig serwera proxy istnieje, upewnij się, że uprawnienia są ustawione na 600 lub bardziej restrykcyjne Instrukcja L1 Nie dotyczy
4.1.4 Jeśli plik kubeconfig serwera proxy istnieje, upewnij się, że własność jest ustawiona na root: root Instrukcja L1 Nie dotyczy
4.1.5 Upewnij się, że --kubeconfig uprawnienia pliku kubelet.conf są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Pomiń
4.1.6 Upewnij się, że --kubeconfig właściwość pliku kubelet.conf jest ustawiona na wartość root: root Zautomatyzowane L1 Pomiń
4.1.7 Upewnij się, że uprawnienia do plików urzędów certyfikacji są ustawione na 600 lub bardziej restrykcyjne Instrukcja L1 Pomiń
4.1.8 Upewnij się, że własność pliku dla władz certyfikacyjnych klienta jest ustawiona na root: root Instrukcja L1 Pomiń
4.1.9 Jeśli jest używany plik konfiguracji kubelet config.yaml, upewnij się, że uprawnienia są ustawione na 600 lub bardziej restrykcyjne Zautomatyzowane L1 Pomiń
4.1.10 Jeśli używany jest plik konfiguracji kubelet config.yaml, upewnij się, że właściwość pliku jest ustawiona na root: root Zautomatyzowane L1 Pomiń
4.2 Kubelet
4.2.1 Upewnij się, że --anonymous-auth argument ma wartość false Zautomatyzowane L1 Pomiń
4.2.2 Upewnij się, że --authorization-mode argument nie jest ustawiony na AlwaysAllow Zautomatyzowane L1 Pomiń
4.2.3 Upewnij się, że --client-ca-file argument jest ustawiony zgodnie z potrzebami Zautomatyzowane L1 Pomiń
4.2.4 Upewnij się, że --read-only-port argument ma wartość 0 Instrukcja L1 Pomiń
4.2.5 Upewnij się, że --streaming-connection-idle-timeout argument nie jest ustawiony na 0 Instrukcja L1 Pomiń
4.2.6 Upewnij się, że --make-iptables-util-chains argument ma wartość true Zautomatyzowane L1 Pomiń
4.2.7 Upewnij się, że --hostname-override argument nie został ustawiony Instrukcja L1 Pomiń
4.2.8 Upewnij się, że --eventRecordQPS argument jest ustawiony na poziom, który zapewnia odpowiednie przechwytywanie zdarzeń Instrukcja L2 Pomiń
4.2.9 Upewnij się, że --tls-cert-file i --tls-private-key-file argument są ustawione odpowiednio Instrukcja L1 Pomiń
4.2.10 Upewnij się, że --rotate-certificates argument nie jest ustawiony na wartość false Zautomatyzowane L1 Pomiń
4.2.11 Sprawdź, czy argument RotateKubeletServerCertificate ma wartość true Instrukcja L1 Pomiń
4.2.12 Upewnij się, że rozwiązanie Kubelet korzysta tylko z silnych szyfrów kryptograficznych Instrukcja L1 Pomiń
4.2.13 Upewnij się, że ustawiono limit dla identyfikatorów PID podów Instrukcja L1 Pomiń
4.2.14 Upewnij się, że Kubelet egzekwuje użycie profilu seccomp RuntimeDefault Instrukcja L1 Zależy od środowiska Wartość domyślna usługi AKS to Unconfined. Niestandardowa konfiguracja węzła może służyć do włączania RuntimeDefault profilu seccomp.
4.3 kube-proxy
4.3.1 Upewnij się, że usługa metryk kube-proxy jest powiązana z hostem lokalnym Zautomatyzowane L1 Niepowodzenie Usługa AKS ma centralne zbieranie danych Prometheus dla kube-proxy i stosuje alerty oraz automatyczne korygowanie, gdy KubeProxyStale zostanie wykryty. Element metrics-bind-address jest ustawiony w tym celu.
5 Polityki
5,1 Kontrola dostępu oparta na rolach (RBAC) i konta serwisowe
5.1.1 Upewnij się, że rola administratora klastra jest używana tylko wtedy, gdy jest to wymagane Zautomatyzowane L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.1.2 Minimalizacja dostępu do tajemnic Zautomatyzowane L1 Zależy od środowiska
5.1.3 Minimalizowanie użycia symboli wieloznacznych w rolach i rolach klastrowych Zautomatyzowane L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.1.4 Minimalizowanie dostępu do tworzenia podów Zautomatyzowane L1 Zależy od środowiska
5.1.5 Upewnij się, że domyślne konta usług nie są aktywnie używane Zautomatyzowane L1 Zależy od środowiska
5.1.6 Upewnij się, że tokeny konta usługi są instalowane tylko w razie potrzeby Zautomatyzowane L1 Zależy od środowiska
5.1.7 Unikaj używania systemu: grupa główna Instrukcja L1 Zależy od środowiska
5.1.8 Ograniczanie użycia uprawnień wiązania, personifikacji i eskalacji w klastrze Kubernetes Instrukcja L1 Zależy od środowiska
5.1.9 Zminimalizuj dostęp do tworzenia wolumenów trwałych Instrukcja L1 Zależy od środowiska
5.1.10 Minimalizowanie dostępu do zasobu podrzędnego serwera proxy węzłów Instrukcja L1 Zależy od środowiska
5.1.11 Minimalizuj dostęp do podzasobów zatwierdzania certificatesigningrequests obiektów Instrukcja L1 Zależy od środowiska
5.1.12 Minimalizuj dostęp do obiektów konfiguracji webhooka Instrukcja L1 Zależy od środowiska
5.1.13 Minimalizowanie dostępu do tworzenia tokenu konta usługi Instrukcja L1 Zależy od środowiska
5.2 Standardy zabezpieczeń Podów
5.2.1 Upewnij się, że klaster ma co najmniej jeden aktywny mechanizm kontroli zasad Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.2 Ogranicz dostęp dla uprzywilejowanych kontenerów Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.3 Zminimalizuj przyjmowanie kontenerów, które chcą udostępniać przestrzeń nazw identyfikatora procesów hosta. Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.4 Zminimalizować dopuszczanie kontenerów, które pragną udostępniać przestrzeń nazw IPC hosta Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.5 Zminimalizowanie dopuszczania kontenerów, które chcą współużytkować przestrzeń nazw sieci hosta Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.6 Minimalizowanie przyjmowania kontenerów z ustawieniem allowPrivilegeEscalation. Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.7 Minimalizuj dopuszczenie kontenerów root Instrukcja L2 Zależy od środowiska
5.2.8 Minimalizowanie dopuszczania kontenerów z uprawnieniem NET_RAW Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.9 Minimalizowanie przyjmowania kontenerów z dodanymi możliwościami Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.10 Zminimalizuj przyjmowanie kontenerów z przypisanymi możliwościami Instrukcja L2 Zależy od środowiska
5.2.11 Minimalizuj dostęp kontenerów Windows HostProcess Instrukcja L1 Zależy od środowiska
5.2.12 Minimalizuj użycie woluminów HostPath Instrukcja L1 Zależy od środowiska Użyj wbudowanych definicji zasad Azure Policy dla Azure Kubernetes Service
5.2.13 Minimalizowanie przyjmowania kontenerów korzystających z HostPorts Instrukcja L1 Zależy od środowiska
5.3 Zasady sieci i CNI
5.3.1 Upewnij się, że używana wtyczka CNI obsługuje polityki sieciowe Instrukcja L1 Pomiń
5.3.2 Upewnij się, że wszystkie przestrzenie nazw mają zdefiniowane zasady sieciowe Instrukcja L2 Zależy od środowiska
5,4 Zarządzanie tajemnicami
5.4.1 Preferuj używanie tajnych danych jako plików zamiast jako zmiennych środowiskowych Instrukcja L2 Zależy od środowiska
5.4.2 Rozważ zewnętrzne przechowywanie sekretów Instrukcja L2 Zależy od środowiska
5,5 Rozszerzalna kontrola przyjęcia
5.5.1 Konfigurowanie Image Provenance przy użyciu kontrolera przyjęcia ImagePolicyWebhook Instrukcja L2 Niepowodzenie Zaimplementowana równoważna kontrolka
5,6 Zasady ogólne
5.6.1 Tworzenie granic administracyjnych między zasobami przy użyciu przestrzeni nazw Instrukcja L1 Zależy od środowiska
5.6.2 Upewnij się, że profil seccomp jest ustawiony na docker/default w definicjach zasobników Instrukcja L2 Zależy od środowiska
5.6.3 Zastosowanie kontekstu zabezpieczeń dla podów i kontenerów Instrukcja L2 Zależy od środowiska
5.6.4 Nie należy używać domyślnej przestrzeni nazw Instrukcja L2 Zależy od środowiska

Inne uwagi

  • System operacyjny ze wzmocnionymi zabezpieczeniami jest kompilowany i obsługiwany specjalnie dla usługi AKS i nie jest obsługiwany poza platformą AKS.
  • Aby jeszcze bardziej zmniejszyć obszar obszaru podatnego na ataki, niektóre niepotrzebne sterowniki modułów jądra są wyłączone w systemie operacyjnym.

Następne kroki

Aby uzyskać więcej informacji na temat zabezpieczeń usługi AKS, zobacz następujące artykuły: