Topik ini menjelaskan cara menyiapkan disk, membuat sertifikat keamanan, dan mengaktifkan fitur sistem operasi (OS) yang diperlukan untuk membuat image terlindungi khusus.
Secara default, Shielded VM mendukung Container-Optimized OS, berbagai distribusi Linux, dan beberapa versi Windows Server. Namun, jika memerlukan image kustom untuk aplikasi, Anda masih dapat memanfaatkan Shielded VM.
Menyiapkan disk
Shielded VM mengandalkan firmware Interface yang mematuhi Unified Extensible Firmware Interface (UEFI) untuk mendukung fitur seperti Booting Aman. Shielded VM memerlukan skema GUID Partition Table (GPT); master boot record (MBR) tidak didukung.
Disk harus memiliki minimal dua partisi:
- EFI System Partition (ESP): 100 megabyte (MB) cukup untuk partisi ini, dan hanya sebagai saran. Anda dapat membuat partisi yang lebih besar jika perlu. Satu-satunya persyaratan untuk ESP adalah bahwa ESP harus diformat dengan sistem file Tabel Alokasi File (FAT).
- Partisi OS: Sisa disk. Partisi ini berisi boot OS (Linux atau Windows). Tidak ada batasan ukuran partisi ini.
Anda dapat membuat lebih banyak partisi data sesuai kebutuhan.
Menyalin OS ke partisi OS
Setelah disk diformat dan dipartisi dengan benar, salin file OS ke
partisi OS. OS memiliki boot loader yang harus berada di jalur yang valid
pada ESP, seperti yang ditetapkan dalam spesifikasi UEFI:
\EFI\Boot\bootx64.efi
. Perhatikan bahwa Anda mungkin perlu menyalin boot
loader OS ke lokasi yang ditentukan.
Untuk Windows, terdapat perintah yang disebut bcdboot
yang dapat digunakan untuk menyalin
boot loader OS ke lokasi yang benar, selain tindakan lain yang diperlukan
Windows (seperti menyalin penyimpanan BCD). Untuk informasi selengkapnya, lihat Opsi Command Line
BCDBoot di Microsoft Hardware Dev Center.
Saat menggunakan image Shielded VM, Anda juga dapat memanfaatkan dua fitur keamanan tambahan: Trusted Platform Module (vTPM) virtual dan pemantauan integritas. Bagian berikut menguraikan manfaat fitur-fitur ini dan persyaratan OS.
Virtual Trusted Platform Module (vTPM)
Modul platform tepercaya adalah perangkat khusus untuk melindungi objek, seperti kunci dan sertifikat, yang Anda gunakan untuk mengautentikasi akses ke sistem. Pada image VM yang Dilindungi, versi virtual perangkat TPM digunakan untuk mengaktifkan Booting Terukur. Secara singkat, Booting Terukur memastikan integritas jalur pemuatan penting dari driver booting dan kernel. vTPM dan Booting Terukur dibahas secara lebih mendetail dalam dokumentasi Shielded VM.
Untuk memanfaatkan vTPM dan Boot Terukur, diperlukan pengemudi. Versi OS minimum dengan dukungan TPM 2.0 adalah:
- Windows Server 2012
- Linux versi 3.20
- Red Hat Enterprise Linux 7.3
Pemantauan integritas
Pemantauan integritas memberikan cara untuk memahami dan membuat keputusan tentang status instance VM Anda. Monitoring menggunakan data yang dihasilkan oleh Boot terukur untuk melaporkan instance VM. Dokumentasi Shielded VM memiliki informasi selengkapnya tentang pemantauan integritas dan mengotomatiskan respons terhadap kegagalan validasi integritas.
Untuk mendukung fitur pemantauan integritas Shielded VM, gambar harus menghasilkan sinyal integritas:
- Windows menghasilkan sinyal integritas secara default.
- Linux harus menginstal dan mengaktifkan modul
Integrity Measurement Architecture (IMA). Modul harus memiliki
CONFIG_IMA_MEASURE_PCR_IDX
yang ditetapkan ke 10. Nilai ini adalah nilai default untuk modul IMA.
Mengimpor disk image ke Compute Engine
Setelah gambar disiapkan, Anda harus mengupload gambar ke Compute Engine. Guna mengetahui langkah-langkah yang diperlukan untuk mengupload image ke Google Cloud, lihat Mengimpor boot disk image ke Compute Engine.
Menyiapkan sertifikat untuk Booting Aman
Saat menambahkan image VM Terlindungi, serangkaian sertifikat publik dan database Booting Aman akan diteruskan ke Compute Engine. File ini disimpan dalam variabel UEFI yang sesuai dan digunakan untuk membangun hubungan kepercayaan antara platform, firmware, dan OS. Sertifikat adalah sertifikat X.509 yang dienkode menggunakan Distinguished Encoding Rules (DER). Database ini dapat berupa sertifikat atau biner mentah. Total ada empat nilai:
- Kunci Platform (
pk
): Kunci yang digunakan untuk menetapkan hubungan kepercayaan antara pemilik platform dan firmware. Anda hanya dapat menentukan satu kunci platform, dan kunci tersebut harus berupa sertifikat X.509 yang valid. - Kunci Pertukaran Kunci (
kek
): Kunci yang digunakan untuk membuat hubungan kepercayaan antara firmware dan OS. Anda dapat menentukan beberapa kunci untuk nilai ini. - Forbidden Key Database (
dbx
): Database sertifikat yang telah dicabut dan akan menyebabkan sistem berhenti booting jika file booting ditandatangani dengan salah satunya. Anda dapat menentukan satu atau beberapa nilai untuk nilai ini. - Key Database (
db
): Database sertifikat yang tepercaya dan dapat digunakan untuk menandatangani file booting. Anda dapat menentukan satu atau beberapa nilai untuk nilai ini.
Spesifikasi UEFI berisi informasi selengkapnya tentang nilai ini dan cara kerjanya.
Pada contoh berikut, OpenSSL digunakan untuk membuat sertifikat dan kunci Booting Aman.
Membuat pasangan kunci RSA 2048-bit
$ openssl genrsa -out secure-boot-key.rsa 2048
Buat sertifikat X.509 yang ditandatangani sendiri dari kunci dalam format DER
$ openssl req -new -x509 -sha256 -subj '/CN=secure-boot' -key secure-boot-key.rsa -outform DER -out secure-boot-cert.pem
Menambahkan shielded image ke Google Cloud
Dengan menggunakan gambar dan sertifikat yang diupload, sekarang Anda dapat menambahkan image ke Compute Engine. Image ini dapat ditambahkan menggunakan Google Cloud CLI atau Compute Engine API.
gcloud
Tambahkan image kustom ke 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]"
dengan:
[IMAGE_NAME]
adalah nama untuk gambar baru.[SOURCE_DISK]
adalah disk tempat Anda ingin membuat image baru.[ZONE]
adalah zona tempat disk berada.
Opsi WINDOWS
untuk guest-os-features
hanya diperlukan saat menggunakan image
Windows. Untuk mengetahui informasi selengkapnya tentang pembuatan gambar, lihat
referensi gcloud create
.
API
Ikuti petunjuk untuk
membuat image dari persistent disk,
tetapi tentukan initial_state_config
dalam isi permintaan.
...
"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]
},
...
]
}
Sertifikat default
Perhatikan bahwa pk
, keks
, dbxs
, dan dbs
adalah kolom opsional. Jika Anda memberikan
konfigurasi status awal, beberapa atau semua kolom ini mungkin tidak disetel. Saat instance baru dibuat dari image, Google Cloud memberikan nilai default untuk PK
, KEK
, db
, dan dbx
kecuali jika nilai kustom ditetapkan pada setiap isian
yang tidak ditetapkan. Jika Anda tidak memberikan konfigurasi status awal (artinya, konfigurasi tidak ada, bukan hanya kosong), gambar akan memiliki konfigurasi status
awal gambar sumber.
Nilai default kolom ini adalah:
PK
: Sertifikat yang terkait dengan kunci pribadi default yang dibuat oleh Google.KEK
: Sertifikat Microsoft KEK default. Download dari Microsoft:MicCorKEKCA2011_2011-06-24.crt
.dbx
: Daftar pencabutan Microsoft DBX default. Download dari Unified Extensible Firmware Interface Forum: File daftar pencabutan UEFIdb
: Dua sertifikat berikut:- Microsoft Windows Production PCA 2011 dengan Hash Sertifikat SHA-1 dari
58 0a 6f 4c c4 e4 b6 69 b9 eb dc 1b 2b 3e 08 7b 80 d0 67 8d
. Download dari Microsoft:MicWinProPCA2011_2011-10-19.crt
. - Microsoft Corporation UEFI CA 2011 dengan Hash Sertifikat SHA-1
46 de f6 3b 5c e6 1c f8 ba 0d e2 e6 63 9c 10 19 d0 ed 14 f3
. Download dari Microsoft:MicCorUEFCA2011_2011-06-27.crt
.
- Microsoft Windows Production PCA 2011 dengan Hash Sertifikat SHA-1 dari
Hati-hati, karena menambahkan sertifikat sendiri akan menimpa sertifikat default, bukan menggabungkannya dengan sertifikat yang Anda berikan.