Dokumen ini menjelaskan cara mengaktifkan booting aman atau virtual trusted platform module (vTPM) pada instance virtual machine (VM) di appliance air-gapped Google Distributed Cloud (GDC).
Dokumen ini ditujukan untuk developer dalam grup operator aplikasi atau administrator platform yang mengonfigurasi Booting Aman dan vTPM di VM dalam lingkungan appliance GDC dengan air gap.
Tentang booting aman
Booting aman adalah fitur yang memastikan sistem hanya menjalankan software asli dengan memverifikasi tanda tangan digital semua komponen booting dan menghentikan proses jika verifikasi gagal. Fitur ini menggunakan firmware Unified Extensible Firmware Interface (UEFI) untuk mengelola sertifikat dan kunci yang digunakan produsen untuk menandatangani firmware sistem, bootloader, dan biner yang dimuat.
Pada setiap booting, firmware UEFI memverifikasi tanda tangan digital setiap komponen terhadap kunci yang disimpan dan disetujui serta memblokir komponen yang tidak ditandatangani atau ditandatangani dengan tidak benar.
Untuk mengaktifkan booting aman pada instance VM, Anda harus menetapkan jenis bootloader VM ke uefi.
Untuk melihat dokumentasi UEFI resmi, lihat https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf.
Tentang virtual trusted platform module
vTPM adalah chip komputer virtual khusus yang melindungi kunci dan sertifikat yang digunakan untuk mengautentikasi akses sistem. Lihat https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/ untuk mengetahui informasi selengkapnya tentang vTPM.
Anda juga dapat menggunakan vTPM untuk melindungi secret melalui perlindungan atau penyegelan. Untuk mengetahui informasi selengkapnya tentang penyimpanan tersegel, lihat https://en.wikipedia.org/wiki/Trusted_Computing#SEALED-STORAGE. Baca project Go-TPM di GitHub - https://github.com/google/go-tpm - untuk contoh bahasa Go yang mengilustrasikan cara menggunakan vTPM untuk tujuan ini.
Sebelum memulai
Untuk menggunakan perintah antarmuka command line (CLI) gdcloud, pastikan Anda telah mendownload, menginstal,
dan mengonfigurasi gdcloud CLI.
Semua perintah untuk appliance GDC dengan air gap menggunakan gdcloud atau kubectl CLI, dan memerlukan lingkungan sistem operasi (OS).
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
Temukan nama server Management API, atau tanyakan kepada Administrator Platform (PA) nama servernya.
Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.
Gunakan jalur untuk mengganti
MANAGEMENT_API_SERVER{"</var>"}}dalam petunjuk ini.
Meminta peran IAM
Untuk mengaktifkan booting aman atau vTPM di VM, hubungi Admin IAM Project Anda untuk meminta peran Project VirtualMachine Admin (project-vm-admin).
Semua peran VM harus terikat ke namespace project tempat VM berada. Ikuti langkah-langkah untuk memverifikasi akses Anda.
Mengaktifkan booting aman
Aktifkan booting aman untuk VM. Gunakan petunjuk berikut untuk VM yang disebut VM_NAME di namespace project (PROJECT_NAMESPACE).
Perbarui resource kustom VM untuk mengaktifkan booting aman:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: bootType: uefi enableSecureBoot: true 'Jika VM sedang berjalan, mulai ulang menggunakan petunjuk untuk memulai ulang VM.
Pastikan Anda telah mengaktifkan booting aman. Buat koneksi SSH ke VM Anda dan jalankan perintah berikut:
mokutil --sb-stateJika Anda berhasil mengaktifkan booting aman, perintah akan menampilkan
SecureBoot enabled.Jika alat
mokutilmelaporkan bahwa Anda belum mengaktifkan booting aman, ikuti langkah-langkah di bagian Memecahkan masalah konfigurasi booting aman.
Memecahkan masalah konfigurasi booting aman
Buka resource kustom VM Anda di editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACECari kolom atau nilai yang tidak ada seperti yang ditunjukkan di kolom
specdi "Jalankan perintah berikut". Kolom ini wajib diisi.Jika ada yang tidak ada atau salah, edit
specuntuk menambahkan kolom yang tidak ada dan memperbaiki nilai yang salah.Simpan file.
Ikuti langkah-langkah di bagian Memulai ulang VM.
Jika langkah-langkah sebelumnya tidak menyelesaikan masalah Anda, periksa dokumentasi yang sesuai dengan sistem operasi (OS) VM untuk memverifikasi bahwa versi OS mendukung booting aman.
Mengaktifkan virtual trusted platform module (vTPM)
Aktifkan vTPM untuk VM. Gunakan petunjuk berikut untuk VM yang disebut VM_NAME di namespace project (PROJECT_NAMESPACE).
Perbarui resource kustom VM untuk mengaktifkan vTPM:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: enableVtpm: true 'Jika VM sedang berjalan, mulai ulang menggunakan petunjuk untuk memulai ulang VM.
Pastikan Anda telah mengaktifkan vTPM. Buat koneksi SSH ke VM Anda dan jalankan perintah berikut:
dmesg | grep -i tpmJika Anda berhasil mengaktifkan vTPM, perintah akan menampilkan Modul TPM sebagai bagian dari tabel ACPI. Outputnya akan terlihat mirip seperti berikut:
[ 7.620985] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1, rev-id 1)Jika
ACPI tablestidak menampilkan modul TPM, ikuti langkah-langkah di bagian Memecahkan masalah konfigurasi vTPM.
Memecahkan masalah konfigurasi vTPM
Buka resource kustom VM Anda di editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACECari kolom atau nilai yang tidak ada seperti yang ditunjukkan di kolom
specdi Jalankan perintah berikut. Kolom ini wajib diisi.Jika ada yang tidak ada atau salah, edit
specuntuk menambahkan kolom yang tidak ada dan memperbaiki nilai yang salah.Simpan file.
Ikuti langkah-langkah di bagian Memulai ulang VM.
Jika langkah-langkah sebelumnya tidak menyelesaikan masalah Anda, periksa dokumentasi yang sesuai dengan sistem operasi (OS) VM untuk memverifikasi bahwa versi OS mendukung vTPM.