Questo documento spiega come attivare l'avvio protetto o un Trusted Platform Module (vTPM) virtualizzato su un'istanza di macchina virtuale (VM) nell'appliance isolata da internet di Google Distributed Cloud (GDC).
Questo documento è destinato agli sviluppatori dei gruppi di amministratori della piattaforma o operatori delle applicazioni che configurano l'Avvio protetto e i vTPM sulle VM in un ambiente appliance GDC con air gap.
Informazioni sull'avvio protetto
L'avvio protetto è una funzionalità che garantisce che il sistema esegua solo software autentici verificando la firma digitale di tutti i componenti di avvio e interrompendo il processo in caso di mancata verifica. Utilizza il firmware Unified Extensible Firmware Interface (UEFI) per gestire i certificati e le chiavi che i produttori utilizzano per firmare il firmware di sistema, i bootloader e i file binari caricati.
Ad ogni avvio, il firmware UEFI verifica la firma digitale di ogni componente rispetto alle chiavi approvate archiviate e blocca tutti i componenti non firmati o firmati in modo errato.
Per abilitare l'avvio protetto sull'istanza VM, devi impostare il tipo bootloader della VM su uefi.
Per visualizzare la documentazione UEFI ufficiale, visita https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf.
Informazioni sui Trusted Platform Module virtuali
Un vTPM è un chip di computer virtuale specializzato che protegge le chiavi e i certificati utilizzati per autenticare l'accesso al sistema. Per saperne di più sui vTPM, visita la pagina https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/.
Puoi anche utilizzare un vTPM per proteggere i secret tramite schermatura o sigillatura. Per saperne di più sull'archiviazione sigillata, visita la pagina https://en.wikipedia.org/wiki/Trusted_Computing#SEALED-STORAGE. Vedi il progetto Go-TPM su GitHub - https://github.com/google/go-tpm - per gli esempi di linguaggio Go che illustrano come utilizzare un vTPM per questo scopo.
Prima di iniziare
Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud, assicurati di aver scaricato, installato e configurato la CLI gdcloud.
Tutti i comandi per l'appliance GDC con air gap utilizzano la CLI gdcloud o
kubectl e richiedono un ambiente del sistema operativo (OS).
Recupera il percorso del file kubeconfig
Per eseguire comandi sul server dell'API di gestione, assicurati di disporre delle seguenti risorse:
Individua il nome del server dell'API di gestione o chiedi all'amministratore della piattaforma (PA) qual è il nome del server.
Accedi e genera il file kubeconfig per il server API di gestione se non ne hai uno.
Utilizza il percorso per sostituire
MANAGEMENT_API_SERVER{"</var>"}}in queste istruzioni.
Richiedere ruoli IAM
Per attivare l'avvio protetto o vTPM sulla VM, contatta l'amministratore IAM del progetto per richiedere il ruolo Project VirtualMachine Admin (project-vm-admin).
Tutti i ruoli VM devono essere associati allo spazio dei nomi del progetto in cui si trova la VM. Segui i passaggi per verificare il tuo accesso.
Abilita avvio protetto
Abilita l'avvio protetto per una VM. Utilizza le seguenti istruzioni per una VM denominata
VM_NAME nello spazio dei nomi del progetto
(PROJECT_NAMESPACE).
Aggiorna la risorsa personalizzata VM per abilitare l'avvio protetto:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: bootType: uefi enableSecureBoot: true 'Se la VM è in esecuzione, riavviala seguendo le istruzioni per riavviare una VM.
Verifica di aver attivato l'avvio protetto. Stabilisci una connessione SSH alla VM ed esegui questo comando:
mokutil --sb-stateSe hai attivato correttamente l'avvio protetto, il comando restituisce
SecureBoot enabled.Se lo strumento
mokutilsegnala che non hai attivato l'avvio protetto, segui i passaggi descritti nella sezione Risolvere i problemi di configurazione dell'avvio protetto.
Risolvere i problemi relativi alla configurazione dell'avvio protetto
Apri la risorsa personalizzata VM in un editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACECerca i campi o i valori mancanti come mostrato nel campo
specin "Esegui il seguente comando". Questi sono obbligatori.Se mancano informazioni o sono errate, modifica
specper aggiungere i campi mancanti e correggere i valori errati.Salva il file.
Segui i passaggi descritti in Riavviare la VM.
Se i passaggi precedenti non risolvono il problema, consulta la documentazione corrispondente al sistema operativo (SO) della VM per verificare che la versione del SO supporti l'avvio protetto.
Attivare il Trusted Platform Module virtuale (vTPM)
Abilita vTPM per una VM. Segui queste istruzioni per una VM denominata
VM_NAME nello spazio dei nomi
del progetto (PROJECT_NAMESPACE).
Aggiorna la risorsa personalizzata VM per abilitare vTPM:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: enableVtpm: true 'Se la VM è in esecuzione, riavviala seguendo le istruzioni per riavviare una VM.
Verifica di aver abilitato vTPM. Stabilisci una connessione SSH alla tua VM ed esegui il seguente comando:
dmesg | grep -i tpmSe hai abilitato correttamente vTPM, il comando restituisce il modulo TPM come parte delle tabelle ACPI. L'output è simile al seguente:
[ 7.620985] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1, rev-id 1)Se
ACPI tablesnon mostra il modulo TPM, segui i passaggi descritti nella sezione Risolvere i problemi di configurazione di vTPM.
Risolvere i problemi relativi alla configurazione di vTPM
Apri la risorsa personalizzata VM in un editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACECerca i campi o i valori mancanti come mostrato nel campo
specin Esegui il seguente comando. Questi sono obbligatori.Se mancano informazioni o sono errate, modifica
specper aggiungere i campi mancanti e correggere i valori errati.Salva il file.
Segui i passaggi descritti in Riavviare la VM.
Se i passaggi precedenti non risolvono il problema, consulta la documentazione corrispondente al sistema operativo della VM per verificare che la versione del sistema operativo supporti vTPM.