Sicherheit

Auf dieser Seite werden die in Anthos-Cluster auf AWS (GKE on AWS) enthaltenen Sicherheitsfunktionen beschrieben, einschließlich der einzelnen Schichten der Infrastruktur und wie Sie die Sicherheitsfeatures entsprechend Ihrer Anforderungen konfigurieren.

Übersicht

Anthos-Cluster auf AWS bieten verschiedene Funktionen zum Schutz Ihrer Arbeitslasten, einschließlich des Inhalts Ihres Container-Images, der Containerlaufzeit, des Clusternetzwerks und des Zugriffs auf den Cluster-API-Server.

Schützen Sie Ihre Cluster und Arbeitslasten nach Möglichkeit mit einem mehrschichtigen Ansatz. Sie können den Grundsatz der geringsten Berechtigung auf die Zugriffsebene anwenden, die Sie für Ihre Nutzer und Arbeitslasten bereitstellen. Möglicherweise müssen Sie Kompromisse eingehen, um das richtige Maß an Flexibilität und Sicherheit zu erreichen.

Gemeinsame Verantwortlichkeiten

Wenn Sie Anthos-Cluster auf AWS verwenden, sind Sie damit einverstanden, bestimmte Aufgaben für Ihre Cluster zu übernehmen. Weitere Informationen finden Sie unter Gemeinsame Aufgaben von Anthos-Clustern.

Authentifizierung und Autorisierung

Sie authentifizieren sich bei einem Anthos-Cluster auf AWS-Nutzercluster mit einer der folgenden Methoden:

Zum Konfigurieren detaillierterer Zugriffsrechte für Kubernetes-Ressourcen auf der Clusterebene oder innerhalb von Kubernetes-Namespaces verwenden Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes. Mit RBAC lassen sich detaillierte Richtlinien erstellen, um zu definieren, für welche Vorgänge und Ressourcen Sie Nutzern und Dienstkonten Zugriff gewähren möchten. Mit RBAC können Sie den Zugriff für jede bereitgestellte validierte Identität steuern.

Zur weiteren Vereinfachung und Optimierung Ihrer Authentifizierungs- und Autorisierungsstrategie für Kubernetes Engine deaktiviert Anthos-Cluster auf AWS die attributbasierte Legacy-Zugriffssteuerung (Attribute Based Access Control, ABAC).

Verschlüsselung

Inaktive Daten in etcd, EBS-Volumes, Kubernetes-Secrets und Komponenten der Steuerungsebene werden von Anthos-Cluster auf AWS standardmäßig mit dem AWS Key Management Service (KMS) verschlüsselt.

Zum Verschlüsseln sensibler Daten in Ihren Nutzerclustern können Sie eine der folgenden Möglichkeiten verwenden:

Kubernetes-Secrets

In Secrets von Kubernetes-Ressourcen werden vertrauliche Daten wie Passwörter, OAuth-Tokens und SSH-Schlüssel in Clustern gespeichert. Das Speichern sensibler Daten in Secrets ist sicherer als das Speichern in Klartext-ConfigMaps oder Pod-Spezifikationen. Mithilfe von Secrets können Sie steuern, wie vertrauliche Daten verwendet werden, und das Risiko verringern, dass die Daten nicht autorisierten Nutzern zugänglich gemacht werden.

HashiCorp Vault

Anthos-Cluster auf AWS kann Hashicorp Vault verwenden, um Secrets auf Ihren Nutzerclustern zu sichern. Weitere Informationen finden Sie unter HashiCorp Vault auf Anthos-Cluster auf AWS verwenden.

Sicherheit der Steuerungsebene

Die Komponenten der Steuerungsebene umfassen den Verwaltungsdienst sowie den Kubernetes API-Server, den Planer, die Controller und die etcd-Datenbank des Nutzerclusters. In Anthos-Cluster auf AWS verwalten lokale Administratoren die Komponenten der Steuerungsebene.

In Anthos-Cluster auf AWS werden die Komponenten der Steuerungsebene auf AWS ausgeführt. Sie können den API-Server von Anthos-Cluster auf AWS mithilfe von AWS-Sicherheitsgruppen und Netzwerk-ACLs schützen.

