Opzioni e metadati delle VM

Un operatore del carico di lavoro può passare opzioni alla VM del carico di lavoro Confidential Space per determinarne il comportamento.

Di seguito è riportato un esempio che crea una Confidential VM basata sull'immagine Confidential Space ed esegue un container Docker specificato per il carico di lavoro:

gcloud compute instances create workload-vm-name \
    --confidential-compute \
    --maintenance-policy=TERMINATE \
    --shielded-secure-boot \
    --image-project=confidential-space-images \
    --image-family=confidential-space \
    --metadata="^~^tee-image-reference=us-docker.pkg.dev/workload-author-project/workload-repository/workload-container:latest" \
    --service-account=workload-service-account@workload-operator-project.iam.gserviceaccount.com \
    --scopes=cloud-platform \
    --zone=us-west1-b

Le opzioni utilizzate in questo esempio sono riportate nella tabella seguente.

Opzione Descrizione
--confidential-compute Obbligatorio. Indica a Compute Engine di utilizzare una VM riservata per l'istanza.
--maintenance-policy=TERMINATE Obbligatorio. Deve essere impostato su TERMINATE, in quanto le Confidential VM non supportano la migrazione live.
--shielded-secure-boot Obbligatorio. Indica a Compute Engine di utilizzare Avvio protetto per l'istanza.

--image-project=confidential-space-images

--image-family=confidential-space

Obbligatorio. Indica a Compute Engine di utilizzare l'immagine confidential-space, che fa parte del progetto immagine confidential-space-images. Puoi anche utilizzare un'immagine di debug per i test. Per i valori disponibili, vedi Immagini riservate.
--metadata

Obbligatorio. Cambia il comportamento della VM di Confidential Space passando le variabili. La chiave e il valore tee-image-reference sono obbligatori e indicano all'istanza VM di eseguire il container Docker specificato sopra l'immagine Confidential Space specificata.

Per le coppie chiave/valore disponibili, consulta Variabili dei metadati.

--service-account Obbligatorio. L'account di servizio collegato all'istanza VM che esegue il carico di lavoro.
--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 lo strumento di verifica dell'attestazione.
--zone Obbligatorio. La zona in cui viene eseguita l'istanza VM. Confidential Space richiede Confidential Computing e Certificate Authority Service, disponibili in località specifiche.

Immagini Confidential Space

L'immagine Confidential Space è disponibile in due varianti: produzione ed debug. Puoi specificare la variante da utilizzare con l'opzione --image-family, insieme all'opzione --image-project=confidential-space-images.

Valore famiglia di immagini Descrizione
confidential-space

L' immagine Confidential Space di produzione, che deve essere utilizzata per il carico di lavoro finale che elabora i dati riservati. È basato sui miglioramenti della sicurezza esistenti di Container-Optimized OS e aggiunge i seguenti vantaggi:

  • Partizioni disco criptate con protezione dell'integrità
  • Connessioni di rete criptate e autenticate
  • Varie misure dello stivale
  • Disattiva l'accesso remoto e gli strumenti specifici per il cloud
  • Transizioni di stato ridotte

Esempio:

--image-project=confidential-space-images \
--image-family=confidential-space
confidential-space-debug

L'immagine di debug di Confidential Space, che è uguale all'immagine di produzione, ad eccezione dei seguenti dettagli:

  • SSH è attivo.
  • L'arresto di un'istanza VM che esegue l'immagine di debug non viene completata al termine del carico di lavoro.

L'immagine di debug deve essere utilizzata solo con dati non riservati.

Esempio:

--image-project=confidential-space-images \
--image-family=confidential-space-debug

Variabili metadati

Puoi modificare il comportamento della VM di Confidential Space passando le variabili nell'opzione --metadata.

Per trasmettere più variabili, imposta prima il delimitatore anteponendo il valore --metadata a ^~^. Questo imposta il delimitatore su ~, poiché , viene utilizzato nei valori delle variabili.

Ad esempio:

metadata="^~^tee-image-reference=us-docker.pkg.dev/workload-author-project/workload-repository/workload-container:latest~tee-restart-policy=Always"

Puoi modificare il delimitatore cambiando il carattere tra ^ e ^.

Alcune variabili di metadati possono essere verificate dai criteri di attestazione per decidere se il carico di lavoro deve essere autorizzato a eseguire e accedere a risorse riservate.

Chiave dei metadati Tipo Descrizione e valori
tee-image-reference String

Obbligatorio. Deve puntare alla posizione del container del carico di lavoro.

Esempio:

tee-image-reference=us-docker.pkg.dev/workload-author-project/workload-repository/workload-container:latest
tee-cmd Array[String]

Esegue l'override delle istruzioni CMD specificate nel file "Dockerfile" che ha creato il container del carico di lavoro.

Esempio:

tee-cmd=['ls', 'cat ./file.txt']
tee-container-log-redirect Boolean

Restituisce gli output stdout e stderr dal container del carico di lavoro in Cloud Logging, nel campo confidential-space- Launcher.

Esempio:

tee-container-log-redirect=true
tee-env-ENVIRONMENT_VARIABLE_NAME String

Imposta le variabili di ambiente nel container del carico di lavoro.

Esempio:

tee-env-example-env-1='value-1'~tee-env-example-env-2='value-2'
tee-impersonate-service-account String

Un elenco di account di servizio che possono essere impersonati dall'operatore del carico di lavoro. L'operatore del carico di lavoro deve essere autorizzato a impersonare gli account di servizio.

È possibile elencare più account di servizio, separati da virgole.

Esempio:

tee-impersonate-service-accounts=allowed-SA-1@operator-project.iam.gserviceaccount.com,allowed-SA-2@operator-project.iam.gserviceaccount.com
tee-restart-policy String

Il criterio di riavvio di Avvio applicazioni quando il carico di lavoro viene arrestato. I valori validi includono Never, Always e OnFailure. Il valore predefinito è Never.

Questa variabile è supportata solo dall'immagine di produzione.

Esempio:

tee-restart-policy=OnFailure