Un operatore del workload può passare opzioni a una VM del workload Confidential Space per determinarne il comportamento prima dell'esecuzione. Anche se alcuni flag hanno 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 Confidential Computing AMD SEV o Intel TDX.
Quali variabili di metadati VM devono essere passate, tra cui dettagli come l'immagine del container del carico di lavoro da eseguire, se eseguire la registrazione in Cloud Logging e quali variabili di ambiente impostare.
Quale service account allegare alla VM per eseguire il workload e quali autorizzazioni deve avere 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.
Ecco un esempio che crea una Confidential VM nella zona us-west1-b
in base
all'ultima immagine di produzione di Confidential Space ed esegue un container 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.
Flag | Descrizione |
---|---|
--confidential-compute-type |
Obbligatorio. Indica a Compute Engine quale tecnologia Confidential Computing utilizzare durante la creazione di un'istanza Confidential VM.
Sostituisci
La tecnologia Confidential Computing deve corrispondere alla famiglia di immagini che selezioni. |
--machine-type |
Facoltativo. Specifica un nome del tipo di macchina Confidential VM. Consulta Configurazioni supportate per i tipi di macchine che supportano AMD SEV e Intel TDX. |
--maintenance-policy |
Per i tipi di macchine N2D che utilizzano SEV, imposta questo valore su MIGRATE
per il supporto della migrazione live. Per tutti gli altri tipi di macchine, imposta questo valore su TERMINATE , in quanto
non supportano la migrazione live.
|
--shielded-secure-boot |
Obbligatorio. Indica a Compute Engine di utilizzare Secure Boot per l'istanza. |
--image-project=confidential-space-images |
Obbligatorio. Indica a Compute Engine di cercare nel progetto
confidential-space-images l'
immagine Confidential Space.
|
|
Obbligatorio. Indica a Compute Engine di utilizzare l'ultima immagine Confidential Space,
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 di confidential computing che selezioni. |
--metadata |
Obbligatorio. Modifica il comportamento della VM Confidential Space passando le variabili. La chiave e il valore Per le coppie chiave/valore disponibili, vedi Variabili dei metadati. |
--service-account |
Facoltativo. Il service account collegato all'istanza VM che esegue il workload e simula i service account collegati ai pool di identità dei carichi di lavoro in altri progetti. Se non specificato, viene utilizzato il 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 Google Cloud dei servizi
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 collegato alla VM confidenziale di un workload. Il 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 workload archiviata in Artifact Registry.roles/logging.logWriter
se vuoi reindirizzareSTDOUT
eSTDERR
a Cloud Logging.
Con accesso in lettura alla posizione in cui i collaboratori dei dati archiviano i dati riservati, ad esempio un bucket Cloud Storage o una tabella BigQuery.
Con accesso in scrittura alla posizione in cui il workload deve restituire i dati, ad esempio un bucket Cloud Storage. I collaboratori dei dati devono avere accesso in lettura a questa posizione.
Inoltre, i collaboratori dei dati e gli operatori dei workload devono configurare quanto segue:
I collaboratori dei dati devono aggiungere l'account di servizio al provider del pool di identità del workload come condizione dell'attributo:
'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
L'operatore del workload necessita del ruolo
roles/iam.serviceAccountUser
per impersonare ilaccount di serviziot. In questo modo, possono collegarlo a una VM del carico di lavoro in modo che possa eseguire il carico di lavoro.
Variabili dei metadati
Puoi modificare il comportamento della VM del workload Confidential Space passando le variabili
all'opzione --metadata
quando crei la VM.
Per inserire più variabili, imposta prima il delimitatore aggiungendo il prefisso
--metadata
al valore ^~^
. 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 descrive in dettaglio le variabili di metadati che puoi impostare per la VM del workload.
Chiave dei metadati | Tipo | Descrizione e valori |
---|---|---|
Interazione con:
|
Stringa |
Obbligatorio. Indica la posizione del container del workload. Esempio
|
Interazione con:
|
Array di stringhe JSON |
Aggiunge funzionalità Linux aggiuntive al container del workload. Esempio
|
Interazione con:
|
Booleano |
Il valore predefinito è 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 punto di montaggio della memoria condivisa Esempio
|
Interazione con:
|
Stringa |
Imposta le variabili di ambiente nel container del workload. L'autore del workload deve anche aggiungere i nomi variabile di ambiente alle norme di avvio
Esempio
|
Interazione con:
|
Stringa |
Un elenco di service account che possono essere rappresentati dall'operatore del workload. L'operatore del carico di lavoro deve avere l'autorizzazione per impersonare i service account. È possibile elencare più service account 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 virgole,
che richiedono Esempio
|
Interazione con:
|
Stringa definita |
La policy di riavvio del launcher del container quando il workload si arresta I valori validi sono:
Questa variabile è supportata solo dall'immagine Confidential Space di produzione. Esempio
|
Interazione con:
|
Stringa |
Un elenco di repository di container separati da virgole che archiviano le firme generate da Sigstore Cosign. Esempio
|
Scalabilità
Per lo scaling e l'alta disponibilità dei workload di produzione di Confidential Space, consulta Gruppi di istanze gestite.