Die gesamte Kommunikation in Anthos-Cluster auf AWS erfolgt über TLS-Kanäle (Transport Layer Security), gesteuert von folgenden Zertifizierungsstellen:

  • Die etcd-Zertifizierungsstelle sichert die Kommunikation vom API-Server zu den etcd-Replikaten sowie den Traffic zwischen etcd-Replikaten. Diese Zertifizierungsstelle ist selbstsigniert.
  • Die Zertifizierungsstelle des Nutzerclusters sichert die Kommunikation zwischen dem API-Server und allen internen Kubernetes API-Clients (Kubelets, Controller, Planer). Diese Zertifizierungsstelle ist mit KMS verschlüsselt.
  • Die Zertifizierungsstelle des Verwaltungsdienstes ist mit KMS verschlüsselt. Sie wird beim Ausführen von anthos-gke init erstellt und in Ihrem Terraform-Arbeitsbereich gespeichert. Wenn Sie terraform apply zum Erstellen des Verwaltungsdienstes verwenden, wird der Schlüssel der Zertifizierungsstelle als AWS EC2-Nutzerdaten übergeben und von AWS KMS beim Start des Clusters entschlüsselt.

Die Verwaltungsebenenschlüssel werden für den Verwaltungsdienst auf der Steuerungsebene [Knoten]{:.external} gespeichert. Für Nutzercluster werden die Schlüssel als Kubernetes-Secrets in der Steuerungsebene des Verwaltungsdienstes gespeichert.

Die Clusterauthentifizierung in Anthos-Cluster auf AWS erfolgt über Zertifikate und Inhabertoken von Dienstkonten. Als Administrator authentifizieren Sie sich auf der Steuerungsebene mit dem Administratorzertifikat für den Verwaltungsdienst. Dieses Zertifikat verwenden Sie für die erstmalige Erstellung von Rollenbindungen oder für Notfallzwecke.

Die Zertifikatsrotation wird so gehandhabt:

Knotensicherheit

Anthos-Cluster auf AWS stellt Ihre Arbeitslasten in Knotenpools von AWS EC2-Instanzen bereit. In den folgenden Abschnitten wird erläutert, wie Sie die Sicherheitsfeatures auf Knotenebene in Anthos-Cluster auf AWS verwenden.

Ubuntu

Anthos-Cluster auf AWS verwendet eine optimierte Version von Ubuntu als Betriebssystem für die Ausführung der Kubernetes-Steuerungsebene und -Knoten. Ubuntu bietet eine Vielzahl moderner Sicherheitsfeatures und Anthos-Cluster auf AWS implementiert mehrere sicherheitsfördernde Features für Cluster, darunter:

  • Satz optimierter Pakete
  • Google Cloud-spezifischer Linux-Kernel
  • Eingeschränkte Nutzerkonten und eine deaktivierte Root-Anmeldung

Für Ubuntu sind zusätzliche Sicherheitsleitfäden verfügbar, z. B.:

Knotenupgrades

Sie sollten regelmäßig Upgrades Ihrer Knoten ausführen. Bei Sicherheitsproblemen in der Containerlaufzeit, in Kubernetes selbst oder im Betriebssystem des Knotens kann ein vorzeitiges Upgrade der Knoten erforderlich sein. Durch ein Upgrade des Nutzerclusters wird die Software der einzelnen Knoten auf die neueste Version aktualisiert. Außerdem werden durch das Upgrade von Knoten Verschlüsselungsdaten rotiert.

Arbeitslasten sichern

Kubernetes bietet Nutzern die Möglichkeit, containerbasierte Arbeitslasten schnell bereitzustellen, zu skalieren und zu aktualisieren. In diesem Abschnitt werden Taktiken beschrieben, mit denen Sie die Nebenwirkungen der Ausführung von Containern auf Clustern und den Google Cloud-Diensten begrenzen können.

Verarbeitungsrechte für Podcontainer einschränken

Für die Sicherheit des Clusters ist es wichtig, die Berechtigungen von containerisierten Prozessen einzuschränken. Sie können sicherheitsrelevante Optionen mit dem Sicherheitskontext von Pods und Containern festlegen. Mit diesen Einstellungen können Sie die Sicherheitseinstellungen Ihrer Prozesse ändern, z. B.:

  • Nutzer und Gruppe für die Ausführung des Prozesses
  • Verfügbare Linux-Funktionen
  • Rechteausweitung

Das standardmäßige Anthos-Cluster auf AWS-Knotenbetriebssystem Ubuntu wendet die standardmäßigen Docker AppArmor-Sicherheitsrichtlinien auf alle von Kubernetes gestarteten Container an. Sie können die Profilvorlage auf GitHub ansehen. Das Profil verweigert Containern unter anderem die folgenden Aktionen:

  • Direktes Schreiben in Dateien in einem Prozess-ID-Verzeichnis (/proc/)
  • Schreiben in Dateien, die sich nicht in /proc/ befinden
  • Schreiben in Dateien in /proc/sys außer /proc/sys/kernel/shm*
  • Bereitstellen von Dateisystemen

Nächste Schritte