Srovnávací test Kubernetes cis (Center for Internet Security)

Jako zabezpečená služba je Azure Kubernetes Service (AKS) v souladu se standardy SOC, ISO, PCI DSS a HIPAA. Tento článek se zabývá zabezpečením, které se používá pro AKS na základě srovnávacího testu CIS Kubernetes. Další informace o zabezpečení AKS najdete v tématu Koncepty zabezpečení pro aplikace a clustery v Azure Kubernetes Service (AKS). Další informace o srovnávacím testu CIS najdete v tématu Srovnávací testy CIS (Center for Internet Security).

Srovnávací test CIS pro Kubernetes

Toto jsou výsledky doporučení srovnávacího testu CIS Kubernetes V1.20 v1.0.0 v AKS.

Doporučení se skóre ovlivňují skóre srovnávacího testu, pokud nejsou použita, zatímco doporučení not scored ne.

Srovnávací testy CIS poskytují dvě úrovně nastavení zabezpečení:

  • L1 nebo level 1 doporučuje základní požadavky na zabezpečení, které je možné nakonfigurovat v libovolném systému a které by měly způsobit minimální nebo žádné přerušení služeb nebo snížení funkčnosti.
  • L2 nebo level 2 doporučuje nastavení zabezpečení pro prostředí vyžadující vyšší zabezpečení, které by mohlo vést k omezené funkčnosti.

Recommendations může mít jeden z následujících stavů:

  • Pass – doporučení se použilo.
  • Selhání – Doporučení nebylo použito.
  • Není k dispozici – Doporučení se týká požadavků na oprávnění k souboru manifestu, které nejsou relevantní pro AKS. Clustery Kubernetes ve výchozím nastavení používají model manifestu k nasazení podů řídicí roviny, které spoléhají na soubory z virtuálního počítače uzlu. Srovnávací test CIS Kubernetes doporučuje, aby tyto soubory musely mít určité požadavky na oprávnění. Clustery AKS používají chart Helm k nasazení podů řídicí roviny a nespoléhají na soubory na virtuálním počítači uzlu.
  • Závisí na prostředí – doporučení se použije v prostředí specifickém pro uživatele a AKS ho neřízeného. Doporučení se skóre ovlivňují skóre srovnávacího testu bez ohledu na to, jestli se doporučení vztahuje na konkrétní prostředí uživatele.
  • Ekvivalentní ovládací prvek – doporučení bylo implementováno jiným, ekvivalentním způsobem.
