Sicherheitskonzepte Managed-Kubernetes
Sicherheitskonzept
Ein Sicherheitskonzept für einen Kubernetes Cluster kann die unterschiedlichsten Ausprägungen einnehmen. teuto.net unterstützt dabei flexible Ansätze und erlaubt eine kundenindividuelle Konfiguration.
Um eine sichere Nutzung unserer Kubernetes Cluster mit einem möglichst hohen Nutzungskomfort zu kombinieren, verwenden wir ein Basis-Sicherheitskonzept auf all unseren Kunden-Clustern. Dieses kann nach Kundenwunsch angepasst werden.
Zugriff
Auf Wunsch verwaltet teuto.net Ihre Namespaces, legt diese an und verteilt die
Berechtigungen nach Ihren Vorgaben auf die Accounts Ihrer Entwickler. Wenn nicht
explizit anders von Ihnen gewünscht, bekommen Ihre Accounts die edit
Cluster-Rolle für Ihre jeweiligen Namespaces, aber keine clusterweiten Rechte
von uns.
Die offizielle Kubernetes Dokumentation verrät Ihnen im Abschnitt Using RBAC Authorization/User-facing roles mehr zu den einzelnen Cluster-Rollen.
Auf expliziten Wunsch können die Berechtigungen für einzelne Accounts in beide Richtungen angepasst werden.
Netzwerk
Um einen möglichst sicheren Betrieb Ihrer Anwendung zu gewährleisten, stattet
teuto.net jeden Cluster von Hause aus mit NetworkPolicies
aus, welche die
Kommunikation der Pods einschränken. Die Regeln erlauben:
allow-same-namespace
- Kommunikation mit anderen Pods und Services im gleichen Namespace wird erlaubt.allow-dns
- Zugriff zum DNS und Namensauflösung über diesen ist möglich.allow-tcp-from-ingress-namespace
- TCP-Verbindungen aus dem Ingress-Namespace werden akzeptiert und erlauben damit die bequeme Nutzung des Ingress-Controllers um Anwendungen extern verfügbar zu machen.
Diese Regeln können auf expliziten Kundenwunsch beliebig angepasst oder auch ganz weg gelassen werden.
Kyverno Admission-Controller
Ein Admission-Controller kann verwendet werden um gewisse Standards in den
Manifesten, welche auf dem Cluster angewendet werden, zu garantieren. Dies kann
auch für sicherheitsrelevante Konfigurationen genutzt werden. Der
Admission-Controller kontrolliert dabei jedes Manifest, welches auf dem Cluster
Anwendung findet auf Einhaltung bestimmter vorher definierter (Cluster)Policies
.
Bei Verstoß gegen diese Policies kann er dann entweder warnen (audit
Modus)
oder die Anwendung des Manifests gleich ganz verhindern (enforce
Modus).
Um es unseren Kunden zu erleichtern hier selbst gewisse Standards ein zu halten, betreibt teuto.net in jedem Cluster einen Admission-Controller von Kyverno. In der von teuto.net verwendeten Konfiguration überprüft dieser die ClusterPolicies aus der “baseline” Vorlage im Audit-Modus. Diese umfasst die folgenden ClusterPolicies:
- disallow-capabilities
- disallow-host-namespaces
- disallow-host-path
- disallow-host-ports
- disallow-host-process
- disallow-privileged-containers
- disallow-proc-mount
- disallow-selinux
- restrict-apparmor-profiles
- restrict-seccomp
- restrict-sysctls
Auf expliziten Wunsch können wir diese Regeln auch in den enforce
Modus
schalten um Ihre Anwendung zu erzwingen und/oder um den restricted
Regelsatz
erweitern.