Google Distributed Cloud Version 1.10 unterstützt das Verschlüsseln von Secrets, ohne dass ein externer KMS (Key Management Service) oder andere Abhängigkeiten erforderlich sind.
Always-On-Secrets-Verschlüsselung aktivieren
Die Always-On-Secrets-Verschlüsselung funktioniert, indem automatisch ein Verschlüsselungsschlüssel generiert wird, mit dem Secrets verschlüsselt werden, bevor sie in der etcd-Datenbank für diesen Cluster gespeichert werden. Die Secrets werden mit einem Datenverschlüsselungsschlüssel (Data Encryption Key, DEK) verschlüsselt, der für jeden Secret-Schreibvorgang generiert wird. Dieser DEK wird im AES-GCM-Modus zum Verschlüsseln des Secret-Objekts verwendet. Der DEK wird wiederum mit einem Schlüsselverschlüsselungsschlüssel (Key Encrypting Key, KEK) verschlüsselt. Der Verschlüsselungsalgorithmus ist A256GCM (AES GCM mit 256-Bit-Schlüssel).
Die Schlüsselversion ist eine Versionsnummer, die angibt, dass der Schlüssel derzeit verwendet wird.
Sie können die Secret-Verschlüsselung aktivieren, nachdem ein Cluster bereits erstellt wurde.
Für den Administratorcluster:
Bearbeiten Sie die Konfigurationsdatei für den Administratorcluster, um den Abschnitt
secretsEncryption
hinzuzufügen.Führen Sie den Befehl
gkectl update
aus:gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Für einen Nutzercluster:
Bearbeiten Sie die Konfigurationsdatei des Nutzerclusters, um den Abschnitt
secretsEncryption
hinzuzufügen.Führen Sie den Befehl
gkectl update
aus:gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Ersetzen Sie Folgendes:
ADMIN_KUBECONFIG
durch den Pfad der Datei "kubeconfig" Ihres Administratorclusters.ADMIN_CLUSTER_CONFIG
durch den Pfad Ihrer Konfigurationsdatei Ihres Administratorclusters.USER_CLUSTER_CONFIG
ist der Pfad Ihrer Nutzercluster-Konfigurationsdatei.
Die in diesem Abschnitt bereitgestellten gkectl update
-Befehle können auch für andere Aktualisierungen des entsprechenden Clusters verwendet werden.
Schlüsselspeicherung
Die Verschlüsselungsschlüssel für den Administratorcluster werden auf dem Datenlaufwerk des Administratorclusters gespeichert. Dieses Laufwerk wird auf dem Administrator-Master unter /opt/data bereitgestellt. Die Verschlüsselungsschlüssel finden Sie unter /opt/data/gke-k8s-kms-plugin/generatedkeys/. Diese Schlüssel müssen gesichert werden, um den Zugriff auf die von diesen Schlüsseln verschlüsselten Secrets zu erhalten. Sie sollten die VM-/Speicherverschlüsselung im Hypervisor oder ähnliche Maßnahmen aktivieren, damit die VM-Laufwerke der Steuerungsebene geschützt sind.
Schlüsselrotation
Um einen vorhandenen Verschlüsselungsschlüssel für einen Cluster zu rotieren, erhöhen Sie die keyVersion
in der entsprechenden Konfigurationsdatei für den Admincluster oder Nutzercluster-Konfigurationsdatei und führen Sie den entsprechenden gkectl update
-Befehl aus. Dadurch wird ein neuer Schlüssel erstellt, der mit der neuen Versionsnummer übereinstimmt, jedes Secret wird neu verschlüsselt und alte Schlüssel werden sicher gelöscht. Alle nachfolgenden neuen Secrets werden mit dem neuen Verschlüsselungsschlüssel verschlüsselt.
Always-On-Secret-Verschlüsselung deaktivieren
Fügen Sie das Feld disabled: true
hinzu, um die Secret-Verschlüsselung in einem vorhandenen Cluster zu deaktivieren. Führen Sie als Nächstes den entsprechenden gkectl update
-Befehl aus. Mit diesem Update wird jedes vorhandene Secret entschlüsselt und jedes Secret wird im Nur-Text-Format gespeichert. Alle nachfolgenden neuen Secrets werden im Nur-Text-Format gespeichert.
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true