Ce document explique comment activer le démarrage sécurisé ou un module de plate-forme sécurisée virtualisé (vTPM) sur une instance de machine virtuelle (VM) dans l'appliance Google Distributed Cloud (GDC) isolée.
Ce document s'adresse aux développeurs des groupes d'administrateurs de plate-forme ou d'opérateurs d'applications qui configurent le démarrage sécurisé et les vTPM sur les VM dans un environnement d'appliance GDC sous air gap.
À propos du démarrage sécurisé
Le démarrage sécurisé est une fonctionnalité qui permet de s'assurer que le système n'exécute que des logiciels authentiques. Il vérifie pour cela la signature numérique de tous les composants de démarrage et interrompt le processus si cette vérification échoue. Il utilise le micrologiciel UEFI (Unified Extensible Firmware Interface) pour gérer les certificats et les clés que les fabricants utilisent pour signer le micrologiciel système, les bootloaders et les binaires chargés.
À chaque démarrage, le micrologiciel UEFI vérifie la signature numérique de chaque composant à l'aide des clés approuvées stockées et bloque tout composant non signé ou mal signé.
Pour activer le démarrage sécurisé sur votre instance de VM, vous devez définir le type bootloader de la VM sur uefi.
Pour consulter la documentation officielle sur UEFI, accédez à https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf.
À propos des modules vTPM (Virtual Trusted Platform Module)
Un vTPM est une puce informatique virtuelle spécialisée qui protège les clés et les certificats utilisés pour authentifier l'accès au système. Pour en savoir plus sur les vTPM, consultez https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/.
Vous pouvez également utiliser un module vTPM pour protéger les secrets grâce à la protection ou au scellement. Pour en savoir plus sur le stockage scellé, consultez https://en.wikipedia.org/wiki/Trusted_Computing#SEALED-STORAGE. Pour en savoir plus sur cette démarche et consulter des exemples en langage Go, reportez-vous au projet Go-TPM sur GitHub : https://github.com/google/go-tpm.
Avant de commencer
Pour utiliser les commandes de l'interface de ligne de commande (CLI) gdcloud, assurez-vous d'avoir téléchargé, installé et configuré la CLI gdcloud.
Toutes les commandes pour l'appliance GDC sous air gap utilisent la CLI gdcloud ou kubectl et nécessitent un environnement de système d'exploitation (OS).
Obtenir le chemin d'accès au fichier kubeconfig
Pour exécuter des commandes sur le serveur de l'API Management, assurez-vous de disposer des ressources suivantes :
Localisez le nom du serveur de l'API Management ou demandez-le à votre administrateur de plate-forme.
Connectez-vous et générez le fichier kubeconfig pour le serveur de l'API Management si vous n'en avez pas.
Utilisez le chemin d'accès pour remplacer
MANAGEMENT_API_SERVER{"</var>"}}dans ces instructions.
Demander des rôles IAM
Pour activer le démarrage sécurisé ou le vTPM sur votre VM, contactez l'administrateur IAM de votre projet pour demander le rôle Administrateur VirtualMachine du projet (project-vm-admin).
Tous les rôles de VM doivent être associés à l'espace de noms du projet dans lequel réside la VM. Suivez la procédure pour valider votre accès.
Activer le démarrage sécurisé
Activez le démarrage sécurisé pour une VM. Suivez les instructions ci-dessous pour une VM appelée VM_NAME dans l'espace de noms du projet (PROJECT_NAMESPACE).
Mettez à jour la ressource personnalisée de votre VM pour activer le démarrage sécurisé :
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: bootType: uefi enableSecureBoot: true 'Si la VM est en cours d'exécution, redémarrez-la en suivant les instructions pour redémarrer une VM.
Vérifiez que vous avez activé le démarrage sécurisé. Établissez une connexion SSH avec votre VM et exécutez la commande suivante :
mokutil --sb-stateSi vous avez activé le démarrage sécurisé, la commande renvoie
SecureBoot enabled.Si l'outil
mokutilindique que vous n'avez pas activé le démarrage sécurisé, suivez les étapes de la section Résoudre les problèmes de configuration du démarrage sécurisé.
Résoudre les problèmes de configuration du démarrage sécurisé
Ouvrez votre ressource personnalisée de VM dans un éditeur :
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACERecherchez les champs ou valeurs manquants, comme indiqué dans le champ
specde Exécutez la commande suivante. Ces informations sont obligatoires.S'il en manque ou si certaines sont incorrectes, modifiez
specpour ajouter les champs manquants et corriger les valeurs erronées.Enregistrez le fichier.
Suivez la procédure décrite dans Redémarrer la VM.
Si les étapes précédentes ne permettent pas de résoudre votre problème, consultez la documentation correspondant au système d'exploitation (OS) de la VM pour vérifier que la version de l'OS est compatible avec le démarrage sécurisé.
Activer le module vTPM (Virtual Trusted Platform Module)
Activez vTPM pour une VM. Suivez les instructions ci-dessous pour une VM appelée VM_NAME dans l'espace de noms du projet (PROJECT_NAMESPACE).
Mettez à jour votre ressource personnalisée de VM pour activer vTPM :
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: enableVtpm: true 'Si la VM est en cours d'exécution, redémarrez-la en suivant les instructions pour redémarrer une VM.
Vérifiez que vous avez activé vTPM. Établissez une connexion SSH avec votre VM et exécutez la commande suivante :
dmesg | grep -i tpmSi vous avez activé le vTPM, la commande renvoie le module TPM dans les tables ACPI. La sortie ressemble à ceci :
[ 7.620985] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1, rev-id 1)Si les
ACPI tablesn'affichent pas le module TPM, suivez les étapes de la section Dépanner la configuration du vTPM.
Résoudre les problèmes de configuration de vTPM
Ouvrez votre ressource personnalisée de VM dans un éditeur :
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACERecherchez les champs ou valeurs manquants, comme indiqué dans le champ
specde la section Exécuter la commande suivante. Ces informations sont obligatoires.S'il en manque ou si certaines sont incorrectes, modifiez
specpour ajouter les champs manquants et corriger les valeurs erronées.Enregistrez le fichier.
Suivez la procédure décrite dans Redémarrer la VM.
Si les étapes précédentes ne permettent pas de résoudre votre problème, consultez la documentation correspondant au système d'exploitation (OS) de la VM pour vérifier que la version de l'OS est compatible avec vTPM.