Sicherheitsmechanismen
RKE Cluster
Jeder NKE Cluster basiert auf einem Rancher Kubernetes Engine 2 (RKE2) Cluster. RKE2 ist eine CNCF-zertifizierte Kubernetes Distribution, welche die Installation und Aktualisierung eines ganzen Kubernetes Clusters vereinfacht.
Flatcar OS
Nine nutzt Flatcar OS als Linux Betriebssystem, auf dem jeder Cluster Node aufgebaut ist.
Aus den FAQ von Flatcar OS:
Das OS Image, das von Flatcar Container Linux bereitgestellt wird, enthält nur die minimale Menge an Tools, um Container Workloads zu betreiben. Das bedeutet, dass die Angriffsfläche wesentlich reduziert ist. Dazu kommt, dass die Wahrscheinlichkeit einer versehentlichen oder mutwilligen Störung geringer ist, da das OS Image unveränderlich ist (/usr ist read-only und es gibt keinen Package-Manager, mit dem Packages installiert werden).
Regelmässige OS Upgrades
Nine bietet regelmässige Upgrades zu neuen Betreibssystem-Images auf NKE Cluster Nodes. Diese Upgrades werden in einem bestimmten Wartungsfenster automatisch und in mehreren Phasen auf allen NKE Clustern ausgerollt.
Cilium CNI
Nine nutzt cilium als Netzwerk-Implementierung in NKE Clustern. Cilium unterstützt Kubernetes NetworkPolicy
Ressourcen, mit denen eingehender und ausgehender Netzwerk-Verkehr gesichert wird.
OIDC Authentifizierung
Nine bietet zentrale Authentifizierung für gemanagte Applikationen. Services wie Grafana, Argo CD oder der Kubernetes API Server selbst werden über OIDC gesichert. Neben dem zentralen Management der Nutzerzugänge lässt sich darüber auch die 2-Faktor-Authentifizierung einrichten.
Node Firewall
NKE Cluster Nodes wird standardmässig eine öffentlich erreichbare IP-Adresse zugewiesen. Nine schränkt den Zugriff zu bestimmten Services ein, welche auf den Nodes eines NKE Clusters laufen. Dazu gehört der SSH Zugriff, der nur über spezielle, von Nine verwaltete VPN-Server möglich ist.
RBAC
Nine bietet standardmässig RBAC-Rollen für den gesamten Cluster an, die den Nutzern oder Service Accounts zugewiesen werden können. Die Rollen sind in der folgenden Tabelle aufgelistet:
Name | Beschreibung |
---|---|
admin | definiert Admin-Rechte für einen Cluster, d.h. der Nutzer kann alle Namespaces und alle darin enthaltenen Ressourcen erstellen, aktualisieren und löschen. Der Zugriff auf bestimmte Namespaces kann nicht zurückgezogen werden. |
viewer | definiert Lese-Rechte für einen Cluster, d.h. der Nutzer kann alle Ressourcen des Clusters ausser Secrets einsehen. Weitere Berechtigungen für bestimmte Namespaces können über RBAC eingerichtet werden. |
user | definiert Nutzer-Rechte für einen Cluster, d.h. der Nutzer kann Namespaces erstellen, die von ihm erstellten Namespaces löschen und die Secrets in diesen Namespaces sehen. |
Managed Applications
Nine bietet bestimmte gemanagte Applikationen, welche die Sicherheit bei der Nutzung von NKE erhöhen. Dazu gehören zum Beispiel:
- eine private Container Image Registry
- sealed-secrets für sicheres Speichern von Secrets in einem git Repository
- cert-manager für ein automatisiertes Management von TLS Zertifikaten