Questo argomento descrive come preparare il disco, generare certificati di sicurezza, e attivare le funzionalità del sistema operativo necessarie per creare un'immagine schermata schermata.
Per impostazione predefinita, la VM protetta supporta Container-Optimized OS, varie distribuzioni di Linux e più versioni di Windows Server. Ma se richiedono immagini personalizzate per l'applicazione, puoi comunque sfruttare Shielded VM.
Preparazione del disco
La Shielded VM si basa su Unified Extensible Firmware Interface (UEFI)-compliant per supportare funzionalità quali Avvio protetto. La VM protetta richiede un schema GUID Partition Table (GPT); il master boot record (MBR) non è supportato.
Il disco deve avere almeno due partizioni:
- Partizione di sistema EFI (ESP): 100 megabyte (MB) sono sufficienti per questa partizione e sono solo un suggerimento. Puoi creare una partizione più grande necessaria. L'unico requisito per l'ESP è che debba essere formattato con un file system FAT (File Allocation Table).
- Partizione del sistema operativo: il resto del disco. Questa partizione contiene il sistema operativo di avvio (Linux o Windows). Non esistono limitazioni alle dimensioni di questa partizione.
Se necessario, puoi creare altre partizioni di dati.
Copia del sistema operativo nella partizione del sistema operativo
Una volta formattato e partizionato correttamente il disco, copia i file del sistema operativo nella corrispondente partizione. Il sistema operativo ha un boot loader che deve trovarsi in un percorso valido
sull'ESP, come specificato nella specifica UEFI:
\EFI\Boot\bootx64.efi
. Tieni presente che potrebbe essere necessario copiare il bootloader
dell'OS nella posizione specificata.
Per Windows, esiste un comando chiamato bcdboot
che può essere utilizzato per copiare il bootloader del sistema operativo nella posizione corretta, oltre ad altre azioni richieste da Windows (ad esempio la copia del database BCD). Per ulteriori informazioni, consulta BCDBoot
Riga di comando
Opzioni nel Microsoft Hardware Dev Center.
Quando utilizzi le immagini delle VM schermate, puoi anche sfruttare altre due funzionalità di sicurezza: il Trusted Platform Module virtuale (vTPM) e il monitoraggio dell'integrità. Le seguenti sezioni descrivono i vantaggi di questi e sui requisiti del sistema operativo.
Virtual Trusted Platform Module (vTPM)
Un modulo per una piattaforma fidata è un dispositivo specializzato per proteggere oggetti, come chiavi e certificati, che utilizzi per autenticare l'accesso al tuo sistema. Nelle immagini VM schermate vengono utilizzate versioni virtualizzate dei dispositivi TPM per attivare l'avvio con misurazioni. In breve, l'avvio con misurazioni garantisce l'integrità del percorso di caricamento critico dei driver di avvio e del kernel. vTPM e l'avvio con misurazioni sono trattati in modo più dettagliato nella documentazione di Shielded VM.
Per utilizzare vTPM e l'avvio con misurazioni, è necessario un driver. Le versioni minime del sistema operativo con supporto per TPM 2.0 sono:
- Windows Server 2012
- Linux versione 3.20
- Red Hat Enterprise Linux 7.3
Monitoraggio dell'integrità
Il monitoraggio dell'integrità consente di comprendere e prendere decisioni sullo stato delle istanze VM. Il monitoraggio utilizza i dati generati da Measured Boot per generare report sull'istanza VM. La documentazione delle VM schermate contiene ulteriori informazioni sul monitoraggio dell'integrità e sull'automazione delle risposte ai fallimenti della convalida dell'integrità.
Per supportare la funzionalità di monitoraggio dell'integrità delle VM schermate, l'immagine deve produrre indicatori di integrità:
- Windows genera indicatori di integrità per impostazione predefinita.
- Su Linux deve essere installato e abilitato il modulo IMA (Integrity Measurement Architecture). Nel modulo deve essere impostato
CONFIG_IMA_MEASURE_PCR_IDX
a 10. Questo è il valore predefinito per il modulo IMA.
Importazione dell'immagine del disco in Compute Engine
Una volta preparata l'immagine, devi caricarla nel in Compute Engine. Per i passaggi necessari per caricare l'immagine su per Google Cloud, consulta Importare le immagini del disco di avvio in Compute Engine.
Configurazione dei certificati per l'avvio protetto
Quando aggiungi un'immagine VM protetta, un insieme di database e certificati pubblici di Avvio protetto viene trasmesso a Compute Engine. Questi file vengono archiviati nelle variabili UEFI corrispondenti e utilizzati per stabilire l'attendibilità le relazioni tra piattaforma, firmware e sistema operativo. I certificati devono essere certificati X.509 con codifica Distinguished Encoding Rules (DER). I database possono essere un certificato o un file binario non elaborato. Esistono quattro valori in totale:
- Chiave della piattaforma (
pk
): una chiave utilizzata per stabilire la relazione di attendibilità. tra il proprietario della piattaforma e il firmware. Puoi specificare una sola chiave della piattaforma e deve essere un certificato X.509 valido. - Chiave di scambio (
kek
): una chiave utilizzata per stabilire un rapporto di attendibilità tra il firmware e il sistema operativo. Puoi specificare più chiavi per questo valore. - Database chiavi vietato (
dbx
): un database di certificati con è stato revocato e l'avvio del sistema verrà interrotto se un file di avvio viene firmato con uno di loro. Puoi specificare valori singoli o multipli per questo valore. - Database di chiavi (
db
): un database di certificati attendibili e che possono essere per firmare file di avvio. Puoi specificare valori singoli o multipli per questo valore.
La specifica UEFI contiene ulteriori informazioni su questi valori e sul loro funzionamento.
Nell'esempio seguente, OpenSSL viene utilizzato per creare le chiavi e i certificati di Secure Boot.
Genera una coppia di chiavi RSA a 2048 bit
$ openssl genrsa -out secure-boot-key.rsa 2048
Genera un certificato X.509 autofirmato dalla chiave in formato DER
$ openssl req -new -x509 -sha256 -subj '/CN=secure-boot' -key secure-boot-key.rsa -outform DER -out secure-boot-cert.pem
Aggiunta dell'immagine schermata a Google Cloud
Ora puoi aggiungere l'immagine a Compute Engine utilizzando l'immagine e i certificati caricati. L'immagine può essere aggiunta utilizzando Google Cloud CLI o l'API Compute Engine.
gcloud
Aggiungi l'immagine personalizzata a Compute Engine:
gcloud compute images create [IMAGE_NAME] \
--source-disk [SOURCE_DISK] \
--source-disk-zone [ZONE] \
--platform-key-file=<file.der> \
--key-exchange-key-file=<file.der> \
--signature-database-file=<file.bin>,<file.der> \
--forbidden-database-file=<file.bin> \
--guest-os-features="UEFI_COMPATIBLE[,WINDOWS]"
dove:
[IMAGE_NAME]
è il nome della nuova immagine.[SOURCE_DISK]
è il disco da cui vuoi creare la nuova immagine.[ZONE]
è la zona in cui si trova il disco.
L'opzione WINDOWS
per guest-os-features
è obbligatoria solo se utilizzi un'immagine Windows. Per ulteriori informazioni sulla creazione di un'immagine, consulta
Riferimento gcloud create
.
API
Segui le istruzioni per
crea un'immagine da un disco permanente
ma specifica il initial_state_config
nel corpo della richiesta.
...
"sourceDisk": "/zones/[ZONE]/disks/[SOURCE_DISK]",
"initial_state_config": {
"pk": {
"content": [KEY],
"fileType": [BIN,X509]
},
"keks": [
{
"content": [KEY],
"fileType": [BIN,X509]
},
...
],
"dbxs": [
{
"content": [KEY],
"fileType": [BIN,X509]
},
...
],
"dbs": [
{
"content": [KEY],
"fileType": [BIN,X509]
},
...
]
}
Certificati predefiniti
Tieni presente che i campi pk
, keks
, dbxs
e dbs
sono facoltativi. Se fornisci un parametro
configurazione iniziale dello stato, alcuni o tutti questi campi potrebbero non essere impostati. Quando viene creata una nuova istanza dall'immagine, Google Cloud fornisce un valore predefinito per PK
, KEK
, db
e dbx
, a meno che non sia stato impostato un valore personalizzato su un campo non impostato. Se non fornisci una configurazione iniziale dello stato (ovvero
non è presente, non è solo vuoto), l'immagine avrà lo stato iniziale
configurazione dell'immagine di origine.
Questi campi I valori predefiniti sono:
PK
: il certificato associato alla chiave privata predefinita creata da in tutti i canali Google.KEK
: il certificato KEK Microsoft predefinito. Scarica da Microsoft:MicCorKEKCA2011_2011-06-24.crt
.dbx
: l'elenco di revoche predefinito di Microsoft DBX. Scarica da Unified Forum Extensible Firmware Interface: Elenco revoche UEFI filedb
: i seguenti due certificati:- Microsoft Windows Production PCA 2011 con un hash del certificato SHA-1 di
58 0a 6f 4c c4 e4 b6 69 b9 eb dc 1b 2b 3e 08 7b 80 d0 67 8d
. Scarica da Microsoft:MicWinProPCA2011_2011-10-19.crt
. - Microsoft Corporation UEFI CA 2011 con hash del certificato SHA-1 di
46 de f6 3b 5c e6 1c f8 ba 0d e2 e6 63 9c 10 19 d0 ed 14 f3
. Scarica di Microsoft:MicCorUEFCA2011_2011-06-27.crt
- Microsoft Windows Production PCA 2011 con un hash del certificato SHA-1 di
Fai attenzione, poiché l'aggiunta di certificati personali sovrascriverà quelli predefiniti anziché unirli a quelli da te forniti.