Aktive Arbeitslastdaten mit Confidential GKE Nodes verschlüsseln

Auf dieser Seite erfahren Sie, wie Sie die Verschlüsselung von aktiven Daten in Ihren Knoten und Arbeitslasten mithilfe von Confidential Google Kubernetes Engine-Knoten erzwingen. Durch die Erzwingung der Verschlüsselung kann die Sicherheit Ihrer Arbeitslasten erhöht werden.

Diese Seite richtet sich an Sicherheitsexperten, die Sicherheitsmaßnahmen in GKE implementieren. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und ‑Aufgaben.

Machen Sie sich vor dem Lesen dieser Seite mit dem Konzept von Daten in Verwendung vertraut.

Was sind Confidential GKE Nodes?

Sie können Ihre Arbeitslasten mit Confidential GKE Nodes oder dem Modus „Vertraulich“ für Hyperdisk Balanced verschlüsseln.

Confidential GKE Nodes

Confidential GKE Nodes verwendet Compute Engine Confidential VM, um aktive Daten mit hardwarebasierter Speicherverschlüsselung zu schützen. Confidential GKE Nodes unterstützt die folgenden Confidential Computing-Technologien:

  • AMD Secure Encrypted Virtualization (SEV)
  • AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP)
  • Intel Trust Domain Extensions (TDX)

Weitere Informationen zu diesen Technologien und Hilfe bei der Auswahl der optimalen Technologie für Ihre Anforderungen finden Sie unter Confidential VM – Übersicht.

Confidential GKE Nodes ändert nichts an den Sicherheitsmaßnahmen, die GKE auf Cluster-Steuerungsebenen anwendet. Weitere Informationen zu diesen Maßnahmen finden Sie unter Sicherheit der Steuerungsebene. Wenn Sie sehen möchten, wer auf die Steuerungsebenen in Ihren Google Cloud-Projekten zugreift, verwenden Sie Access Transparency.

Sie können Confidential GKE Nodes für ganze Cluster, für bestimmte Knotenpools oder für bestimmte Arbeitslasten aktivieren. In der folgenden Tabelle werden diese Aktivierungsmethoden beschrieben:

Einstellung „Confidential GKE Nodes“ Beschreibung Verhalten
Arbeitslastniveau Konfigurieren Sie Confidential GKE Nodes in einer ComputeClass und wählen Sie diese ComputeClass dann in einer Arbeitslast aus. GKE erstellt Knoten, die diese Konfiguration verwenden, um Ihre Pods auszuführen.

Die Arbeitslasteinstellung unterstützt alle der folgenden Confidential Computing-Technologien, unabhängig vom Clustermodus oder vom Typ des Knotenpools:

  • AMD SEV
  • AMD SEV-SNP
  • Intel TDX
Clusterebene Diese Einstellung kann nicht rückgängig gemacht werden.

Aktivieren Sie Confidential GKE Nodes, wenn Sie einen neuen Autopilot- oder Standardcluster erstellen. Alle Knoten im Cluster verwenden Confidential GKE Nodes. Sie können die Clustereinstellung nicht für einzelne Knotenpools oder Arbeitslasten überschreiben.

Die unterstützten Technologien auf Clusterebene hängen vom Betriebsmodus des Clusters ab:

  • Autopilot-Cluster: AMD SEV
  • Standardcluster:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
Knotenpoolebene Sie können Confidential GKE Nodes aktivieren, wenn Sie einen neuen Knotenpool in einem Standardcluster erstellen. Sie können diese Methode nur verwenden, wenn Confidential GKE Nodes auf Clusterebene deaktiviert ist.

Die unterstützten Technologien auf Knotenpoolebene hängen davon ab, ob für den Knotenpool die automatische Knotenbereitstellung verwendet wird:

  • Manuell erstellte Knotenpools:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
  • Automatisch bereitgestellte Knotenpools:
    • AMD SEV
    • AMD SEV-SNP

Vertraulicher Modus für Hyperdisk Balanced

Sie können auch den vertraulichen Modus für Hyperdisk Balanced für Ihren Bootlaufwerkspeicher aktivieren. Dadurch werden Ihre Daten in zusätzlichen hardwaregestützten Enklaven verschlüsselt.

Sie können den Modus „Vertraulich“ für Hyperdisk Balanced aktivieren, wenn Sie einen der folgenden Schritte ausführen:

  • Neuen Cluster erstellen
  • Neuen Knotenpool erstellen

Sie können einen vorhandenen Cluster oder Knotenpool nicht aktualisieren, um die Einstellung für den Modus „Vertraulich“ für Hyperdisk Balanced zu ändern.

Die folgende Tabelle zeigt das GKE-Verhalten, das gilt, wenn Sie den vertraulichen Modus für die Einstellung „Hyperdisk Balanced“ auf Cluster- oder Knotenpoolebene aktivieren:

