Ein Arbeitslastbearbeiter kann einer Confidential Space-Arbeitslast-VM Optionen übergeben, um ihr Verhalten vor der Ausführung zu bestimmen. Für einige Flags gibt es erforderliche Werte, die sich nicht ändern. Sie müssen jedoch die folgenden Auswahlmöglichkeiten treffen:
Ob die VM auf einem Produktions- oder Debugging-Image für Confidential Space basieren soll.
Ob die AMD SEV- oder die Intel TDX-Technologie für vertrauliches Computing verwendet werden soll.
Welche VM-Metadatenvariablen übergeben werden müssen, einschließlich Details wie das zu verwendende Arbeitslastcontainer-Image, ob Protokolle in Cloud Logging ausgegeben werden sollen und welche Umgebungsvariablen festgelegt werden sollen.
Welches Dienstkonto der VM zugewiesen werden soll, um die Arbeitslast auszuführen, und welche Berechtigungen es benötigt, um auf vertrauliche Daten in anderen Projekten zuzugreifen und die Ergebnisse irgendwo zu speichern.
Die Zone, in der die VM-Instanz ausgeführt werden soll.
Im folgenden Beispiel wird eine Confidential VM in der Zone us-west1-b
basierend auf dem neuesten Produktions-Image für Confidential Space erstellt und ein Docker-Container namens WORKLOAD_CONTAINER_NAME ausgeführt:
gcloud compute instances create workload-vm-name \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--shielded-secure-boot \
--image-project=confidential-space-images \
--image-family=IMAGE_FAMILY \
--metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest" \
--service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
--scopes=cloud-platform \
--zone=us-west1-b
Die in diesem Beispiel verwendeten Optionen werden in der folgenden Tabelle beschrieben.
Flag | Beschreibung |
---|---|
--confidential-compute-type |
Erforderlich. Gibt an, welche Confidential Computing-Technologie die Compute Engine beim Erstellen einer Confidential VM-Instanz verwenden soll.
Ersetzen Sie
Die Confidential Computing-Technologie muss mit der von Ihnen ausgewählten Image-Familie übereinstimmen. |
--machine-type |
Optional. Gibt den Namen eines Confidential VM-Maschinentyps an. Eine Liste der Maschinentypen, die AMD SEV und Intel TDX (Vorabversion) unterstützen, finden Sie unter Unterstützte Konfigurationen. |
--maintenance-policy |
Legen Sie für N2D-Maschinentypen, die SEV verwenden, MIGRATE fest, um die Live-Migration zu unterstützen. Bei allen anderen Maschinentypen muss dieser Wert auf TERMINATE festgelegt werden, da sie
die Live-Migration nicht unterstützen.
|
--shielded-secure-boot |
Erforderlich. Hiermit wird der Compute Engine mitgeteilt, Secure Boot für die Instanz zu verwenden. |
--image-project=confidential-space-images |
Erforderlich. Hiermit wird die Compute Engine angewiesen, im Projekt confidential-space-images nach dem
Image für Confidential Space zu suchen.
|
|
Erforderlich. Hiermit wird die Compute Engine angewiesen, das neueste Image für Confidential Space zu verwenden, das Teil des Projekts
Wenn Sie ein Produktions-Image mit Ihrer endgültigen Arbeitslast verwenden möchten, bei der vertrauliche Daten verarbeitet werden, ersetzen Sie
Wenn Sie das Debug-Image für das
Monitoring und Debugging verwenden möchten, ersetzen Sie
Die verwendete Image-Familie muss mit der ausgewählten Confidential Computing-Technologie übereinstimmen. |
--metadata |
Erforderlich. Ändert das Verhalten der Confidential Space-VM, indem Variablen übergeben werden. Der Die verfügbaren Schlüssel/Wert-Paare finden Sie unter Metadatenvariablen. |
--service-account |
Optional. Das Dienstkonto, das mit der VM-Instanz verknüpft ist, auf der die Arbeitslast ausgeführt wird, und sich als Dienstkonten ausgibt, die mit Identitätspools für Arbeitslasten in anderen Projekten verknüpft sind. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet. |
--scopes=cloud-platform |
Erforderlich. Legt den
Zugriffsbereich fest.
Der cloud-platform -Bereich ist ein OAuth-Bereich für
die meisten Google Cloud -Dienste und ermöglicht der VM die Kommunikation mit dem Attestierungsprüfer.
|
--zone |
Erforderlich. Die Zone, in der die VM-Instanz ausgeführt wird. Für Confidential Space sind die folgenden Dienste erforderlich, die an bestimmten Standorten verfügbar sind: |
Angehängtes Dienstkonto
Ein Dienstkonto muss an die Confidential VM einer Arbeitslast angehängt sein, damit die Arbeitslast ausgeführt werden kann. Das Dienstkonto muss so eingerichtet werden:
mit den folgenden Rollen:
roles/confidentialcomputing.workloadUser
, um ein Attestierungstoken zu generieren.roles/artifactregistry.reader
, um ein in der Artifact Registry gespeichertes Arbeitslast-Container-Image abzurufen.roles/logging.logWriter
, wenn SieSTDOUT
undSTDERR
an Cloud Logging weiterleiten möchten.
Lesezugriff auf den Speicherort, an dem die Mitbearbeiter ihre vertraulichen Daten speichern, z. B. einen Cloud Storage-Bucket oder eine BigQuery-Tabelle.
Schreibzugriff auf den Speicherort, an dem die Arbeitslast die Daten ausgeben soll, z. B. einen Cloud Storage-Bucket. Mitbearbeiter sollten Lesezugriff auf diesen Speicherort haben.
Außerdem müssen Datenmitbearbeiter und Arbeitslastbearbeiter Folgendes einrichten:
Mitbearbeiter für Daten müssen dem Anbieter ihres Workload Identity-Pools das Dienstkonto als Attributbedingung hinzufügen:
'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
Der Arbeitslastoperator benötigt die Rolle
roles/iam.serviceAccountUser
, um die Identität des Dienstkontos zu übernehmen. So kann er sie an eine Arbeitslast-VM anhängen, damit sie die Arbeitslast ausführen kann.
Metadatenvariablen
Sie können das Verhalten der Confidential Space-VM für Arbeitslasten ändern, indem Sie beim Erstellen der VM Variablen an die Option --metadata
übergeben.
Wenn Sie mehrere Variablen übergeben möchten, legen Sie zuerst das Trennzeichen fest, indem Sie dem Wert --metadata
das Präfix ^~^
voranstellen. Dadurch wird das Trennzeichen auf ~
festgelegt, da ,
in Variablenwerten verwendet wird.
Beispiel:
metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"
In der folgenden Tabelle sind die Metadatenvariablen aufgeführt, die Sie für Ihre Arbeitslast-VM festlegen können.
Metadatenschlüssel | Typ | Beschreibung und Werte |
---|---|---|
Interagiert mit:
|
String |
Erforderlich. Dieser verweist auf den Speicherort des Arbeitslastcontainers. Beispiel
|
Interagiert mit:
|
JSON-Strings-Array |
Überschreibt die CMD-Anweisungen, die in der Beispiel
|
Interagiert mit:
|
Definierter String |
Gibt Gültige Werte:
Ein hohes Protokollvolumen in der seriellen Konsole kann sich auf die Arbeitslastleistung auswirken. Beispiel
|
|
Ganzzahl |
Hiermit wird die Größe des gemeinsamen Arbeitsspeichers von Beispiel
|
Interagiert mit:
|
String |
Hiermit werden Umgebungsvariablen im Arbeitslastcontainer festgelegt. Der Autor der Arbeitslast muss die Namen der Umgebungsvariablen auch der
Beispiel
|
Interagiert mit:
|
String |
Eine Liste der Dienstkonten, deren Identität vom Arbeitslastoperator übernommen werden kann. Der Arbeitslastoperator muss die Identität der Dienstkonten übernehmen dürfen. Es können mehrere Dienstkonten durch Kommas getrennt aufgeführt werden. Beispiel
|
Interagiert mit:
|
Boolesch |
Die Standardeinstellung ist Beispiel
|
Interagiert mit:
|
String |
Eine Liste von durch Semikolons getrennten Bereitstellungsdefinitionen. Eine Bereitstellungsdefinition besteht aus einer durch Kommas getrennten Liste von Schlüssel/Wert-Paaren, für die Beispiel
|
Interagiert mit:
|
Definierter String |
Die Neustart-Richtlinie des Container-Launchers, wenn die Arbeitslast beendet wird Gültige Werte:
Diese Variable wird nur vom Produktions-Image für Confidential Space unterstützt. Beispiel
|
Interagiert mit:
|
String |
Eine Liste von durch Kommas getrennten Container-Repositories, in denen die Signaturen gespeichert werden, die von Sigstore Cosign generiert werden. Beispiel
|
Skalierung
Informationen zur Skalierung und Hochverfügbarkeit von Produktionsarbeitslasten in Confidential Space finden Sie unter Verwaltete Instanzgruppen.