In diesem Dokument wird erläutert, wie Sie Secure Boot oder ein virtualisiertes Trusted Platform Module (vTPM) auf einer VM-Instanz (Virtual Machine) in Google Distributed Cloud (GDC) mit Air Gap aktivieren.
Dieses Dokument richtet sich an Entwickler in Plattformadministrator- oder Anwendungsoperatorgruppen, die Secure Boot und vTPMs auf VMs in einer Distributed Cloud-Umgebung konfigurieren. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.
Secure Boot
Secure Boot ist eine Funktion, die dafür sorgt, dass das System nur authentische Software ausführt. Dazu wird die digitale Signatur aller Bootkomponenten überprüft und der Vorgang angehalten, wenn die Überprüfung fehlschlägt. Die Firmware Unified Extensible Firmware Interface (UEFI) wird verwendet, um Zertifikate und Schlüssel zu verwalten, mit denen Hersteller die Systemfirmware, Bootloader und geladene Binärdateien signieren.
Bei jedem Start überprüft die UEFI-Firmware die digitale Signatur jeder Komponente anhand der gespeicherten genehmigten Schlüssel und blockiert alle nicht signierten oder nicht ordnungsgemäß signierten Komponenten.
Wenn Sie Secure Boot auf Ihrer VM-Instanz aktivieren möchten, müssen Sie den bootloader-Typ der VM auf uefi festlegen.
Die offizielle UEFI-Dokumentation finden Sie unter https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf.
Virtual Trusted Platform Modules
Ein vTPM ist ein spezieller virtueller Computerchip, der die Schlüssel und Zertifikate schützt, die zur Authentifizierung des Systemzugriffs verwendet werden. Weitere Informationen zu vTPMs finden Sie unter https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/.
Sie können ein 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 unter https://github.com/google/go-tpm Beispiele dafür, wie Sie in der Sprache Go ein vTPM für diesen Zweck verwenden.
Hinweis
Wenn Sie gdcloud Befehlszeilenbefehle verwenden möchten, müssen Sie die gdcloud Befehlszeile heruntergeladen, installiert,
und konfiguriert haben.
Alle Befehle für Distributed Cloud verwenden die gdcloud- oder kubectl-Befehlszeile und erfordern eine Betriebssystemumgebung.
Pfad zur kubeconfig-Datei abrufen
Wenn Sie Befehle für den Management API-Server ausführen möchten, 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.
Ersetzen Sie in dieser Anleitung
MANAGEMENT_API_SERVERdurch den Pfad zur kubeconfig-Datei des Management API-Servers.
IAM-Rollen anfordern
Wenn Sie Secure Boot oder vTPM auf Ihrer VM aktivieren möchten, bitten Sie Ihren Project IAM-Administrator, Ihnen die Rolle Virtual Machine Project Admin (project-vm-admin) zuzuweisen.
Alle VM-Rollen müssen an den Namespace des Projekts gebunden sein, in dem sich die VM befindet. Folgen Sie der Anleitung, um Ihren Zugriff zu prüfen.
Secure Boot aktivieren
Aktivieren Sie Secure Boot für eine VM. Verwenden Sie die folgende Anleitung für eine VM mit dem Namen VM_NAME im Namespace des Projekts (PROJECT_NAMESPACE).
Aktualisieren Sie die benutzerdefinierte VM-Ressource, um Secure Boot zu aktivieren:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_NAMESPACE \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ --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-stateWenn Sie Secure Boot erfolgreich aktiviert haben, gibt der Befehl
SecureBoot enabledzurück.Wenn das Tool
mokutilmeldet, 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 \ -n PROJECT_NAMESPACE \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMESuchen Sie nach fehlenden Feldern oder Werten, wie im
specFeld in "Führen Sie den folgenden Befehl aus". Diese sind obligatorisch.Wenn Felder oder Werte 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 des Betriebssystems der VM, ob die Betriebssystemversion Secure Boot unterstützt.
vTPM aktivieren
Aktivieren Sie vTPM für eine VM. Verwenden Sie die folgende Anleitung für eine VM mit dem Namen VM_NAME im Namespace des Projekts (PROJECT_NAMESPACE).
Aktualisieren Sie die benutzerdefinierte VM-Ressource, um vTPM zu aktivieren:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_NAMESPACE \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ --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 tpmWenn 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 die
ACPI tablesdas TPM-Modul nicht anzeigen, 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 \ -n PROJECT_NAMESPACE \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMESuchen Sie nach fehlenden Feldern oder Werten, wie im Feld
specunter „Führen Sie den folgenden Befehl aus“ gezeigt. Diese sind obligatorisch.Wenn Felder oder Werte 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 des Betriebssystems der VM, ob die Betriebssystemversion vTPM unterstützt.