Einstellung für den vertraulichen Modus für Hyperdisk Balanced Konfiguration Verhalten
Clusterebene Neuen Cluster erstellen Nur der Standardknotenpool im Cluster verwendet die Einstellung „Vertraulicher Modus für Hyperdisk Balanced“. Folgendes ist nicht möglich:
  • Modus „Vertraulich“ für die Einstellung „Hyperdisk Balanced“ für einen vorhandenen Knotenpool im Cluster deaktivieren
  • Modus „Vertraulich“ für die Einstellung „Hyperdisk Balanced“ in vorhandenen Clustern aktivieren
Knotenpoolebene Neuen Knotenpool erstellen Sie können die Einstellung „Vertraulicher Modus für Hyperdisk Balanced“ für alle neuen Knotenpools bei der Erstellung konfigurieren. Sie können vorhandene Knotenpools nicht aktualisieren, um die Einstellung „Vertraulicher Modus für Hyperdisk Balanced“ zu verwenden.

Preise

Je nachdem, wie Sie Confidential GKE Nodes konfigurieren, gelten die folgenden Preise:

Preise für Confidential GKE Nodes
Arbeitslast

Bei Autopilot-Arbeitslasten fallen beide der folgenden Kosten an:

  • Autopilot-Knotenbasierte Abrechnung für die Compute Engine-Maschinenreihen, auf denen die Pods ausgeführt werden. Weitere Informationen finden Sie im Abschnitt „Pods mit bestimmten Hardwareanforderungen“ unter Google Kubernetes Engine-Preise.
  • Preise für Confidential GKE Nodes. Weitere Informationen finden Sie im Abschnitt „Preise für Confidential GKE Nodes in GKE Autopilot“ unter Preise für Confidential VMs.

Bei Standardarbeitslasten fallen beide der folgenden Kosten an:

Clusterebene

In Autopilot-Clustern fallen beide der folgenden Kosten an:

  • Preise für die ausgeglichene Compute-Klasse, da sich die Standardmaschinenserie im Cluster in N2D ändert. Weitere Informationen finden Sie im Abschnitt „Pods der Compute-Klasse ‚Balanced‘ und ‚Scale-Out‘“ unter Google Kubernetes Engine-Preise.
  • Preise für Confidential GKE Nodes. Weitere Informationen finden Sie im Abschnitt „Preise für Confidential GKE Nodes in GKE Autopilot“ unter Preise für Confidential VMs.

In Standardclustern fallen beide der folgenden Kosten an:

Knotenpoolebene

In Standard-Knotenpools fallen die folgenden Kosten an:

Außerdem können Confidential GKE Nodes beim Start etwas mehr Logdaten generieren als Knoten, die keine Confidential GKE Nodes sind. Weitere Informationen zu den Logpreisen finden Sie unter Preise für Google Cloud Observability.

Hinweise

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diesen Task verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem Befehl gcloud components update ab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.

Voraussetzungen

Für Confidential GKE Nodes gelten die folgenden Anforderungen:

  • Autopilot-Cluster müssen die GKE-Version 1.30.2 oder höher ausführen.
  • Auf Standardclustern muss je nach der von Ihnen ausgewählten Confidential Computing-Technologie eine der folgenden GKE-Versionen ausgeführt werden:

    • AMD SEV: Beliebige GKE-Version.
    • AMD SEV-SNP: 1.32.2-gke.1297000 oder höher
    • Intel TDX: 1.32.2-gke.1297000 oder höher.
  • Damit Sie Confidential GKE Nodes auf Arbeitslast-Ebene aktivieren können, müssen Autopilot- und Standardcluster die GKE-Version 1.33.3-gke.1392000 oder höher ausführen.

  • Für Knoten muss ein Maschinentyp verwendet werden, der die von Ihnen ausgewählte Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie unter Maschinentypen, CPUs und Zonen.

  • Die Steuerungsebenen und Knoten des Clusters müssen sich an einem Standort befinden, der die von Ihnen ausgewählte Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.

Confidential GKE Nodes auf Arbeitslastebene konfigurieren

Wenn Sie Confidential GKE Nodes für einzelne Arbeitslasten aktivieren möchten, verwenden Sie eine ComputeClass. ComputeClasses sind benutzerdefinierte Kubernetes-Ressourcen, mit denen Sie die Attribute neuer Knoten definieren können, die von GKE erstellt werden. Außerdem können Sie das Fallback-Verhalten steuern, wenn keine Hardware verfügbar ist. ComputeClasses unterstützen alle verfügbaren Confidential Computing-Technologien für GKE, auch wenn eine bestimmte Technologie auf Cluster- oder Knotenpoolebene nicht unterstützt wird.

So konfigurieren Sie Confidential GKE Nodes auf Arbeitslast-Ebene:

  1. Optional: Aktivieren Sie für GKE-Standardcluster die automatische Knotenbereitstellung für den Cluster. Überspringen Sie diesen Schritt bei Autopilot-Clustern.

    Wenn Sie Compute-Klassen nur mit manuell erstellten Knotenpools verwenden möchten, müssen Sie auch Knotenmarkierungen und Knotenlabels manuell konfigurieren. Diese zusätzliche manuelle Konfiguration kann dazu führen, dass Sie weniger Vorteile durch die Verwendung einer ComputeClass zum Erstellen von Confidential GKE Nodes haben.

  2. Speichern Sie das folgende ComputeClass-Manifest als YAML-Datei. Weitere Informationen zu den unterstützten Feldern und Werten für ComputeClasses finden Sie in der ComputeClass CustomResourceDefinition.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      nodePoolConfig:
        confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY
      nodePoolAutoCreation:
        enabled: true
      activeMigration:
        optimizeRulePriority: true
      priorityDefaults:
        location:
          zones: ['ZONE1','ZONE2']
      priorities:
      - machineFamily: MACHINE_SERIES
      - machineType: MACHINE_TYPE
      whenUnsatisfiable: DoNotScaleUp
    

    Ersetzen Sie Folgendes:

    • COMPUTE_CLASS: Ein Name für die neue Compute-Klasse.
    • CONFIDENTIAL_COMPUTE_TECHNOLOGY: Die zu verwendende Confidential Computing-Technologie. Folgende Werte werden unterstützt:

      • SEV für AMD SEV
      • SEV_SNP für AMD SEV-SNP
      • TDX für Intel TDX
    • ZONE1,ZONE2,...: Die Zonen, in denen Knoten erstellt werden sollen, z. B. ['us-central1-a','us-central1-b']. Geben Sie Zonen an, die die von Ihnen angegebene Confidential Computing-Technologie unterstützen. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.

    • MACHINE_SERIES: Die Maschinenserie für die Knoten, z. B. n2d. Geben Sie eine Maschinenserie an, die die von Ihnen angegebene Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie unter Maschinentypen, CPUs und Zonen.

    • MACHINE_TYPE: der Maschinentyp für die Knoten, z. B. n2d-standard-4. Geben Sie einen Maschinentyp an, der die von Ihnen angegebene Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie unter Maschinentypen, CPUs und Zonen.

    Dieses Manifest enthält das Feld spec.nodePoolAutoCreation mit dem Wert enabled: true. Dadurch kann GKE neue Knotenpools mithilfe der automatischen Knotenbereitstellung erstellen.

  3. Erstellen Sie die ComputeClass in Ihrem Cluster:

    kubectl apply -f PATH_TO_COMPUTE_CLASS_MANIFEST
    

    Ersetzen Sie PATH_TO_COMPUTE_CLASS_MANIFEST durch den Pfad zur ComputeClass-Manifestdatei.

  4. Speichern Sie das folgende Deployment-Manifest als YAML-Datei:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
        spec:
          nodeSelector:
            # Replace with the name of a compute class
            cloud.google.com/compute-class: COMPUTE_CLASS 
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            resources:
              requests:
                cpu: "250m"
                memory: "1Gi"

  5. Erstellen Sie das Deployment:

    kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
    

    Ersetzen Sie PATH_TO_DEPLOYMENT_MANIFEST durch den Pfad zur Deployment-Manifestdatei.

Neue Knoten, die von GKE für diese Arbeitslast erstellt werden, verwenden die von Ihnen angegebene Confidential Computing-Technologie. Diese Knoten werden in einer der von Ihnen ausgewählten Zonen auf einem Maschinentyp ausgeführt, den Sie in der ComputeClass definiert haben. GKE fügt Knotenmarkierungen und Knotenlabels hinzu, damit nur Pods, die dieselbe ComputeClass auswählen, auf den Knoten ausgeführt werden können.

Confidential GKE Nodes auf Clusterebene konfigurieren

Sie können Confidential GKE Nodes für einen gesamten Autopilot- oder Standardcluster aktivieren. Das bedeutet, dass jeder Knoten in den Clustern Confidential GKE Nodes verwendet. Daher werden alle Arbeitslasten, die Sie in diesem Cluster bereitstellen, auf Confidential GKE Nodes ausgeführt. Sie können die Clustereinstellung nicht in einzelnen Arbeitslasten oder Knotenpools überschreiben.

Neuen Autopilot-Cluster erstellen

Autopilot-Cluster unterstützen nur AMD SEV auf Clusterebene. Wenn Sie Confidential GKE Nodes aktivieren, ändert sich die Standardmaschinenreihe im Autopilot-Cluster in N2D. Alle Ihre Arbeitslasten werden auf diesen vertraulichen Knoten ausgeführt, ohne dass Sie Ihre Arbeitslastmanifeste ändern müssen.

  • Führen Sie dazu diesen Befehl aus:

    gcloud container clusters create-auto CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-confidential-nodes
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: Der Name des Autopilot-Clusters.
    • CONTROL_PLANE_LOCATION: Die Compute Engine-Region für die Cluster-Steuerungsebene, z. B. us-central1.

    Auf dem Cluster muss Version 1.30.2 oder höher ausgeführt werden. Weitere Informationen finden Sie unter Autopilot-Cluster mit einem bestimmten Release-Channel und einer bestimmten Version erstellen.

Neuen Standardcluster erstellen

