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 können Sie die Sicherheit Ihrer Arbeitslasten erhöhen.

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 der Datennutzung 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 Arbeitsspeicherverschlü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 zur Auswahl der optimalen Technologie für Ihre Anforderungen finden Sie in der Übersicht über Confidential VMs.

Confidential GKE Nodes ändert nichts an den Sicherheitsmaßnahmen, die GKE auf Cluster-Steuerungsebenen anwendet. Informationen zu diesen Maßnahmen finden Sie unter Sicherheit der Steuerungsebene. Verwenden Sie Google Cloud Access Transparency, um Einblick in die Steuerungsebene zu erhalten.

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
Arbeitslastebene 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 zum Ausführen Ihrer Pods verwenden.

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

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

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

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

  • Autopilot-Cluster:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
  • Standardcluster:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
Knotenpoolebene Aktivieren Sie Confidential GKE Nodes, 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 der Knotenpool die automatische Knotenbereitstellung verwendet:

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

Modus „Vertraulich“ für Hyperdisk Balanced

Sie können auch den Modus „Vertraulich“ für Hyperdisk Balanced auf Ihrem Bootlaufwerksspeicher aktivieren, wodurch Ihre Daten in zusätzlichen hardwaregestützten Enklaven verschlüsselt werden.

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 Modus „Vertraulich“ für die Einstellung „Hyperdisk Balanced“ auf Cluster- oder Knotenpoolebene aktivieren:

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

Preise

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

Preise für Confidential GKE Nodes
Arbeitslastebene

Für Autopilot-Arbeitslasten fallen die folgenden Kosten an:

  • Knotenbasierte Autopilot-Abrechnung für die Compute Engine-Maschinenserie, auf der 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 die beiden folgenden Kosten an:

Clusterebene

In Autopilot-Clustern fallen die beiden folgenden Kosten an:

  • Preise für die ausgeglichene Compute-Klasse, da die Standardmaschinenserie im Cluster zu N2D wechselt. Weitere Informationen finden Sie im Abschnitt „Pods der Computing-Klassen ‚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 Standard-Clustern fallen die beiden folgenden Kosten an:

Knotenpoolebene

In Standard-Knotenpools fallen die folgenden Kosten an:

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

Hinweis

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 diese Aufgabe 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. Ältere gcloud CLI-Versionen unterstützen möglicherweise nicht die Ausführung der Befehle in diesem Dokument.

Voraussetzungen

Confidential GKE Nodes unterliegt den folgenden Anforderungen:

  • Autopilot-Cluster müssen die folgende GKE-Version ausführen:
    • Für AMD SEV muss auf dem Cluster Version 1.30.2 oder höher ausgeführt werden.
    • Für AMD SEV-SNP und Intel TDX muss der Cluster die Version 1.35.2-gke.1485000 oder höher ausführen.
  • Auf Standardclustern muss eine der folgenden GKE-Versionen ausgeführt werden, je nachdem, welche Confidential Computing-Technologie und welches Knotenbetriebssystem Sie auswählen:

    • Container-Optimized OS:

      • 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.
    • Ubuntu:

      • AMD SEV: 1.33.5-gke.1350000 oder höher und 1.34.1-gke.2037000 oder höher.
      • AMD SEV-SNP: 1.33.5-gke.1350000 oder höher und 1.34.1-gke.2037000 oder höher.
      • Intel TDX: 1.33.5-gke.1697000 oder höher und 1.34.1-gke.2909000 oder höher.
  • Wenn Sie Confidential GKE Nodes auf Arbeitslastebene aktivieren möchten, müssen Autopilot- und Standardcluster die GKE-Version 1.33.3-gke.1392000 oder höher ausführen.

  • Knoten müssen einen Maschinentyp verwenden, der die von Ihnen ausgewählte Confidential Computing-Technologie unterstützt. Weitere Informationen finden Sie unter Maschinentypen.

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

Confidential GKE Nodes auf Arbeitslastebene konfigurieren

Wenn Sie Confidential GKE Nodes in einzelnen 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 Hardware nicht 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 Arbeitslastebene:

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

    Wenn Sie ComputeClasses nur mit manuell erstellten Knotenpools verwenden möchten, müssen Sie auch Knotenmarkierungen und Knotenlabels manuell für diese Knotenpools konfigurieren. Diese zusätzliche manuelle Konfiguration kann dazu führen, dass Sie weniger Vorteile bei der Verwendung einer ComputeClass zum Erstellen von Confidential GKE Nodes feststellen.

  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 CustomResourceDefinition für ComputeClass.

    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 Zonen.

      Optional: Wenn Sie TPU-VMs bereitstellen, verwenden Sie eine KI-Zone wie us-central1-ai1a. KI-Zonen sind spezielle Standorte, die für KI-/ML-Arbeitslasten in Google Cloud -Regionen optimiert sind.

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

    • 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.

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

  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 GKE für diese Arbeitslast erstellt, 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, sodass 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 in einzelnen Arbeitslasten oder Knotenpools nicht überschreiben.

Neuen Autopilot-Cluster erstellen

Autopilot-Cluster unterstützen Confidential GKE Nodes nur auf Clusterebene. Wenn Sie Confidential GKE Nodes aktivieren, ändert sich die Standard-VM-Reihe im Autopilot-Cluster basierend auf der Confidential Computing-Technologie. Alle Ihre Arbeitslasten werden auf diesen Confidential Nodes ausgeführt, ohne dass Sie Ihre Arbeitslastmanifeste ändern müssen. Die Standard-Maschinenserien für die einzelnen Confidential Computing-Technologien sind:

  • SEV: Die Standard-VM-Reihe ist N2D.
  • SEV_SNP: Die Standard-Maschinenserie ist N2D.
  • TDX: Die Standard-VM-Reihe ist C3.

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

gcloud

  • Führen Sie dazu diesen Befehl aus:
gcloud container clusters create-auto CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

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.
  • 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

    Für AMD SEV muss auf dem Cluster Version 1.30.2 oder höher ausgeführt werden.

    Für AMD SEV-SNP und Intel TDX muss der Cluster die Version 1.35.2-gke.1485000 oder höher ausführen.

Sie können auch das Flag --enable-confidential-nodes im Befehl zur Clustererstellung verwenden. Wenn Sie in Ihrem Befehl nur dieses Flag angeben, verwendet der Cluster AMD SEV. 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 Autopilot-Cluster erstellen auf.

    Zur Seite „Autopilot-Cluster erstellen“

  2. Geben Sie im Bereich Clustergrundlagen Folgendes ein:

    1. Geben Sie den Namen für den Cluster ein.
    2. Wählen Sie eine Region für den Cluster aus.
  3. Klicken Sie im Navigationsmenü im Bereich Erweiterte Einstellungen auf Sicherheit.

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

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

    Für AMD SEV muss auf dem Cluster Version 1.30.2 oder höher ausgeführt werden.

    Für AMD SEV-SNP und Intel TDX muss der Cluster die Version 1.35.2-gke.1485000 oder höher ausführen.

  6. Klicken Sie auf Erstellen.

Weitere Informationen finden Sie unter Autopilot-Cluster mit einer bestimmten Release-Version und Version erstellen.

Neuen Standardcluster erstellen

Sie können eine Confidential Computing-Technologie für Ihre Knoten angeben, wenn Sie einen Standard-Cluster erstellen. Die Angabe der Technologie beim Erstellen eines Clusters hat die folgenden Auswirkungen:

  • Sie können in diesem Cluster 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 Zonen.
  • 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 auch das Flag --enable-confidential-nodes im 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 Navigationsbereich auf Erweiterte Einstellungen.

  3. Klicken Sie in der Zeile Confidential Nodes auf Konfiguration bearbeiten.

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

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

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

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

  7. Klicken Sie auf Speichern.

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

  9. Gehen Sie im Bereich Knotenpooldetails so vor:

    1. Klicken Sie auf das Kästchen Knotenstandorte angeben. Eine Liste der Zonen in der Region des Clusters wird angezeigt.
    2. Klicken Sie die Kästchen für Zonen an, die die Confidential Computing-Technologie unterstützen, die Sie für die Knoten ausgewählt haben. Weitere Informationen finden Sie unter Zonen.
  10. Klicken Sie auf Erstellen.

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

Bei Knotenpools, die mit der Einstellung „Modus ‚Vertraulich‘ 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 Modus „Vertraulich“ 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. Die automatische Knotenbereitstellung unterstützt die folgenden Confidential Computing-Technologien:

  • AMD SEV
  • AMD SEV-SNP

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

  • Wählen Sie beim Erstellen des Clusters eine Confidential Computing-Technologie aus, die von der automatischen Knotenbereitstellung unterstützt wird. Diese Auswahl ist auf Clusterebene nicht umkehrbar.
  • 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 kompatible Maschinenserie für diese Technologie 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.

Die Einstellung für den Modus „Vertraulich“ für Hyperdisk Balanced muss bei der Anfrage zur Erstellung des Knotenpools angegeben werden.

Neuen Knotenpool erstellen

Wählen Sie eine der folgenden Optionen aus, um einen neuen Knotenpool zu erstellen, in dem Confidential GKE Nodes aktiviert ist:

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 Confidential Computing-Technologie unterstützen. Weitere Informationen finden Sie unter Zonen.
  • 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 auch das Flag --enable-confidential-nodes im 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 den Tab Knoten.

  4. Klicken Sie auf Vom Nutzer verwalteten Knotenpool erstellen.

  5. Klicken Sie im Navigationsmenü auf Sicherheit.

  6. 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 Maschinenreihe für den Knotenpool zu aktualisieren.

  7. Klicken Sie im Navigationsmenü auf Knotenpooldetails.

  8. Gehen Sie im Bereich Knotenpooldetails so vor:

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

  10. Klicken Sie auf Erstellen.

Vorhandenen Knotenpool aktualisieren

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

Sie können vorhandene Knotenpools aktualisieren, um Confidential GKE Nodes zu verwenden oder die von den Knoten verwendete Confidential Computing-Technologie zu ändern. 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 die Verfügbarkeit von Maschinentypen und Standorten je nach Confidential Computing-Technologie variieren kann, müssen Sie diese Attribute für Ihren Knotenpool möglicherweise aktualisieren, bevor Sie eine bestimmte Confidential Computing-Technologie aktivieren.

Wählen Sie eine der folgenden Optionen aus, um einen vorhandenen Knotenpool für die Verwendung von Confidential GKE Nodes zu aktualisieren:

gcloud

Sie können die gcloud CLI verwenden, um Confidential GKE Nodes in einem Knotenpool zu aktivieren oder die Confidential Computing-Technologie der Knoten zu ä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 Confidential Computing-Technologie unterstützen. Weitere Informationen finden Sie unter Zonen.
  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 nur dann für die Verwendung von Confidential GKE Nodes aktualisieren, wenn der Maschinentyp des Knotenpools von der von Ihnen 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 Abschnitt Zonen, ob die ausgewählten Zonen die Confidential Computing-Technologie unterstützen. Weitere Informationen finden Sie unter Zonen.

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

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

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

  9. Klicken Sie auf Speichern.

Arbeitslasten nur in Confidential-Knotenpools platzieren

Wenn Sie Confidential GKE Nodes auf Clusterebene aktivieren, werden alle Ihre Arbeitslasten auf Confidential Nodes 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 auf Knotenpools mit Confidential GKE Nodes ausgeführt werden dürfen.

  • Wenn Sie festlegen möchten, dass eine Arbeitslast auf einer bestimmten Confidential Computing-Technologie ausgeführt wird, 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 der Knotenpool verwendet. 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
  • Wenn Sie eine Arbeitslast auf beliebigen Confidential Nodes ausführen möchten, unabhängig von der Confidential Computing-Technologie, 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 Sie eine Arbeitslast auf Knoten ausführen möchten, die nur einen Teil 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 prüfen.

Für Cluster prüfen

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 prü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 der Modus „Vertraulich“ für Hyperdisk Balanced ebenfalls 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 des zu prüfenden Knotens.

    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 Confidential Node 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 Confidential 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. 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 Modus „Vertraulich“ für Hyperdisk Balanced erstellen

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

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

Hyperdisk abgestimmt

  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 Modus „Vertraulich“ für Hyperdisk Balanced gelten die folgenden Einschränkungen:

Einschränkungen der Live-Migration

Die Live-Migration ist nur für bestimmte Confidential VM-Maschinentypen verfügbar. Weitere Informationen finden Sie in der Spalte „Unterstützung für Live-Migration“ unter Maschinentypen.

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. Weitere Informationen dazu, wie Sie die Auswirkungen auf Ihre Arbeitslasten reduzieren können, finden Sie unter Unterbrechungen von GKE-Knoten verwalten, die nicht live migriert werden.

Confidential GKE Nodes deaktivieren

Für diese Änderung müssen die Knoten neu erstellt werden, was zu Unterbrechungen der laufenden Arbeitslasten führen kann. Weitere Informationen zu dieser Änderung finden Sie in der entsprechenden Zeile der Tabelle Manuelle Änderungen, bei denen die Knoten mithilfe einer Knotenupgradestrategie neu erstellt werden, ohne Wartungsrichtlinien zu berücksichtigen. Weitere Informationen zu Knotenupdates finden Sie unter Unterbrechungen bei 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