L'avvio protetto contribuisce a garantire che il sistema esegua solo software autentici verificando la firma digitale di tutti i componenti di avvio e interrompendo il processo di avvio se la verifica della firma non riesce.
Google Distributed Cloud (GDC) air-gapped utilizza il firmware Unified Extensible Firmware Interface (UEFI) per gestire i certificati e le chiavi utilizzati per la firma del software.
Il firmware UEFI gestisce in modo sicuro i certificati che contengono le chiavi utilizzate dai produttori di software per firmare il firmware di sistema, il bootloader di sistema e tutti i programmi binari caricati. Per visualizzare la documentazione UEFI, visita
https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf
.
Ad ogni avvio, il firmware UEFI verifica la firma digitale di ogni componente di avvio rispetto all'archivio sicuro delle chiavi approvate. Non è consentito eseguire alcun componente di avvio non firmato correttamente o non firmato per nulla. Per
abilitare l'avvio protetto, devi impostare il tipo bootloader
della VM su uefi
.
Un vTPM è un Trusted Platform Module virtualizzato. Per saperne di più sui vTPM, visita la pagina https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/. È un chip di computer specializzato che puoi utilizzare per proteggere oggetti, come chiavi e certificati, che utilizzi per autenticare l'accesso al tuo sistema. Puoi anche utilizzare il 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 Distributed Cloud utilizzano la CLI gdcloud
o
kubectl
e richiedono un ambiente del sistema operativo.
Recupera il percorso del file kubeconfig
Per eseguire comandi sul server API Management, assicurati di disporre delle seguenti risorse:
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
Utilizza il percorso del file kubeconfig del server API Management per sostituire
MANAGEMENT_API_SERVER
in queste istruzioni.
Richiedere autorizzazioni e accesso
Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore
macchina virtuale progetto. Segui i passaggi per
verificare
di disporre del ruolo Amministratore VirtualMachine progetto (project-vm-admin
) nello spazio dei nomi
del progetto in cui si trova la VM.
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 della 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 tua VM ed esegui il seguente comando:
mokutil --sb-state
Se hai attivato l'avvio protetto, il comando restituisce
SecureBoot enabled
.Se lo strumento
mokutil
segnala 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_NAMESPACE
Cerca i campi o i valori mancanti come mostrato nel campo
spec
in "Esegui il seguente comando". Questi sono obbligatori.Se mancano informazioni o sono errate, modifica
spec
per aggiungere i campi mancanti e correggere i valori errati.Salva il file.
Segui i passaggi descritti in Riavvia 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 l'avvio protetto.
Attivare il Virtual Trusted Platform Module (vTPM)
Abilita vTPM 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 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 tpm
Se 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 in
ACPI tables
non viene visualizzato 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_NAMESPACE
Cerca i campi o i valori mancanti come mostrato nel campo
spec
in Esegui il seguente comando. Questi sono obbligatori.Se mancano informazioni o sono errate, modifica
spec
per aggiungere i campi mancanti e correggere i valori errati.Salva il file.
Segui i passaggi descritti in Riavvia 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.