Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bewährte Methoden zur Verschlüsselung für Amazon EKS
Mit Amazon Elastic Kubernetes Service (Amazon EKS) können Sie Kubernetes ausführen, AWS ohne dass Sie Ihre eigene Kubernetes-Steuerebene oder Knoten installieren oder verwalten müssen. In Kubernetes helfen Geheimnisse bei der Verwaltung sensibler Informationen wie Benutzerzertifikaten, Kennwörtern oder API-Schlüssel. Standardmäßig werden diese Geheimnisse unverschlüsselt im dem API-Server zugrunde liegenden Datenspeicher gespeichert, der als etcdetcd
Knoten mit Amazon EBS-Verschlüsselung verschlüsselt. Jeder Benutzer mit API-Zugriff oder Zugriff auf etcd
kann ein Geheimnis abrufen oder ändern. Darüber hinaus kann jeder, der berechtigt ist, einen Pod in einem Namespace zu erstellen, diesen Zugriff verwenden, um jedes Geheimnis in diesem Namespace zu lesen. Sie können diese gespeicherten Geheimnisse in Amazon EKS verschlüsseln AWS KMS keys, indem Sie entweder AWS verwaltete Schlüssel oder vom Kunden verwaltete Schlüssel verwenden. Ein alternativer Ansatz zur Verwendung etcd
ist die Verwendung von AWS Secrets and Config Provider (ASCP)
Sie können die folgenden AWS Speicherdienste mit Kubernetes verwenden:
-
Für Amazon EBS können Sie den In-Tree-Speichertreiber oder den Amazon EBS CSI-Treiber verwenden. Beide beinhalten Parameter für die Verschlüsselung von Volumes und die Bereitstellung eines vom Kunden verwalteten Schlüssels.
-
Für Amazon Elastic File System (Amazon EFS) können Sie den Amazon-EFS-CSI-Treiber mit Unterstützung für dynamische und statische Bereitstellung verwenden.
Bedenken Sie die folgenden bewährten Verschlüsselungsmethoden für diesen Service:
-
Wenn Sie
etcd
verwenden, in dem geheime Objekte standardmäßig unverschlüsselt gespeichert werden, gehen Sie wie folgt vor, um Geheimnisse zu schützen:-
Verschlüsseln Sie geheime Daten im Ruhezustand
(Kubernetes-Dokumentation). -
Wird AWS KMS für die Envelope-Verschlüsselung von Kubernetes-Geheimnissen verwendet. Auf diese Weise können Sie Ihre Geheimnisse mit einem eindeutigen Datenschlüssel verschlüsseln. Sie können einen AWS KMS Schlüsselverschlüsselungsschlüssel verwenden, um den Datenschlüssel zu verschlüsseln. Sie können den Verschlüsselungsschlüssel nach einem wiederkehrenden Zeitplan automatisch rotieren lassen. Mit dem AWS KMS Plugin für Kubernetes werden alle Kubernetes-Geheimnisse in Chiffretext gespeichert.
etcd
Sie können nur vom Kubernetes-API-Server entschlüsselt werden. Weitere Informationen finden Sie unter Verwenden der Unterstützung des Amazon EKS-Verschlüsselungsanbieters zur Verteidigung und Verschlüsseln vonKubernetes-Geheimnissen mit AWS KMS auf vorhandenen Clustern. -
Aktivieren oder konfigurieren Sie die Autorisierung durch rollenbasierte Zugriffskontrollregeln (RBAC), welche das Lesen und Schreiben des Geheimnisses einschränken. Schränken Sie die Berechtigungen ein, um neue Geheimnisse zu erstellen oder bestehende zu ersetzen. Weitere Informationen finden Sie unter Autorisierungsübersicht
(Kubernetes-Dokumentation). -
Wenn Sie mehrere Container in einem Pod definieren und nur einer dieser Container Zugriff auf ein Geheimnis benötigt, definieren Sie den Volume-Mount so, dass die anderen Container keinen Zugriff auf dieses Geheimnis haben. Geheimnisse, die als Volumes bereitgestellt werden, werden instanziiert als
tmpfs
-Volumes und werden automatisch vom Knoten entfernt, wenn der Pod gelöscht wird. Sie könnten auch Umgebungsvariablen verwenden, aber wir empfehlen diesen Ansatz nicht, da die Werte von Umgebungsvariablen in Protokollen erscheinen können. Weitere Informationen dazu finden Sie unter Geheimnisse(Kubernetes-Dokumentation). -
Vermeiden Sie nach Möglichkeit die Gewährung von Zugriff auf
watch
- undlist
-Anforderungen auf Geheimnisse innerhalb eines Namespaces. In der Kubernetes-API sind diese Anfragen mächtig, da sie es dem Client ermöglichen, die Werte jedes Geheimnisses in diesem Namespace zu überprüfen. -
Erlauben Sie nur Clusteradministratoren den Zugriff auf
etcd
, einschließlich Lesezugriff. -
Wenn es mehrere
etcd
-Instances gibt, stellen Sie sicher, dassetcd
TLS für die Kommunikation zwischenetcd
-Peers verwendet.
-
-
Wenn Sie ASCP verwenden, gehen Sie wie folgt vor, um Geheimnisse zu schützen:
-
Verwenden IAM-Rollen für Servicekonten, um den Geheimniszugriff auf autorisierte Pods zu beschränken.
-
Aktivieren Sie die Verschlüsselung von Kubernetes-Geheimnissen, indem Sie den AWS Encryption Provider
(GitHub Repository) verwenden, um die Envelope-Verschlüsselung mit einem vom Kunden verwalteten KMS-Schlüssel zu implementieren.
-
-
Um das Risiko von Datenlecks durch Umgebungsvariablen zu verringern, empfehlen wir Ihnen, den AWS Secrets Manager and Config Provider for Secret Store CSI Driver
(GitHub) zu verwenden. Mit diesem Treiber können Sie festlegen, dass im Secrets Manager gespeicherte Geheimnisse und im Parameter Store gespeicherte Parameter als in Kubernetes-Pods gemountete Dateien angezeigt werden. Anmerkung
AWS Fargate wird nicht unterstützt.
-
Erstellen Sie einen CloudWatch Amazon-Metrikfilter und einen Alarm, um Benachrichtigungen für vom Administrator festgelegte Vorgänge zu senden, z. B. das Löschen von Geheimnissen oder die Verwendung einer geheimen Version während der Wartezeit auf das Löschen. Weitere Informationen finden Sie unter Erstellen eines Alarms basierend auf Anomalieerkennung.