Auf dieser Seite erfahren Sie, wie Sie Virtual Trusted Platform Modules (vTPMs) mit GKE-Standardarbeitslasten (Google Kubernetes Engine) verwenden, die auf Confidential GKE Nodes ausgeführt werden. vTPMs bieten Plattformintegrität zusammen mit anderen Sicherheitsfunktionen wie Remote Attestation, Secret-Versiegelung und Erzeugung von Zufallszahlen. 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 per Fernzugriff auf die Sicherheitsfunktionen von vTPMs in GKE-Anwendungen zugreifen möchten.
Machen Sie sich vor dem Lesen dieser Seite mit den folgenden Funktionen vertraut:
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.
Beschränkungen
Sie können vTPMs nur in Confidential GKE Nodes, die AMD SEV als Confidential Computing-Technologie verwenden, für GKE-Anwendungen sichtbar machen. Intel TDX und AMD SEV-SNP werden nicht unterstützt.
Verfügbarkeit
Sie können Confidential GKE Nodes unter den folgenden Bedingungen verwenden:
In Zonen und Regionen, in denen N2D-Instanzen oder C2D-Instanzen verfügbar sind.
Knoten-Images mit Container-Optimized OS mit containerd (
cos_containerd
).
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 -Konsole. Wenn Sie Confidential GKE Nodes auf Clusterebene aktivieren, werden alle Knoten im Cluster zu Confidential VMs.
gcloud
So 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 des Clusters, der entweder der N2D- oder der C2D-Maschinentyp sein muss
Console
- Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster erstellen auf.
- Klicken Sie im Navigationsmenü unter Cluster die Option Sicherheit an.
- Wählen Sie Confidential GKE Nodes aktivieren aus.
- Klicken Sie im Bestätigungsdialogfeld auf Änderungen vornehmen.
- Wählen Sie im Menü Typ die Option AMD SEV aus.
- Folgen Sie der Anleitung unter Regionalen Cluster erstellen, um andere Abschnitte des Clusters zu konfigurieren.
- 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
Damit vTPM in Confidential GKE Nodes-Arbeitslasten ausgeführt werden kann, stellt Google ein DaemonSet zur Verfügung, das auf die Confidential GKE Nodes-Cluster angewendet werden muss. 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 für die Anzeige des vTPM konfigurieren
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