Wenn Sie einen Standardcluster erstellen, können Sie eine Confidential Computing-Technologie für Ihre Knoten angeben. Die Angabe der Technologie beim Erstellen eines Clusters hat folgende Auswirkungen:

  • In diesem Cluster können Sie nur Knotenpools oder Arbeitslasten erstellen, die Confidential GKE Nodes verwenden.
  • Sie können den Cluster nicht aktualisieren, um Confidential GKE Nodes zu deaktivieren.
  • Sie können die Confidential Computing-Technologie auf Clusterebene nicht in einzelnen Knotenpools oder Arbeitslasten überschreiben.

Die Konfiguration einer Confidential Computing-Einstellung auf Clusterebene ist dauerhaft. Berücksichtigen Sie daher die folgenden Anwendungsfälle, bevor Sie Ihren Cluster erstellen:

Wählen Sie eine der folgenden Optionen aus, um einen Cluster im Standardmodus zu erstellen, der Confidential GKE Nodes verwendet:

gcloud

Geben Sie beim Erstellen eines neuen Clusters die Option --confidential-node-type in der gcloud CLI an:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --machine-type=MACHINE_TYPE \
    --node-locations=ZONE1,ZONE2,... \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Clusters.
  • LOCATION: Der Compute Engine-Standort für die Cluster-Steuerungsebene. Der Standort muss die von Ihnen angegebene Confidential Computing-Technologie unterstützen. Weitere Informationen finden Sie im Abschnitt Verfügbarkeit.
  • MACHINE_TYPE: ein Maschinentyp, der die von Ihnen angegebene Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie im Abschnitt Verfügbarkeit.
  • ZONE1,ZONE2,...: Eine durch Kommas getrennte Liste von Zonen in der Region der Steuerungsebene, die die neue Confidential Computing-Technologie unterstützen. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.
  • CONFIDENTIAL_COMPUTE_TECHNOLOGY: Die zu verwendende Confidential Computing-Technologie. Folgende Werte werden unterstützt:

    • sev: AMD SEV
    • sev_snp: AMD SEV-SNP
    • tdx: Intel TDX

Sie können das Flag --enable-confidential-nodes auch in Ihrem Befehl zum Erstellen des Clusters verwenden. Wenn Sie in Ihrem Befehl nur dieses Flag angeben, verwendet der Cluster AMD SEV. Der im Befehl angegebene Maschinentyp muss AMD SEV unterstützen. Wenn Sie jedoch das Flag --confidential-node-type im selben Befehl angeben, verwendet GKE den Wert, den Sie im Flag --confidential-node-type angeben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster erstellen auf.

    Zur Seite „Kubernetes-Cluster erstellen“

  2. Klicken Sie im Navigationsmenü im Bereich Cluster auf Sicherheit.

  3. Klicken Sie auf das Kästchen Confidential GKE Nodes aktivieren.

  4. Klicken Sie im Dialogfeld Änderungen erforderlich auf Änderungen vornehmen.

  5. Wählen Sie im Menü Typ die Confidential Computing-Technologie aus, die Sie verwenden möchten.

    Wenn für die ausgewählte Technologie eine bestimmte Compute Engine-Maschinenserie erforderlich ist, wird ein Dialogfeld angezeigt. Klicken Sie auf Änderungen vornehmen, um die Maschinenserie für den Knotenpool zu aktualisieren.

  6. Klicken Sie im Navigationsmenü im Abschnitt Knotenpools auf default-pool.

  7. Führen Sie im Bereich Knotenpooldetails die folgenden Schritte aus:

    1. Klicken Sie das Kästchen Knotenstandorte angeben an. Eine Liste der Zonen in der Region des Clusters wird angezeigt.
    2. Setzen Sie ein Häkchen bei den Zonen, die die Confidential Computing-Technologie unterstützen, die Sie für die Knoten ausgewählt haben. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.
  8. Klicken Sie auf Erstellen.

Weitere Informationen zum Erstellen von Clustern finden Sie unter Regionalen Cluster erstellen.

Bei Knotenpools, die mit der Einstellung „Vertraulicher Modus für Hyperdisk Balanced“ erstellt wurden, sind nur die Knoten im Knotenpool auf die Einrichtungskonfiguration beschränkt. Für alle neuen Knotenpools, die im Cluster erstellt werden, müssen Sie den vertraulichen Modus bei der Erstellung einrichten.

Automatische Knotenbereitstellung konfigurieren

Sie können die automatische Knotenbereitstellung so konfigurieren, dass Confidential GKE Nodes in automatisch bereitgestellten Knotenpools verwendet werden. Das automatische Bereitstellen von Knoten unterstützt die folgenden Confidential Computing-Technologien:

  • AMD SEV
  • AMD SEV-SNP

Wenn Sie Confidential GKE Nodes mit der automatischen Knotenbereitstellung verwenden möchten, geben Sie beim Erstellen eines Clusters das gcloud CLI-Flag --enable-confidential-nodes an. Weitere Überlegungen:

  • Wenn Sie den Cluster erstellen, wählen Sie eine Confidential Computing-Technologie aus, die von der automatischen Knotenbereitstellung unterstützt wird. Diese Auswahl ist auf Clusterebene endgültig.
  • Wenn Sie die automatische Knotenbereitstellung für einen vorhandenen Cluster aktivieren, muss der Cluster bereits eine Confidential GKE Nodes-Technologie verwenden, die von der automatischen Knotenbereitstellung unterstützt wird.
  • Prüfen Sie beim Bereitstellen von Arbeitslasten, ob die Arbeitslasten die Confidential Computing-Technologie des Clusters und eine für diese Technologie kompatible Maschinenserie auswählen.

Confidential GKE Nodes auf Knotenpoolebene konfigurieren

Sie können Confidential GKE Nodes in bestimmten Knotenpools aktivieren, wenn Confidential GKE Nodes auf Clusterebene deaktiviert ist.

Der Modus „Vertraulich“ für Hyperdisk Balanced muss in der Anfrage zum Erstellen des Knotenpools angegeben werden.

Neuen Knotenpool erstellen

Wählen Sie eine der folgenden Optionen aus, um einen neuen Knotenpool mit aktivierten Confidential GKE Nodes zu erstellen:

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container node-pools create NODE_POOL_NAME \
    --location=LOCATION \
    --cluster=CLUSTER_NAME \
    --machine-type=MACHINE_TYPE \
    --node-locations=ZONE1,ZONE2,... \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

Ersetzen Sie Folgendes:

  • NODE_POOL_NAME ist der Name des neuen Knotenpools.
  • LOCATION: Der Standort für den neuen Knotenpool. Der Standort muss die von Ihnen angegebene Confidential Computing-Technologie unterstützen. Weitere Informationen finden Sie im Abschnitt Verfügbarkeit.
  • CLUSTER_NAME: Der Name Ihres Clusters.
  • MACHINE_TYPE: ein Maschinentyp, der die von Ihnen angegebene Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie im Abschnitt Verfügbarkeit.
  • ZONE1,ZONE2,...: Eine durch Kommas getrennte Liste von Zonen in der Clusterregion, die die neue Technologie „Confidential Computing“ unterstützen. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.
  • CONFIDENTIAL_COMPUTE_TECHNOLOGY: Die zu verwendende Confidential Computing-Technologie. Folgende Werte werden unterstützt:

    • sev: AMD SEV
    • sev_snp: AMD SEV-SNP
    • tdx: Intel TDX

Sie können das Flag --enable-confidential-nodes auch in Ihrem Befehl zum Erstellen des Clusters verwenden. Wenn Sie in Ihrem Befehl nur dieses Flag angeben, verwendet der Cluster AMD SEV. Der im Befehl angegebene Maschinentyp muss AMD SEV unterstützen. Wenn Sie jedoch das Flag --confidential-node-type im selben Befehl angeben, verwendet GKE den Wert, den Sie im Flag --confidential-node-type angeben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf den Namen Ihres Standard-Clusters.

  3. Klicken Sie auf Knotenpool hinzufügen .

  4. Klicken Sie im Navigationsmenü auf Sicherheit.

  5. Führen Sie im Bereich Knotensicherheit die folgenden Schritte aus:

    1. Klicken Sie auf das Kästchen Confidential GKE Nodes aktivieren.
    2. Klicken Sie im Dialogfeld Änderungen erforderlich auf Änderungen vornehmen.
    3. Wählen Sie im Menü Typ die Confidential Computing-Technologie aus, die Sie verwenden möchten.

      Wenn für die ausgewählte Technologie eine bestimmte Compute Engine-Maschinenserie erforderlich ist, wird ein Dialogfeld angezeigt. Klicken Sie auf Änderungen vornehmen, um die Maschinenserie für den Knotenpool zu aktualisieren.

  6. Klicken Sie im Navigationsmenü auf Knotenpooldetails.

  7. Führen Sie im Bereich Knotenpooldetails die folgenden Schritte aus:

    1. Klicken Sie das Kästchen Knotenstandorte angeben an. Eine Liste der Zonen in der Region des Clusters wird angezeigt.
    2. Setzen Sie ein Häkchen bei den Zonen, die die Confidential Computing-Technologie unterstützen, die Sie für die Knoten ausgewählt haben. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.
  8. Optional: Konfigurieren Sie weitere Einstellungen für den Knotenpool.

  9. Klicken Sie auf Erstellen.

Vorhandenen Knotenpool aktualisieren

Für diese Änderung müssen die Knoten neu erstellt werden, was zu Unterbrechungen Ihrer laufenden Arbeitslasten führen kann. Details zu dieser spezifischen Änderung finden Sie in der entsprechenden Zeile in der Tabelle Manuelle Änderungen, die die Knoten mithilfe einer Knotenupgrade-Strategie neu erstellen, ohne Wartungsrichtlinien zu berücksichtigen. Weitere Informationen zu Knotenupdates finden Sie unter Unterbrechungen durch Knotenupdates planen.

Sie können vorhandene Knotenpools aktualisieren, um Confidential GKE Nodes zu verwenden oder die Confidential Computing-Technologie zu ändern, die von den Knoten verwendet wird. Der Knotenpool muss alle folgenden Anforderungen erfüllen:

  • Die Knoten verwenden einen Maschinentyp, der die ausgewählte Confidential Computing-Technologie unterstützt.
  • Die Knoten werden in Zonen ausgeführt, die die ausgewählte Confidential Computing-Technologie unterstützen.

Da der Maschinentyp und die Standortverfügbarkeit je nach Confidential Computing-Technologie variieren können, müssen Sie diese Attribute für Ihren Knotenpool möglicherweise aktualisieren, bevor Sie eine bestimmte Confidential Computing-Technologie aktivieren.

Wenn Sie einen vorhandenen Knotenpool für die Verwendung von Confidential GKE Nodes aktualisieren möchten, wählen Sie eine der folgenden Optionen aus:

gcloud

Mit der gcloud CLI können Sie Confidential GKE Nodes in einem Knotenpool aktivieren oder die Confidential Computing-Technologie der Knoten ändern.

  1. Wenn der Knotenpool bereits Confidential GKE Nodes verwendet, deaktivieren Sie Confidential GKE Nodes. Warten Sie, bis die Aktualisierung des Knotenpools abgeschlossen ist.
  2. Ändern Sie den Maschinentyp des Knotenpools und die Knotenstandorte in unterstützte Werte für die neue Confidential Computing-Technologie:

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=CLUSTER_LOCATION \
        --machine-type=MACHINE_TYPE \
        --node-locations=ZONE1,ZONE2,...
    

    Ersetzen Sie Folgendes:

    • NODE_POOL_NAME: Der Name des vorhandenen Knotenpools.
    • CLUSTER_NAME ist der Name des Clusters.
    • CLUSTER_LOCATION: Der Standort des Clusters.
    • MACHINE_TYPE: ein Maschinentyp, der die neue Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie im Abschnitt Verfügbarkeit.
    • ZONE1,ZONE2,...: Eine durch Kommas getrennte Liste von Zonen in der Clusterregion, die die neue Technologie „Confidential Computing“ unterstützen. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.
  3. Aktualisieren Sie den Knotenpool mit der zu verwendenden Confidential Computing-Technologie:

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=CLUSTER_LOCATION \
        --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
    

    Ersetzen Sie CONFIDENTIAL_COMPUTE_TECHNOLOGY durch die zu verwendende Confidential Computing-Technologie. Folgende Werte werden unterstützt:

    • sev: AMD SEV
    • sev_snp: AMD SEV-SNP
    • tdx: Intel TDX

Console

Sie können einen vorhandenen Knotenpool so aktualisieren, dass er Confidential GKE Nodes verwendet, wenn der Maschinentyp des Knotenpools von der ausgewählten Confidential Computing-Technologie unterstützt wird. Wenn die Knoten keinen unterstützten Maschinentyp verwenden, folgen Sie stattdessen der Anleitung für die gcloud CLI in diesem Abschnitt.

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf den Namen Ihres Standard-Clusters.

  3. Klicken Sie auf den Tab Knoten.

  4. Klicken Sie auf den Namen des Knotenpools, den Sie ändern möchten.

  5. Klicken Sie auf der Seite Knotenpooldetails auf Bearbeiten. Der Bereich Knotenpool bearbeiten wird geöffnet.

  6. Prüfen Sie im Bereich Zonen, ob die ausgewählten Zonen Confidential Computing unterstützen. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.

    Wenn eine ausgewählte Zone die Technologie nicht unterstützt, gehen Sie so vor:

    1. Entfernen Sie das Häkchen aus dem Kästchen für die nicht unterstützte Zone.
    2. Optional: Klicken Sie die Kästchen für andere unterstützte Zonen an.
    3. Klicken Sie auf Speichern. Warten Sie, bis das Knotenpoolupdate abgeschlossen ist.
    4. Klicken Sie auf  Bearbeiten, um den Bereich Knotenpool bearbeiten wieder zu öffnen.
  7. Klicken Sie im Bereich Sicherheit das Kästchen Confidential GKE Nodes aktivieren an.

  8. Wählen Sie im Menü Typ die Confidential Computing-Technologie für die Knoten aus.

  9. Klicken Sie auf Speichern.

Arbeitslasten nur in vertraulichen Knotenpools platzieren

Wenn Sie Confidential GKE Nodes auf Clusterebene aktivieren, werden alle Ihre Arbeitslasten auf vertraulichen Knoten ausgeführt. Sie müssen keine Änderungen an Ihren Manifesten vornehmen. Wenn Sie Confidential GKE Nodes jedoch nur für bestimmte Knotenpools im Standardmodus auf Knotenpoolebene aktivieren, sollten Sie deklarieren, dass Ihre Arbeitslasten nur in Knotenpools mit Confidential GKE Nodes ausgeführt werden dürfen.

  • Wenn eine Arbeitslast auf einer bestimmten Confidential Computing-Technologie ausgeführt werden soll, verwenden Sie eine Knotenauswahl mit dem Label cloud.google.com/gke-confidential-nodes-instance-type, wie im folgenden Beispiel:

    apiVersion: v1
    kind: Pod
    spec:
    # For readability, lines are omitted from this example manifest
      nodeSelector:
        cloud.google.com/gke-confidential-nodes-instance-type: "CONFIDENTIAL_COMPUTE_SELECTOR"
    

    Ersetzen Sie CONFIDENTIAL_COMPUTE_SELECTOR durch den Namen der Technologie, die vom Knotenpool verwendet wird. Dieses Feld unterstützt die folgenden Werte, die Sie in Großbuchstaben angeben müssen:

    • SEV: AMD SEV
    • SEV_SNP: AMD SEV-SNP
    • TDX: Intel TDX
  • Damit eine Arbeitslast auf vertraulichen Knoten unabhängig von der Confidential Computing-Technologie ausgeführt werden kann, verwenden Sie eine Knotenaffinitätsregel, wie im folgenden Beispiel:

    apiVersion: v1
    kind: Pod
    spec:
      containers:
      - name: confidential-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-confidential-nodes-instance-type
                operator: Exists
    
  • Wenn eine Arbeitslast auf Knoten ausgeführt werden soll, die nur eine Teilmenge der verfügbaren Confidential Computing-Technologien verwenden, verwenden Sie eine Knotenaffinitätsregel, die dem folgenden Beispiel ähnelt:

    apiVersion: v1
    kind: Pod
    spec:
      containers:
      - name: confidential-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-confidential-nodes-instance-type
                operator: In
                values:
                - SEV
                - SEV_SNP
                - TDX
    

    Geben Sie im Feld values nur die Confidential Computing-Technologien an, auf denen die Arbeitslast ausgeführt werden soll.

Prüfen, ob Confidential GKE Nodes aktiviert ist

Sie können prüfen, ob Ihre Cluster oder Knoten Confidential GKE Nodes verwenden, indem Sie die Cluster, Knotenpools, Knoten oder Compute Engine-Instanzen untersuchen.

Für Cluster bestätigen

Wählen Sie eine der folgenden Optionen aus:

gcloud

Cluster beschreiben:

gcloud container clusters describe CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format='yaml(confidentialNodes.confidentialInstanceType)'

Wenn Confidential GKE Nodes aktiviert ist, sieht die Ausgabe in etwa so aus:

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR

Console

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf.

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf den Namen des Clusters, den Sie prüfen möchten.

  3. Prüfen Sie im Bereich Sicherheit, ob das Feld Confidential GKE Nodes den Wert Aktiviert hat.

Knotenpools überprüfen

Wählen Sie eine der folgenden Optionen aus:

gcloud

Beschreiben Sie den Knotenpool:

gcloud container node-pools describe NODE_POOL_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format='yaml(confidentialNodes.confidentialInstanceType,enableConfidentialStorage)'

Wenn Confidential GKE Nodes aktiviert ist, sieht die Ausgabe in etwa so aus:

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR

Wenn auch der vertrauliche Modus für Hyperdisk Balanced aktiviert ist, sieht die Ausgabe in etwa so aus:

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
enableConfidentialStorage: true

Console

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf.

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf den Namen des Clusters, den Sie prüfen möchten.

  3. Klicken Sie auf den Namen eines Knotenpools.

  4. Prüfen Sie im Bereich Sicherheit, ob das Feld Confidential GKE Nodes den Wert Aktiviert hat.

Für einen bestimmten Knoten prüfen

  1. Suchen Sie den Knotennamen:

    kubectl get nodes
    
  2. Beschreiben Sie den Knoten:

    kubectl describe NODE_NAME
    

    Ersetzen Sie NODE_NAME durch den Namen eines Knotens, den Sie prüfen möchten.

    Die Ausgabe sieht etwa so aus:

    Name:               gke-cluster-1-default-pool-affsf335r-asdf
    Roles:              <none>
    Labels:             cloud.google.com/gke-boot-disk=pd-balanced
                        cloud.google.com/gke-container-runtime=containerd
                        cloud.google.com/gke-confidential-nodes-instance-type=CONFIDENTIAL_COMPUTE_SELECTOR
                        cloud.google.com/gke-nodepool=default-pool
                        cloud.google.com/gke-os-distribution=cos
                        cloud.google.com/machine-family=e2
    # lines omitted for clarity
    

    In dieser Ausgabe gibt das Knotenlabel cloud.google.com/gke-confidential-nodes-instance-type an, dass der Knoten ein vertraulicher Knoten ist.

Einschränkungen für Organisationsrichtlinien festlegen

Sie können eine Einschränkung für die Organisationsrichtlinie definieren, um sicherzustellen, dass alle in Ihrer Organisation erstellten VM-Ressourcen vertrauliche VM-Instanzen sind. Für GKE können Sie die Einschränkung Non-Confidential Computing einschränken anpassen, um zu verlangen, dass alle neuen Cluster mit einer der verfügbaren Confidential Computing-Technologien erstellt werden. Fügen Sie den API-Dienstnamen container.googleapis.com der Ablehnungsliste hinzu, wenn Sie Einschränkungen für Organisationsrichtlinien erzwingen, wie im folgenden Beispiel:

gcloud resource-manager org-policies deny \
    constraints/compute.restrictNonConfidentialComputing compute.googleapis.com container.googleapis.com \
    --project=PROJECT_ID

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

PersistentVolume für den vertraulichen Modus für Hyperdisk Balanced erstellen

Eine Anleitung zu zulässigen Werten für den Durchsatz oder die IOPS finden Sie unter Leistungsniveau für Ihr Hyperdisk-Volume planen.

In den folgenden Beispielen wird gezeigt, wie Sie für jeden Hyperdisk-Typ eine StorageClass für den vertraulichen Modus für Hyperdisk Balanced erstellen können:

Hyperdisk Balanced

  1. Speichern Sie folgendes Manifest in einer Datei mit dem Namen confidential-hdb-example-class.yaml:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: balanced-storage
    provisioner: pd.csi.storage.gke.io
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true
    parameters:
      type: hyperdisk-balanced
      provisioned-throughput-on-create: "250Mi"
      provisioned-iops-on-create: "7000"
      enable-confidential-storage: true
      disk-encryption-kms-key: "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/HSM_KEY_NAME"
    

    Ersetzen Sie Folgendes:

    • KMS_PROJECT_ID: das Projekt, dem der Cloud KMS-Schlüssel gehört
    • REGION: die Region, in der sich das Laufwerk befindet
    • KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthält
    • HSM_KEY_NAME: der Name des HSM-Schlüssels, mit dem das Laufwerk verschlüsselt wird
  2. StorageClass erstellen:

    kubectl create -f hdb-example-class.yaml
    
  3. Erstellen Sie eine Hyperdisk-Anforderung für ein nichtflüchtiges Volume für GKE, die den Modus „Vertraulich“ für das Hyperdisk Balanced-Volume verwendet.

Führen Sie den folgenden Befehl aus, um den Namen der in Ihrem Cluster verfügbaren StorageClasses zu ermitteln:

kubectl get sc

Beschränkungen

Confidential GKE Nodes unterliegt den folgenden Einschränkungen:

Für den vertraulichen Modus für Hyperdisk Balanced gelten die folgenden Einschränkungen:

Einschränkungen der Live-Migration

Compute Engine Confidential VMs, die den N2D-Maschinentyp und AMD SEV als Confidential Computing-Technologie verwenden, unterstützen Live-Migration, durch die die potenzielle Unterbrechung der Arbeitslast durch ein Hostwartungsereignis minimiert wird. Die Live-Migration erfolgt in den folgenden GKE-Versionen:

  • 1.27.10-gke.1218000 und höher
  • 1.28.6-gke.1393000 und höher
  • 1.29.1-gke.1621000 und höher

Wenn auf Ihren Knotenpools bereits eine unterstützte Version ausgeführt wurde, als die Live-Migration hinzugefügt wurde, aktualisieren Sie die Knotenpools manuell auf dieselbe oder eine andere unterstützte Version. Durch das Upgrade der Knoten werden die Knoten neu erstellt und für die neuen Knoten ist die Live-Migration aktiviert.

Weitere Informationen dazu, welche Compute Engine-Maschinentypen die Live-Migration unterstützen, finden Sie unter Unterstützte Konfigurationen.

Wenn auf einem Knoten, der die Live-Migration nicht unterstützt, ein Hostwartungsereignis auftritt, wechselt der Knoten in den Status NotReady. Wenn Sie Pods ausführen, kommt es zu Unterbrechungen, bis der Knoten wieder bereit ist. Wenn die Wartung mehr als fünf Minuten dauert, versucht GKE möglicherweise, die Pods auf anderen Knoten neu zu erstellen.

Confidential GKE Nodes deaktivieren

Für diese Änderung müssen die Knoten neu erstellt werden, was zu Unterbrechungen Ihrer laufenden Arbeitslasten führen kann. Details zu dieser spezifischen Änderung finden Sie in der entsprechenden Zeile in der Tabelle Manuelle Änderungen, die die Knoten mithilfe einer Knotenupgrade-Strategie neu erstellen, ohne Wartungsrichtlinien zu berücksichtigen. Weitere Informationen zu Knotenupdates finden Sie unter Unterbrechungen durch Knotenupdates planen.

Sie können Confidential GKE Nodes nur in Knotenpools im Standardmodus deaktivieren. Wenn sich der Knotenpool in einem Cluster befindet, der Confidential GKE Nodes auf Clusterebene verwendet, können Sie das Feature nicht auf Knotenpoolebene deaktivieren. Wählen Sie eine der folgenden Optionen aus, um Confidential GKE Nodes zu deaktivieren:

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=CLUSTER_LOCATION \
    --no-enable-confidential-nodes

Console

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf den Namen Ihres Standard-Clusters.

  3. Klicken Sie auf den Tab Knoten.

  4. Klicken Sie auf den Namen des Knotenpools, den Sie ändern möchten.

  5. Klicken Sie auf der Seite Knotenpooldetails auf Bearbeiten. Der Bereich Knotenpool bearbeiten wird geöffnet.

  6. Entfernen Sie im Abschnitt Sicherheit das Häkchen aus dem Kästchen Confidential GKE Nodes aktivieren.

  7. Klicken Sie auf Speichern.

Nächste Schritte