Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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: