Secure Boot sorgt dafür, dass das System nur authentische Software ausführt, indem die digitale Signatur aller Startkomponenten überprüft und der Startvorgang angehalten wird, wenn die Signaturüberprüfung fehlschlägt.
Bei Google Distributed Cloud (GDC) Air-Gapped wird die UEFI-Firmware (Unified Extensible Firmware Interface) verwendet, um Zertifikate und Schlüssel zu verwalten, die zum Signieren von Software verwendet werden.
Die UEFI-Firmware sorgt für die sichere Verwaltung der Zertifikate, die die Schlüssel enthalten, mit denen die Softwarehersteller die Firmware, den Bootloader und von diesen geladene Binärdateien signieren. Die UEFI-Dokumentation finden Sie unter https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf
.
Bei jedem Start überprüft die UEFI-Firmware die digitale Signatur jeder Startkomponente anhand des sicheren Speichers mit genehmigten Schlüsseln. Die Ausführung von Startkomponenten, die nicht ordnungsgemäß oder überhaupt nicht signiert sind, wird untersagt. Wenn Sie Secure Boot aktivieren möchten, müssen Sie den bootloader
-Typ der VM auf uefi
festlegen.
Ein vTPM ist ein virtualisiertes vertrauenswürdiges Plattformmodul. Weitere Informationen zu vTPMs finden Sie unter https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/. Dabei handelt es sich um einen speziellen Computerchip für den Schutz von Objekten wie Schlüsseln und Zertifikaten, mit denen Sie den Zugriff auf Ihr System authentifizieren. Sie können das vTPM auch verwenden, um Secrets durch Abschirmung oder Versiegelung zu schützen. Weitere Informationen zum versiegelten Speicher finden Sie unter https://en.wikipedia.org/wiki/Trusted_Computing#SEALED-STORAGE. Auf GitHub finden Sie im Projekt Go-TPM (https://github.com/google/go-tpm) Beispiele dafür, wie Sie in der Sprache Go ein vTPM für diesen Zweck verwenden.
Hinweise
Wenn Sie die Befehlszeilenbefehle (Command-Line Interface, CLI) von gdcloud
verwenden möchten, müssen Sie die gdcloud
-CLI heruntergeladen, installiert und konfiguriert haben.
Für alle Befehle für Distributed Cloud wird die gdcloud
- oder kubectl
-CLI verwendet. Außerdem ist eine Betriebssystemumgebung erforderlich.
Pfad der kubeconfig-Datei abrufen
Damit Sie Befehle für den Management API-Server ausführen können, benötigen Sie die folgenden Ressourcen:
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.
Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um
MANAGEMENT_API_SERVER
in dieser Anleitung zu ersetzen.
Berechtigungen und Zugriff anfordern
Zum Ausführen der auf dieser Seite aufgeführten Aufgaben benötigen Sie die Rolle „ProjectVirtualMachine Admin“. Folgen Sie der Anleitung, um zu prüfen, ob Sie die Rolle „Project VirtualMachine Admin“ (project-vm-admin
) im Namespace des Projekts haben, in dem sich die VM befindet.
Secure Boot aktivieren
Secure Boot für eine VM aktivieren. Verwenden Sie die folgende Anleitung für eine VM mit dem Namen VM_NAME
im Namespace des Projekts (PROJECT_NAMESPACE
).
Benutzerdefinierte VM-Ressource aktualisieren, um Secure Boot zu aktivieren:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: bootType: uefi enableSecureBoot: true '
Wenn die VM ausgeführt wird, starten Sie sie neu. Folgen Sie dazu der Anleitung zum Neustarten einer VM.
Prüfen Sie, ob Sie Secure Boot aktiviert haben. Stellen Sie eine SSH-Verbindung zu Ihrer VM her und führen Sie den folgenden Befehl aus:
mokutil --sb-state
Wenn Sie Secure Boot erfolgreich aktiviert haben, gibt der Befehl
SecureBoot enabled
zurück.Wenn das Tool
mokutil
meldet, dass Sie Secure Boot nicht aktiviert haben, folgen Sie der Anleitung im Abschnitt Fehlerbehebung bei der Secure Boot-Konfiguration.
Fehlerbehebung bei der Secure Boot-Konfiguration
Öffnen Sie die benutzerdefinierte VM-Ressource in einem Editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE
Suchen Sie nach fehlenden Feldern oder Werten, wie im Feld
spec
in „Führen Sie den folgenden Befehl aus“ beschrieben. Diese sind erforderlich.Wenn Felder fehlen oder falsch sind, bearbeiten Sie
spec
, um die fehlenden Felder hinzuzufügen und falsche Werte zu korrigieren.Speichern Sie die Datei.
Folgen Sie der Anleitung unter VM neu starten.
Wenn das Problem durch die vorherigen Schritte nicht behoben wird, prüfen Sie in der Dokumentation für das Betriebssystem der VM, ob die Betriebssystemversion Secure Boot unterstützt.
Virtual Trusted Platform Module (vTPM) aktivieren
vTPM für eine VM aktivieren Folgen Sie der folgenden Anleitung für eine VM mit dem Namen VM_NAME
im Namespace des Projekts (PROJECT_NAMESPACE
).
Benutzerdefinierte VM-Ressource aktualisieren, um vTPM zu aktivieren:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: enableVtpm: true '
Wenn die VM ausgeführt wird, starten Sie sie neu. Folgen Sie dazu der Anleitung zum Neustarten einer VM.
Prüfen Sie, ob Sie vTPM aktiviert haben. Stellen Sie eine SSH-Verbindung zu Ihrer VM her und führen Sie den folgenden Befehl aus:
dmesg | grep -i tpm
Wenn Sie vTPM erfolgreich aktiviert haben, gibt der Befehl das TPM-Modul als Teil der ACPI-Tabellen zurück. Die Ausgabe sieht dann ungefähr so aus:
[ 7.620985] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1, rev-id 1)
Wenn auf der Seite
ACPI tables
das TPM-Modul nicht angezeigt wird, folgen Sie der Anleitung im Abschnitt Fehlerbehebung bei der vTPM-Konfiguration.
Fehlerbehebung bei der vTPM-Konfiguration
Öffnen Sie die benutzerdefinierte VM-Ressource in einem Editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE
Suchen Sie nach fehlenden Feldern oder Werten, wie im Feld
spec
unter Führen Sie den folgenden Befehl aus beschrieben. Diese sind erforderlich.Wenn Felder fehlen oder falsch sind, bearbeiten Sie
spec
, um die fehlenden Felder hinzuzufügen und falsche Werte zu korrigieren.Speichern Sie die Datei.
Folgen Sie der Anleitung unter VM neu starten.
Wenn das Problem durch die vorherigen Schritte nicht behoben wird, prüfen Sie in der Dokumentation für das Betriebssystem der VM, ob die Betriebssystemversion vTPM unterstützt.