Un operatore di workload può passare opzioni a una VM di workload Confidential Space per determinarne il comportamento prima dell'esecuzione. Sebbene alcuni flag abbiano valori obbligatori che non cambiano, devi comunque effettuare le seguenti scelte:
Se basare la VM su un'immagine Confidential Space di produzione o di debug.
Se utilizzare la tecnologia AMD SEV o Intel TDX Confidential Computing.
Quali variabili di metadati della VM devono essere passate, che includono dettagli come l'immagine del contenitore del carico di lavoro da eseguire, se eseguire il logging in Cloud Logging e quali variabili di ambiente impostare.
Quale account di servizio da associare alla VM per eseguire il workload e quali autorizzazioni sono necessarie per accedere ai dati riservati in altri progetti e scrivere i risultati da qualche parte.
La zona in cui deve essere eseguita l'istanza VM.
Di seguito è riportato un esempio che crea una VM Confidential nella zona us-west1-b
in base all'immagine Confidential Space di produzione più recente ed esegue un contenitore Docker denominato WORKLOAD_CONTAINER_NAME:
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
Le opzioni utilizzate in questo esempio sono descritte in dettaglio nella tabella seguente.
Bandiera | Descrizione |
---|---|
--confidential-compute-type |
Obbligatorio. Indica a Compute Engine quale tecnologia Confidential Computing utilizzare при создании Confidential VM instance.
Sostituisci
La tecnologia Confidential Computing deve corrispondere alla famiglia di immagini selezionata. |
--machine-type |
Facoltativo. Specifica il nome di un tipo di macchina Confidential VM. Consulta Configurazioni supportate per i tipi di macchine che supportano AMD SEV e Intel TDX (anteprima). |
--maintenance-policy |
Per i tipi di macchine N2D che utilizzano SEV, imposta questo valore su MIGRATE
per il supporto migrazione live. Per tutti gli altri tipi di macchine, imposta questo valore su TERMINATE , poiché
non supportano la migrazione in tempo reale.
|
--shielded-secure-boot |
Obbligatorio. Indica a Compute Engine di utilizzare il Secure Boot per l'istanza. |
--image-project=confidential-space-images |
Obbligatorio. Indica a Compute Engine di cercare nel progetto confidential-space-images l'
immagine di Confidential Space.
|
|
Obbligatorio. Indica a Compute Engine di utilizzare l'immagine Confidential Space più recente,
che fa parte del progetto
Per utilizzare un'immagine di produzione con il carico di lavoro finale che elabora
dati riservati, sostituisci
Per utilizzare l'immagine di debug per il
monitoraggio e il debug, sostituisci
La famiglia di immagini che utilizzi deve corrispondere alla tecnologia Confidential Computing selezionata. |
--metadata |
Obbligatorio. Modifica il comportamento della VM Confidential Space passando le variabili. La chiave e il valore Per le coppie chiave/valore disponibili, consulta Voci di metadati. |
--service-account |
Facoltativo. L'account di servizio associato all'istanza VM che esegue il carico di lavoro e simula gli account di servizio associati ai pool di identità dei carichi di lavoro in altri progetti. Se non specificato, viene utilizzato l'account di servizio Compute Engine predefinito. |
--scopes=cloud-platform |
Obbligatorio. Imposta l'
ambito di accesso.
L'ambito cloud-platform è un ambito OAuth per
la maggior parte dei servizi Google Cloud ,
e consente alla VM di comunicare con il verificatore dell'attestazione.
|
--zone |
Obbligatorio. La zona in cui viene eseguita l'istanza VM. Confidential Space richiede i seguenti servizi, disponibili in località specifiche: |
Account di servizio collegato
Per eseguire il workload, un account di servizio deve essere associato alla VM Confidential del workload. L'account di servizio deve essere configurato nel seguente modo:
Con i seguenti ruoli:
roles/confidentialcomputing.workloadUser
per generare un token di attestazione.roles/artifactregistry.reader
per recuperare un'immagine container del carico di lavoro memorizzata in Artifact Registry.roles/logging.logWriter
se vuoi instradareSTDOUT
eSTDERR
a Cloud Logging.
Con accesso in lettura alla posizione in cui i collaboratori dei dati archiviano i propri dati riservati, ad esempio un bucket Cloud Storage o una tabella BigQuery.
Con accesso in scrittura alla posizione in cui il carico di lavoro deve produrre i dati, ad esempio un bucket Cloud Storage. I collaboratori dei dati devono disporre dell'accesso in lettura a questa posizione.
Inoltre, i collaboratori dei dati e gli operatori dei carichi di lavoro devono configurare quanto segue:
I collaboratori dei dati devono aggiungere l'account di servizio al provider del pool di identità di Workload come condizione dell'attributo:
'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
L'operatore del carico di lavoro deve disporre del ruolo
roles/iam.serviceAccountUser
per usurpare l'identità dell'account di servizio. In questo modo può collegarlo a una VM del carico di lavoro per eseguirlo.
Variabili dei metadati
Puoi modificare il comportamento della VM del workload Confidential Space passando variabili all'opzione --metadata
quando crei la VM.
Per passare più variabili, imposta prima il delimitatore anteponendo il valore --metadata
a ^~^
. Il delimitatore viene impostato su ~
, poiché ,
viene utilizzato nei valori delle variabili.
Ad esempio:
metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"
La tabella seguente illustra le variabili di metadati che puoi impostare per la VM del carico di lavoro.
Chiave dei metadati | Tipo | Descrizione e valori |
---|---|---|
Interazione con:
|
Stringa |
Obbligatorio. Indica la posizione del contenitore del carico di lavoro. Esempio
|
Interazione con:
|
Array di stringhe JSON |
Esegue l'override delle istruzioni
CMD
specificate nel Esempio
|
Interazione con:
|
Stringa definita |
Output I valori validi sono:
Un volume elevato di log nella console seriale potrebbe influire sulle prestazioni del workload. Esempio
|
|
Numero intero |
Imposta le dimensioni in kB del montaggio della memoria condivisa Esempio
|
Interazione con:
|
Stringa |
Imposta le variabili di ambiente nel contenitore del carico di lavoro. L'autore del workload deve anche aggiungere i nomi variabile di ambiente al criterio di lancio
Esempio
|
Interazione con:
|
Stringa |
Un elenco di account di servizio che possono essere rappresentati dall'operatore del workload. L'operatore del carico di lavoro deve essere autorizzato a simulare l'identità degli account di servizio. È possibile elencare più account di servizio, separati da virgole. Esempio
|
Interazione con:
|
Booleano |
Il valore predefinito è Esempio
|
Interazione con:
|
Stringa |
Un elenco di definizioni di montaggio separate da punto e virgola. Una definizione di montaggio è costituita da un elenco di coppie chiave/valore separate da virgola, che richiedono Esempio
|
Interazione con:
|
Stringa definita |
Il criterio di riavvio del programma di avvio del container quando il workload si interrompe I valori validi sono:
Questa variabile è supportata solo dall'immagine di produzione di Confidential Space. Esempio
|
Interazione con:
|
Stringa |
Un elenco di repository di contenitori separati da virgole che memorizzano le firme generate da Sigstore Cosign. Esempio
|
Scalabilità
Per la scalabilità e l'alta disponibilità dei workload di produzione di Confidential Space, consulta Gruppi di istanze gestite.