Dokumen ini menjelaskan cara mengaktifkan Booting Aman atau virtualized trusted platform module (vTPM) pada instance virtual machine (VM) di Google Distributed Cloud (GDC) dengan air gap.
Dokumen ini ditujukan untuk developer dalam grup administrator platform atau operator aplikasi yang mengonfigurasi Booting Aman dan vTPM pada VM di lingkungan GDC. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi 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 disetujui yang disimpan dan memblokir komponen yang tidak ditandatangani atau tidak ditandatangani dengan benar.
Untuk mengaktifkan Booting Aman di instance VM, Anda harus menetapkan kolom shieldConfig.bootType VM ke uefi, dan shieldConfig.enableSecureBoot ke true.
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 Distributed Cloud menggunakan CLI gdcloud atau
kubectl, dan memerlukan lingkungan sistem operasi (OS).
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.
Gunakan jalur ke file kubeconfig server Management API untuk mengganti
MANAGEMENT_API_SERVERdalam petunjuk ini.
Meminta peran IAM
Untuk mendapatkan izin yang diperlukan guna mengaktifkan Booting Aman atau vTPM di VM Anda,
minta Admin Project IAM untuk memberi Anda peran Admin Project Virtual Machine
(project-vm-admin).
Semua peran VM harus terikat ke namespace project tempat VM berada. Ikuti langkah-langkah untuk memverifikasi akses Anda.
Mengaktifkan Booting Aman
Mengaktifkan Booting Aman untuk VM. Gunakan petunjuk berikut untuk VM bernama
VM_NAME di namespace project
(PROJECT_NAMESPACE).
Hentikan VM Anda jika sedang berjalan sebelum menerapkan patch. Jika Anda mencoba melakukan patch pada
shieldConfigsaat VM berjalan, API akan menampilkan errorForbidden:Changes to shieldConfig are not allowed while the VM is running. Untuk mengetahui petunjuknya, lihat Menghentikan VM.Perbarui resource kustom VM Anda untuk mengaktifkan Booting Aman:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_NAMESPACE \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ --type merge --patch $' spec: shieldConfig: bootType: uefi enableSecureBoot: true 'Ganti variabel berikut:
MANAGEMENT_API_SERVER: file kubeconfig untuk server API pengelolaan.PROJECT_NAMESPACE: namespace project tempat VM berada.VM_NAME: nama VM.
Setelah berhasil menerapkan patch, mulai VM Anda menggunakan petunjuk untuk memulai 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 \ -n PROJECT_NAMESPACE \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEGanti variabel berikut:
MANAGEMENT_API_SERVER: file kubeconfig untuk server API pengelolaan.PROJECT_NAMESPACE: namespace project tempat VM berada.VM_NAME: nama VM.
Cari kolom atau nilai yang tidak ada seperti yang ditunjukkan di kolom
specdi Mengaktifkan Booting Aman. Tanda tersebut diperlukan.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 vTPM
Mengaktifkan vTPM untuk VM. Gunakan petunjuk berikut untuk VM bernama
VM_NAME di namespace
project (PROJECT_NAMESPACE).
Hentikan VM Anda jika sedang berjalan sebelum menerapkan patch. Jika Anda mencoba melakukan patch pada
shieldConfigsaat VM berjalan, API akan menampilkan errorForbidden:Changes to shieldConfig are not allowed while the VM is running. Untuk mengetahui petunjuknya, lihat Menghentikan VM.Perbarui resource kustom VM Anda untuk mengaktifkan vTPM:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_NAMESPACE \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ --type merge --patch $' spec: shieldConfig: enableVtpm: true 'Ganti variabel berikut:
MANAGEMENT_API_SERVER: file kubeconfig untuk server API pengelolaan.PROJECT_NAMESPACE: namespace project tempat VM berada.VM_NAME: nama VM.
Setelah berhasil menerapkan patch, mulai VM Anda menggunakan petunjuk untuk memulai 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 mirip dengan hal berikut ini:
[ 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 \ -n PROJECT_NAMESPACE \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEGanti variabel berikut:
MANAGEMENT_API_SERVER: file kubeconfig untuk server API pengelolaan.PROJECT_NAMESPACE: namespace project tempat VM berada.VM_NAME: nama VM.
Cari kolom atau nilai yang tidak ada seperti yang ditunjukkan di kolom
specdi Enable vTPM. Tanda tersebut diperlukan.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 memastikan bahwa versi OS mendukung vTPM.