CIS ID Popis doporučení Typ bodování Level Status
1 Komponenty řídicí roviny
1.1 Konfigurační soubory uzlu řídicí roviny
1.1.1 Ujistěte se, že jsou oprávnění souboru se specifikací podu serveru rozhraní API nastavená na hodnotu 644 nebo více omezující. Skóroval L1
1.1.2 Ujistěte se, že vlastnictví souboru specifikace podu serveru rozhraní API je nastavené na root:root. Skóroval L1
1.1.3 Ujistěte se, že jsou oprávnění souboru specifikace podu správce kontroleru nastavená na hodnotu 644 nebo více omezující. Skóroval L1
1.1.4 Ujistěte se, že je vlastnictví souboru specifikace podu správce kontroleru nastavené na root:root. Skóroval L1
1.1.5 Ujistěte se, že jsou oprávnění souboru specifikace podu plánovače nastavená na hodnotu 644 nebo více omezující. Skóroval L1
1.1.6 Ujistěte se, že vlastnictví souboru specifikace podu plánovače je nastavené na root:root. Skóroval L1
1.1.7 Ujistěte se, že jsou oprávnění souboru specifikace podu etcd nastavená na hodnotu 644 nebo více omezující. Skóroval L1
1.1.8 Ujistěte se, že je vlastnictví souboru specifikace podu etcd nastavené na root:root. Skóroval L1
1.1.9 Ujistěte se, že jsou oprávnění k souborům rozhraní Container Network Interface nastavená na hodnotu 644 nebo více omezující. Not Scored L1
1.1.10 Ujistěte se, že je vlastnictví souboru síťového rozhraní kontejneru nastavené na root:root. Not Scored L1
1.1.11 Ujistěte se, že jsou oprávnění adresáře dat etcd nastavená na hodnotu 700 nebo více omezující. Skóroval L1
1.1.12 Ujistěte se, že je vlastnictví adresáře dat etcd nastavené na etcd:etcd. Skóroval L1
1.1.13 Ujistěte se, že jsou oprávnění k souboru admin.conf nastavená na hodnotu 644 nebo více omezující. Skóroval L1
1.1.14 Ujistěte se, že je vlastnictví souboru admin.conf nastavené na root:root. Skóroval L1
1.1.15 Ujistěte se, že oprávnění k souboru Scheduler. conf jsou nastavená na 644 nebo více omezující. Skóre L1
1.1.16 Zajistěte, aby vlastnictví souboru Scheduler. conf bylo nastaveno na kořen: root Skóre L1
1.1.17 Ujistěte se, že oprávnění správce kontroleru. conf jsou nastavená na 644 nebo více omezující. Skóre L1
1.1.18 Zajistěte, aby vlastnictví souboru Controller-Manager. conf bylo nastaveno na kořen: root Skóre L1
1.1.19 Zajistěte, aby byl adresář a vlastnictví PKI Kubernetes nastavené na kořen: root. Skóre L1
1.1.20 Ujistěte se, že oprávnění pro soubor certifikátu PKI Kubernetes jsou nastavená na 644 nebo více omezující. Skóre L1
1.1.21 Ujistěte se, že oprávnění klíčového souboru PKI Kubernetes jsou nastavená na 600. Skóre L1
1.2 Server API
1.2.1 Zajistěte, aby --anonymous-auth byl argument nastaven na hodnotu false. Nehodnoceno L1 Úspěšné absolvování
1.2.2 Ujistěte se, že --basic-auth-file argument není nastaven. Skóre L1 Úspěšné absolvování
1.2.3 Ujistěte se, že --token-auth-file parametr není nastaven. Skóre L1 Neúspěch
1.2.4 Zajistěte, aby --kubelet-https byl argument nastaven na hodnotu true. Skóre L1 Ekvivalentní ovládací prvek
1.2.5 Zajistěte, aby --kubelet-client-certificate byly argumenty a --kubelet-client-key nastaveny jako vhodné. Skóre L1 Úspěšné absolvování
1.2.6 Zajistěte, aby --kubelet-certificate-authority byl argument nastaven jako vhodný. Skóre L1 Ekvivalentní ovládací prvek
1.2.7 Zajistěte, --authorization-mode aby argument nebyl nastaven na AlwaysAllow. Skóre L1 Úspěšné absolvování
1.2.8 Ujistěte se, že --authorization-mode argument obsahuje uzel. Skóre L1 Úspěšné absolvování
1.2.9 Ujistěte se, že --authorization-mode argument zahrnuje RBAC. Skóre L1 Úspěšné absolvování
1.2.10 Ujistěte se, že je nastavený modul plug-in pro přijímání EventRateLimit. Nehodnoceno L1 Neúspěch
1.2.11 Ujistěte se, že AlwaysAdmit není nastavený modul plug-in pro přístup k řízení přístupu. Skóre L1 Úspěšné absolvování
1.2.12 Ujistěte se, že je nastavený modul plug-in pro přijímání AlwaysPullImages. Nehodnoceno L1 Neúspěch
1.2.13 Zajistěte, aby se SecurityContextDeny modul plug-in pro Admission Control, pokud se PodSecurityPolicy nepoužívá. Nehodnoceno L1 Neúspěch
1.2.14 Ujistěte se, že je nastavený modul plug-in pro přijímání ServiceAccount. Skóre L1 Úspěšné absolvování
1.2.15 Ujistěte se, že je nastavený modul plug-in pro přijímání NamespaceLifecycle. Skóre L1 Úspěšné absolvování
1.2.16 Ujistěte se, že je nastavený modul plug-in pro přijímání PodSecurityPolicy. Skóre L1 Neúspěch
1.2.17 Ujistěte se, že je nastavený modul plug-in pro přijímání NodeRestriction. Skóre L1 Neúspěch
1.2.18 Ujistěte se, že --insecure-bind-address argument není nastaven. Skóre L1 Neúspěch
1.2.19 Zajistěte, aby --insecure-port byl argument nastaven na hodnotu 0. Skóre L1 Úspěšné absolvování
1.2.20 Zajistěte, --secure-port aby argument nebyl nastaven na hodnotu 0. Skóre L1 Úspěšné absolvování
1.2.21 Zajistěte, aby --profiling byl argument nastaven na hodnotu false. Skóre L1 Úspěšné absolvování
1.2.22 Ujistěte se, že --audit-log-path je argument nastavený. Skóre L1 Úspěšné absolvování
1.2.23 Zajistěte, aby --audit-log-maxage byl argument nastaven na hodnotu 30 nebo podle potřeby. Skóre L1 Ekvivalentní ovládací prvek
1.2.24 Zajistěte, aby --audit-log-maxbackup byl argument nastavený na hodnotu 10, nebo podle potřeby. Skóre L1 Ekvivalentní ovládací prvek
1.2.25 Zajistěte, aby --audit-log-maxsize byl argument nastavený na 100, nebo podle potřeby. Skóre L1 Úspěšné absolvování
1.2.26 Zajistěte, aby --request-timeout byl argument nastaven jako vhodný. Skóre L1 Úspěšné absolvování
1.2.27 Zajistěte, aby --service-account-lookup byl argument nastaven na hodnotu true. Skóre L1 Úspěšné absolvování
1.2.28 Zajistěte, aby --service-account-key-file byl argument nastaven jako vhodný. Skóre L1 Úspěšné absolvování
1.2.29 Zajistěte, aby --etcd-certfile byly argumenty a --etcd-keyfile nastaveny jako vhodné. Skóre L1 Úspěšné absolvování
1.2.30 Zajistěte, aby --tls-cert-file byly argumenty a --tls-private-key-file nastaveny jako vhodné. Skóre L1 Úspěšné absolvování
1.2.31 Zajistěte, aby --client-ca-file byl argument nastaven jako vhodný. Skóre L1 Úspěšné absolvování
1.2.32 Zajistěte, aby --etcd-cafile byl argument nastaven jako vhodný. Skóre L1 Úspěšné absolvování
1.2.33 Ujistěte se, že --encryption-provider-config je argument nastavený podle potřeby. Skóroval L1 Neúspěch
1.2.34 Ujistěte se, že jsou správně nakonfigurovaní poskytovatelé šifrování. Skóroval L1 Neúspěch
1.2.35 Ujistěte se, že server rozhraní API využívá jenom silné kryptografické šifry. Not Scored L1 Úspěšné absolvování
1.3 Správce kontroleru
1.3.1 Ujistěte se, že --terminated-pod-gc-threshold je argument nastavený podle potřeby. Skóroval L1 Úspěšné absolvování
1.3.2 Ujistěte se, že --profiling je argument nastavený na hodnotu false. Skóroval L1 Úspěšné absolvování
1.3.3 Ujistěte se, že --use-service-account-credentials je argument nastavený na hodnotu true. Skóroval L1 Úspěšné absolvování
1.3.4 Ujistěte se, že --service-account-private-key-file je argument nastavený podle potřeby. Skóroval L1 Úspěšné absolvování
1.3.5 Ujistěte se, že --root-ca-file je argument nastavený podle potřeby. Skóroval L1 Úspěšné absolvování
1.3.6 Ujistěte se, že je argument RotateKubeletServerCertificate nastavený na hodnotu true. Skóroval L2 Úspěšné absolvování
1.3.7 Ujistěte se --bind-address , že je argument nastavený na hodnotu 127.0.0.1. Skóroval L1 Neúspěch
1.4 Scheduler
1.4.1 Ujistěte se, že --profiling je argument nastavený na hodnotu false. Skóroval L1 Úspěšné absolvování
1.4.2 Ujistěte se --bind-address , že je argument nastavený na hodnotu 127.0.0.1. Skóroval L1 Neúspěch
2 etcd
2.1 Ujistěte se, že --cert-file--key-file jsou argumenty a nastavené odpovídajícím způsobem. Skóroval L1 Úspěšné absolvování
2,2 Ujistěte se, že --client-cert-auth je argument nastavený na hodnotu true. Skóroval L1 Úspěšné absolvování
2.3 Ujistěte se, že --auto-tls argument není nastavený na hodnotu true. Skóroval L1 Úspěšné absolvování
2,4 Ujistěte se, že --peer-cert-file--peer-key-file jsou argumenty a nastavené odpovídajícím způsobem. Skóroval L1 Úspěšné absolvování
2.5 Ujistěte se, že --peer-client-cert-auth je argument nastavený na hodnotu true. Skóroval L1 Úspěšné absolvování
2,6 Ujistěte se, že --peer-auto-tls argument není nastavený na hodnotu true. Skóroval L1 Úspěšné absolvování
2.7 Ujistěte se, že se pro atd. používá jedinečná certifikační autorita. Not Scored L2 Úspěšné absolvování
3 Konfigurace řídicí roviny
3.1 Ověřování a autorizace
3.1.1 Ověřování klientským certifikátem by se nemělo používat pro uživatele Not Scored L2 Úspěšné absolvování
3.2 protokolování
3.2.1 Ujistěte se, že se vytvořily minimální zásady auditu. Skóroval L1 Úspěšné absolvování
3.2.2 Ujistěte se, že zásady auditu pokrývají klíčové otázky zabezpečení. Not Scored L2 Úspěšné absolvování
4 Pracovní uzly
4.1 Konfigurační soubory pracovního uzlu
4.1.1 Ujistěte se, že jsou oprávnění k souboru služby kubelet nastavená na hodnotu 644 nebo více omezující. Skóroval L1 Úspěšné absolvování
4.1.2 Ujistěte se, že je vlastnictví souboru služby kubelet nastavené na root:root. Skóroval L1 Úspěšné absolvování
4.1.3 Ujistěte se, že jsou oprávnění k souboru kubeconfig proxy serveru nastavená na hodnotu 644 nebo více omezující. Skóroval L1 Úspěšné absolvování
4.1.4 Ujistěte se, že je vlastnictví souboru kubeconfig proxy serveru nastavené na root:root. Skóroval L1 Úspěšné absolvování
4.1.5 Ujistěte se, že jsou oprávnění k souboru kubelet.conf nastavená na hodnotu 644 nebo více omezující. Skóroval L1 Úspěšné absolvování
4.1.6 Ujistěte se, že je vlastnictví souboru kubelet.conf nastavené na root:root. Skóroval L1 Úspěšné absolvování
4.1.7 Ujistěte se, že jsou oprávnění k souborům certifikačních autorit nastavená na hodnotu 644 nebo více omezující. Skóroval L1 Úspěšné absolvování
4.1.8 Ujistěte se, že vlastnictví souboru klientských certifikačních autorit je nastavené na root:root. Skóroval L1 Úspěšné absolvování
4.1.9 Ujistěte se, že konfigurační soubor kubelet má oprávnění nastavená na hodnotu 644 nebo více omezující. Skóroval L1 Úspěšné absolvování
4.1.10 Ujistěte se, že je vlastnictví konfiguračního souboru kubelet nastavené na root:root. Skóroval L1 Úspěšné absolvování
4.2 Kubelet
4.2.1 Ujistěte se, že --anonymous-auth je argument nastavený na hodnotu false. Skóroval L1 Úspěšné absolvování
4.2.2 Ujistěte se, že --authorization-mode argument není nastavený na AlwaysAllow. Skóroval L1 Úspěšné absolvování
4.2.3 Ujistěte se, že --client-ca-file je argument nastavený podle potřeby. Skóroval L1 Úspěšné absolvování
4.2.4 Ujistěte se, že --read-only-port je argument nastavený na hodnotu 0. Skóroval L1 Úspěšné absolvování
4.2.5 Ujistěte se --streaming-connection-idle-timeout , že argument není nastavený na hodnotu 0. Skóroval L1 Úspěšné absolvování
4.2.6 Zajistěte, aby --protect-kernel-defaults byl argument nastaven na hodnotu true. Skóre L1 Úspěšné absolvování
4.2.7 Zajistěte, aby --make-iptables-util-chains byl argument nastaven na hodnotu true. Skóre L1 Úspěšné absolvování
4.2.8 Ujistěte se, že --hostname-override argument není nastaven. Nehodnoceno L1 Úspěšné absolvování
4.2.9 Zajistěte, aby --event-qps byl argument nastavený na hodnotu 0, nebo na úroveň, která zajišťuje příslušné zachytávání událostí. Nehodnoceno Paměť Úspěšné absolvování
4.2.10 Zajistěte, aby --tls-cert-file byly argumenty a --tls-private-key-file nastaveny jako vhodné. Skóre L1 Ekvivalentní ovládací prvek
4.2.11 Zajistěte, aby --rotate-certificates argument nebyl nastaven na hodnotu false. Skóre L1 Úspěšné absolvování
4.2.12 Zajistěte, aby byl argument RotateKubeletServerCertificate nastaven na hodnotu true. Skóre L1 Úspěšné absolvování
4.2.13 Ujistěte se, že Kubelet využívá pouze silné kryptografické šifry. Nehodnoceno L1 Úspěšné absolvování
5 Zásady
5,1 RBAC a účty služeb
bodů Zajistěte, aby se role Správce clusteru použila jenom tam, kde je to potřeba. Nehodnoceno L1 Závisí na prostředí
5.1.2 Minimalizace přístupu k tajným klíčům Nehodnoceno L1 Závisí na prostředí
5.1.3 Minimalizace použití zástupného znaku v rolích a ClusterRoles Nehodnoceno L1 Závisí na prostředí
5.1.4 Minimalizace přístupu k vytvoření lusků Nehodnoceno L1 Závisí na prostředí
5.1.5 Ujistěte se, že nejsou aktivně používány výchozí účty služeb. Skóre L1 Závisí na prostředí
5.1.6 Zajistěte, aby tokeny účtu služby byly připojeny pouze v případě potřeby. Nehodnoceno L1 Závisí na prostředí
5.2 Zásady zabezpečení pod
akustick Minimalizace přístupu privilegovaných kontejnerů Nehodnoceno L1 Závisí na prostředí
5.2.2 Minimalizace přístupu kontejnerů, které chtějí sdílet obor názvů hostitelského procesu Skóre L1 Závisí na prostředí
5.2.3 Minimalizace přístupu kontejnerů, které chtějí sdílet obor názvů hostitele IPC Skóre L1 Závisí na prostředí
5.2.4 Minimalizace přístupu kontejnerů, které chtějí sdílet obor názvů hostitele v síti Skóre L1 Závisí na prostředí
5.2.5 Minimalizace přístupu ke kontejnerům pomocí allowPrivilegeEscalation Skóroval L1 Závisí na prostředí
5.2.6 Minimalizace přístupu ke kořenovým kontejnerům Not Scored L2 Závisí na prostředí
5.2.7 Minimalizace přístupu ke kontejnerům s NET_RAW funkcí Not Scored L1 Závisí na prostředí
5.2.8 Minimalizace přístupu ke kontejnerům s přidanou možností Not Scored L1 Závisí na prostředí
5.2.9 Minimalizace přístupu ke kontejnerům s přiřazenými možnostmi Not Scored L2 Závisí na prostředí
5.3 Zásady sítě a CNI
5.3.1 Ujistěte se, že používejte CNI, který podporuje zásady sítě. Not Scored L1 Úspěšné absolvování
5.3.2 Ujistěte se, že všechny obory názvů mají definované zásady sítě. Skóroval L2 Závisí na prostředí
5.4 Správa tajných kódů
5.4.1 Preferujete použití tajných kódů jako souborů před tajnými kódy jako proměnnými prostředí. Not Scored L1 Závisí na prostředí
5.4.2 Zvážení externího tajného úložiště Not Scored L2 Závisí na prostředí
5.5 Rozšiřitelné řízení přístupu
5.5.1 Konfigurace původu obrázků pomocí kontroleru přístupu ImagePolicyWebhook Not Scored L2 Závisí na prostředí
5.6 Obecné zásady
5.6.1 Vytvoření hranic správy mezi prostředky pomocí oborů názvů Not Scored L1 Závisí na prostředí
5.6.2 Ujistěte se, že je profil seccomp v definicích podů nastavený na docker/default. Not Scored L2 Závisí na prostředí
5.6.3 Použití kontextu zabezpečení na pody a kontejnery Not Scored L2 Závisí na prostředí
5.6.4 Výchozí obor názvů by se neměl používat. Skóroval L2 Závisí na prostředí

Poznámka

Kromě srovnávacího testu CIS Kubernetes je k dispozici také srovnávací test AKS CIS .

Další poznámky

  • Operační systém s lepším zabezpečením je sestavený a udržovaný speciálně pro AKS a není podporován mimo platformu AKS.
  • Pro další omezení prostoru pro útoky byly v operačním systému zakázány některé nepotřebné ovladače modulu jádra.

Další kroky

Další informace o zabezpečení AKS najdete v následujících článcích: