vTPM in Confidential GKE Nodes-Arbeitslasten ausführen

Auf dieser Seite erfahren Sie, wie Sie Virtual Trusted Platform Modules (vTPMs) mit Google Kubernetes Engine (GKE) Standard-Arbeitslasten verwenden, die in Confidential GKE Nodes ausgeführt werden. vTPMs bieten Plattformintegrität sowie andere Sicherheitsfunktionen wie Remote-Attestation, Secret Sealing und Zufallszahlengenerierung. Auf dieser Seite erfahren Sie, wie Sie ein Geräte-Plug-in installieren und vTPMs für GKE-Anwendungen sichtbar machen.

Diese Seite richtet sich an Sicherheitsexperten, die remote auf die Sicherheitsfunktionen von vTPMs in GKE-Anwendungen zugreifen möchten.

Bevor Sie diese Seite lesen, sollten Sie mit den folgenden Funktionen vertraut sein:

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 diesen Task verwenden möchten, installieren und dann initialisieren Sie die gcloud CLI. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem gcloud components update Befehl ab. Ältere Versionen der gcloud CLI unterstützen möglicherweise nicht die Ausführung der Befehle in diesem Dokument.

Beschränkungen

Sie können vTPMs nur in Confidential GKE Nodes für GKE-Anwendungen sichtbar machen, die AMD SEV als Confidential Computing-Technologie verwenden. Intel TDX und AMD SEV-SNP werden nicht unterstützt.

Verfügbarkeit

Sie können Confidential GKE Nodes unter den folgenden Bedingungen verwenden:

Cluster mit Confidential GKE Nodes erstellen

Sie können einen neuen Cluster erstellen, bei dem Confidential GKE Nodes aktiviert ist. Verwenden Sie dazu die gcloud CLI oder die Google Cloud Console. Wenn Sie Confidential GKE Nodes auf Clusterebene aktivieren, werden alle Knoten im Cluster zu Confidential VMs.

gcloud

Erstellen Sie einen neuen Cluster, der AMD SEV als Confidential Computing-Technologie verwendet:

gcloud container clusters create CLUSTER_NAME \
    --machine-type=MACHINE_TYPE \
    --confidential-node-type=SEV

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name des neuen Clusters.
  • MACHINE_TYPE: Der Maschinentyp für den Standardknotenpool Ihres Clusters, der entweder ein N2D- oder C2D-Maschinentyp sein muss.

Console

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

    Kubernetes-Cluster erstellen

  2. Klicken Sie im Navigationsmenü unter Cluster die Option Sicherheit an.
  3. Wählen Sie Confidential GKE Nodes aktivieren aus.
  4. Klicken Sie im Bestätigungsdialogfeld auf Änderungen vornehmen.
  5. Wählen Sie im Menü Typ die Option AMD SEV aus.
  6. Informationen zum Konfigurieren anderer Clusterbereiche finden Sie unter Regionalen Cluster erstellen.
  7. Klicken Sie auf Erstellen.

Nachdem Sie einen Cluster mit Confidential GKE Nodes erstellt haben, können alle in diesem Cluster erstellten Knotenpools nur Confidential Nodes verwenden. Sie können keine regulären Knotenpools in Clustern erstellen, für die Confidential GKE Nodes aktiviert ist. Sie können Confidential GKE Nodes auch nicht für einzelne Knotenpools deaktivieren, wenn Sie Confidential GKE Nodes auf Clusterebene aktivieren.

vTPM in Confidential GKE Nodes-Arbeitslasten ausführen

Wenn Sie vTPM in Confidential GKE Nodes-Arbeitslasten ausführen möchten, stellt Google ein DaemonSet bereit, das Sie auf die Confidential GKE Nodes-Cluster anwenden können. Führen Sie den folgenden Befehl aus, um das DaemonSet bereitzustellen:

kubectl create -f https://raw.githubusercontent.com/google/cc-device-plugin/main/manifests/cc-device-plugin.yaml

Pods so konfigurieren, dass sie das vTPM sehen

Für die Nutzung von vTPM durch Pods konfigurieren Sie ein Ressourcenlimit. Geben Sie das Ressourcenlimit in einer Pod-Spezifikation mit folgendem Schlüssel/Wert-Paar als 1 an:

  • Schlüssel: google.com/cc
  • Wert: 1

Beispiel für eine Pod-Spezifikation, die vTPM verwendet:

apiVersion: v1
kind: Pod
metadata:
  name: my-vtpm-pod
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 8080
      name: http
    resources:
      limits:
        google.com/cc: 1

Nächste Schritte