Booting aman membantu memastikan bahwa sistem hanya menjalankan software asli dengan memverifikasi tanda tangan digital semua komponen booting, dan menghentikan proses booting jika verifikasi tanda tangan gagal.
Google Distributed Cloud (GDC) dengan air gap menggunakan firmware Unified Extensible Firmware Interface (UEFI) untuk mengelola sertifikat dan kunci yang digunakan untuk menandatangani software.
Firmware UEFI dengan aman mengelola sertifikat yang berisi kunci yang digunakan oleh produsen software untuk menandatangani firmware sistem, boot loader sistem, dan biner apa pun yang dimuatnya. Untuk melihat dokumentasi UEFI, buka
https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf
.
Pada setiap booting, firmware UEFI memverifikasi tanda tangan digital setiap komponen
booting terhadap penyimpanan aman kunci yang disetujui. Komponen booting apa pun yang
tidak Anda tandatangani dengan benar, atau tidak Anda tandatangani sama sekali, tidak diizinkan berjalan. Untuk
mengaktifkan booting aman, Anda harus menyetel jenis bootloader
VM ke uefi
.
vTPM adalah trusted platform module virtual. Lihat https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/ untuk mengetahui informasi selengkapnya tentang vTPM. Chip ini adalah chip komputer khusus yang dapat Anda gunakan untuk melindungi objek, seperti kunci dan sertifikat, yang Anda gunakan untuk mengautentikasi akses ke sistem Anda. Anda juga dapat menggunakan vTPM untuk melindungi secret melalui perlindungan atau penyegelan. Untuk mengetahui informasi selengkapnya tentang penyimpanan tertutup, lihat https://en.wikipedia.org/wiki/Trusted_Computing#SEALED-STORAGE. Lihat 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 CLI gdcloud
.
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 menggantikan
MANAGEMENT_API_SERVER
dalam petunjuk ini.
Meminta izin dan akses
Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran ProjectVirtualMachine Admin. Ikuti langkah-langkah untuk
memverifikasi
bahwa Anda memiliki peran Project VirtualMachine Admin (project-vm-admin
) di namespace
project tempat VM berada.
Aktifkan 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 Anda 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-state
Jika Anda telah berhasil mengaktifkan boot aman, perintah akan menampilkan
SecureBoot enabled
.Jika alat
mokutil
melaporkan 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_NAMESPACE
Cari kolom atau nilai yang tidak ada seperti yang ditunjukkan di kolom
spec
di "Jalankan perintah berikut". Kolom ini wajib diisi.Jika ada yang tidak ada atau salah, edit
spec
untuk menambahkan kolom yang tidak ada dan memperbaiki nilai yang salah.Simpan file.
Ikuti langkah-langkah di Mulai 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 Anda 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 VM menggunakan petunjuk untuk memulai ulang VM.
Pastikan Anda telah mengaktifkan vTPM. Buat koneksi SSH ke VM Anda dan jalankan perintah berikut:
dmesg | grep -i tpm
Jika Anda berhasil mengaktifkan vTPM, perintah akan menampilkan Modul TPM sebagai bagian dari tabel ACPI. Outputnya terlihat mirip dengan yang berikut ini:
[ 7.620985] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1, rev-id 1)
Jika
ACPI tables
tidak 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_NAMESPACE
Cari kolom atau nilai yang tidak ada seperti yang ditunjukkan di kolom
spec
di Jalankan perintah berikut. Kolom ini wajib diisi.Jika ada yang tidak ada atau salah, edit
spec
untuk menambahkan kolom yang tidak ada dan memperbaiki nilai yang salah.Simpan file.
Ikuti langkah-langkah di Mulai 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.