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:

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.