Qu'est-ce qu'une VM protégée ?

Cette page présente les concepts et la terminologie clés des VM protégées. Pour commencer à utiliser les VM protégées, consultez le guide de démarrage rapide ou la section Modifier les options des VM protégée.

Les VM protégées offrent une intégrité vérifiable à vos instances de VM Compute Engine, vous assurant qu'elles n'ont pas été compromises par des logiciels malveillants ou des rootkits au niveau du démarrage ou du noyau.

Cette intégrité vérifiable des VM protégées est mise en œuvre par les fonctionnalités suivantes :

Démarrage sécurisé

Le démarrage sécurité vous permet de vous 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 de démarrage si cette vérification échoue.

Les instances de VM protégées exécutent un micrologiciel signé et vérifié par l'autorité de certification de Google, ce qui vous garantit qu'il n'a pas été altéré et permet d'établir la racine de confiance pour le démarrage sécurisé. Le micrologiciel UEFI 2.3.1 (Unified Extensible Firmware Interface) gère en toute sécurité les certificats contenant les clés utilisées par les fabricants de logiciels pour signer le micrologiciel du système, le chargeur de démarrage du système et les fichiers binaires qu'ils chargent. Les instances de machines virtuelles protégées utilisent le micrologiciel UEFI.

À chaque démarrage, le micrologiciel UEFI vérifie la signature numérique de chaque composant de démarrage à l'aide d'un magasin sécurisé de clés approuvées. Tout composant qui n'est pas correctement signé (ou pas signé du tout) n'est pas autorisé à s'exécuter.

Dans ce cas, le journal de la console série de l'instance de VM inclut une entrée contenant les chaînes UEFI : Échec du chargement de l'image et État : Violation de sécurité, ainsi qu'une description de l'option de démarrage qui a échoué. Pour remédier à la situation, désactivez le démarrage sécurisé en suivant les instructions décrites dans la section Modifier les options de la VM protégée. Démarrez l'instance de VM, diagnostiquez et résolvez le problème, puis réactivez le démarrage sécurisé.

Module vTPM (Virtual Trusted Platform Module)

Un vTPM, ou module de plate-forme sécurisée virtualisé, est une puce informatique spécialisée qui vous permet de protéger des objets, tels que des clés et des certificats servant à authentifier l'accès à votre système. Le module vTPM des VM protégées est entièrement compatible avec la spécification de bibliothèque TPM 2.0 du Trusted Computing Group et utilise la bibliothèque BoringSSL. La bibliothèque BoringSSL repose sur le module BoringCrypto. Pour en savoir plus sur la certification FIPS 140-2 du module BoringCrypto, consultez la page NIST Cryptographic Module Validation Program Certificate #3678.

Le module vTPM des VM protégées permet d'obtenir un démarrage mesuré en effectuant les mesures nécessaires à la création d'une référence connue pour un démarrage sain, appelée règle d'intégrité de référence. Cette règle compare les mesures provenant des démarrages de VM suivants afin d'identifier toute éventuelle modification.

Le module vTPM vous permet également de défendre vos codes secrets grâce à la protection ou au scellement. Pour en savoir plus sur cette démarche et consulter des exemples en langage Go, reportez-vous au projet Go-TPM sur GitHub.

Démarrage mesuré

Lors du démarrage mesuré, un hachage de chaque composant (par exemple, le micrologiciel, le bootloader ou le noyau) est créé pendant son chargement. Ce hachage est ensuite concaténé, puis ré-haché à l'aide des hachages de composants déjà chargés. Le schéma ci-dessous décrit ce processus :

Schéma représentant le processus de démarrage mesuré

Ces informations identifient les composants chargés ainsi que leur ordre de chargement.

Lorsque vous lancez une instance de VM pour la première fois, le démarrage mesuré crée la règle d'intégrité de référence à partir du premier ensemble de mesures et stocke ces données de manière sécurisée. À chaque nouveau lancement de l'instance de VM, ces mesures sont ensuite reprises et stockées dans la mémoire sécurisée jusqu'au redémarrage suivant. Ces deux ensembles de mesures vous permettent de surveiller l'intégrité et ainsi de déterminer si des modifications ont été apportées à la séquence de démarrage d'une instance de VM.

Surveillance de l'intégrité

La surveillance de l'intégrité vous aide à comprendre l'état de vos instances de VM et à prendre des décisions les concernant.

Elle s'articule autour des mesures créées par le démarrage mesuré, qui exploitent des registres de configuration de plate-forme (PCR) pour stocker des informations sur les composants, ainsi que sur l'ordre de chargement des composants de la règle d'intégrité de référence (séquence de démarrage sain connue) et de la séquence de démarrage la plus récente.

La surveillance de l'intégrité compare les mesures de démarrage les plus récentes à la règle d'intégrité de référence et renvoie une paire de résultats de réussite ou d'échec selon leur correspondance. L'un des résultats concerne la séquence de démarrage précoce tandis que l'autre touche la séquence de démarrage tardive. L'amorçage représente la séquence de démarrage entre le lancement du micrologiciel UEFI et la prise de contrôle du bootloader. Le démarrage tardif, quant à lui, représente la séquence de démarrage entre le bootloader et la prise de contrôle du noyau du système d'exploitation. Si l'une des parties de la séquence de démarrage la plus récente ne correspond pas à la règle de référence, vous obtenez un échec de validation de l'intégrité.

Si vous vous attendez à recevoir un échec (lorsque vous avez appliqué une mise à jour système sur l'instance de VM, par exemple), mettez à jour la règle d'intégrité de référence. Cette opération remplace la règle d'intégrité de référence par les mesures enregistrées lors de la dernière séquence de démarrage. Si vous ne vous attendiez pas à un échec, arrêtez l'instance de VM et recherchez la cause du problème.

Vous pouvez afficher les rapports d'intégrité dans Cloud Monitoring et configurer des alertes pour les échecs d'intégrité. Vous pouvez également examiner les détails des résultats de la surveillance de l'intégrité dans Cloud Logging. Pour en savoir plus, consultez la section Surveiller l'intégrité sur des instances de VM protégées.

Événements de surveillance de l'intégrité

Les VM protégées génèrent des entrées de journal pour les types d'événements suivants :

  • clearTPMEvent : indique si le module vTPM a été effacé (ce qui entraîne la suppression des codes secrets y étant stockés). Cet événement n'affectant aucun aspect des VM protégées, il n'est utile que si vous protégez vos données sensibles à l'aide du module vTPM, comme décrit dans la section Module vTPM (Virtual Trusted Platform Module).
  • earlyBootReportEvent : indique si le contrôle d'intégrité de la séquence d'amorçage a réussi. Fournit également des détails sur les valeurs des registres de configuration de plate-forme à partir de la règle de référence et de la séquence de démarrage la plus récente qui ont permis d'obtenir ce résultat.
  • lateBootReportEvent : indique si le contrôle d'intégrité de la séquence de démarrage tardif a réussi. Fournit également des détails sur les valeurs des registres de configuration de plate-forme à partir de la règle de référence et de la séquence de démarrage la plus récente qui ont permis d'obtenir ce résultat.
  • setShieldedInstanceIntegrityPolicy : consigne chaque mise à jour de la règle d'intégrité de référence.
  • shutdownEvent : consigne chaque arrêt de l'instance de VM.
  • startupEvent : consigne chaque démarrage de l'instance de VM. C'est la valeur bootCounter qui nous intéresse dans cet événement, car elle identifie le nombre de redémarrages de l'instance.
  • updateShieldedInstanceConfig : consigne chaque activation ou désactivation de l'une des options de VM protégée.

Les journaux affichent généralement les événements dans l'ordre suivant : startupEvent, earlyBootReportEvent, lateBootReportEvent et enfin shutdownEvent. Ils comportent tous la même valeur bootCounter, qui les identifie comme appartenant à la même séquence de démarrage d'instance de VM.

Si vous mettez à jour la règle d'intégrité de référence en réponse à un échec d'intégrité attendu sur une instance de VM, des événements supplémentaires earlyBootReportEvent et lateBootReportEvent s'affichent, décrivant les nouvelles mesures à la règle d'intégrité de référence. L'exemple suivant vous montre la séquence attendue :

  • startupEvent
  • earlyBootReportEvent, qui compare la règle de référence d'origine à la séquence de démarrage la plus récente (réussite)
  • lateBootReportEvent, qui compare la règle de référence d'origine à la séquence de démarrage la plus récente (échec)
  • setShieldedInstanceIntegrityPolicy, qui, lors de la mise à jour de la règle d'intégrité de référence, la définit sur les mesures enregistrées lors de la dernière séquence de démarrage
  • earlyBootReportEvent, qui compare la nouvelle règle de référence à la séquence de démarrage la plus récente (réussite)
  • lateBootReportEvent, qui compare la nouvelle règle de référence à la séquence de démarrage la plus récente (réussite)

Windows

earlyBootReportEvent

earlyBootReportEvent contient les sections et éléments suivants :

  • actualMeasurements : contient les valeurs des registres de configuration de plate-forme (PCR) pour la séquence de démarrage la plus récente. Les valeurs PCR identifient les composants de démarrage et l'ordre de chargement des composants utilisés par la dernière séquence de démarrage. Elles sont comparées à la règle d'intégrité de référence, dont les valeurs sont capturées dans la section policyMeasurements pour déterminer toute modification de la séquence de démarrage de l'instance de VM. Les éléments de la section actualMeasurements peuvent varier en fonction du système d'exploitation, de la distribution et de la configuration. La section comprend généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le code du gestionnaire de démarrage UEFI et sur les tentatives de démarrage.
    • 2 : contient la valeur de PCR5, qui comprend des informations sur la table de partition GUID du disque. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 3 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.
  • policyEvaluationPassed : indique si la vérification d'une section spécifique de la séquence de démarrage par rapport à la règle d'intégrité de référence a réussi ou non.

  • policyMeasurements : contient les valeurs PRC de référence que la validation d'intégrité utilise comme valeurs attendues. La section policyMeasurements peut varier en fonction du système d'exploitation, de la distribution et de la configuration, mais inclut généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le code du gestionnaire de démarrage UEFI et sur les tentatives de démarrage. Cette valeur n'est pas incluse dans le premier démarrage.
    • 2 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.

Pour apprendre à exploiter les valeurs PCR de l'événement earlyBootReportEvent afin de diagnostiquer un échec de validation d'intégrité du démarrage, consultez la section Déterminer la cause de l'échec de la validation d'intégrité du démarrage.

lateBootReportEvent

lateBootReportEvent contient les sections et éléments suivants :

  • actualMeasurements : contient les valeurs des registres de configuration de plate-forme (PCR) pour la séquence de démarrage la plus récente. Les valeurs PCR identifient les composants de démarrage et l'ordre de chargement des composants utilisés par la dernière séquence de démarrage. Elles sont comparées à la règle d'intégrité de référence, dont les valeurs sont capturées dans la section policyMeasurements pour déterminer toute modification de la séquence de démarrage de l'instance de VM. Les éléments de la section actualMeasurements peuvent varier en fonction du système d'exploitation, de la distribution et de la configuration. La section comprend généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le code du gestionnaire de démarrage UEFI et sur les tentatives de démarrage.
    • 2 : contient la valeur de PCR5, qui comprend des informations sur la table de partition GUID du disque. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 3 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.
    • 4 : contient la valeur de PCR11, qui comprend des informations sur le contrôle des accès de BitLocker Drive Encryption.
    • 5 : contient la valeur de PCR12, qui comprend des informations sur les événements de données. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 6 : contient la valeur de PCR13, qui comprend des informations sur le noyau Windows et sur les pilotes de démarrage.
    • 7 : contient la valeur de PCR14, qui comprend des informations sur les autorités de démarrage de Windows.
  • policyEvaluationPassed : indique si la vérification d'une section spécifique de la séquence de démarrage par rapport à la règle d'intégrité de référence a réussi ou non.

  • policyMeasurements : contient les valeurs PRC de référence que la validation d'intégrité utilise comme valeurs attendues. La section policyMeasurements peut varier en fonction du système d'exploitation, de la distribution et de la configuration, mais inclut généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le code du gestionnaire de démarrage UEFI et sur les tentatives de démarrage.
    • 2 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.
    • 3 : contient la valeur de PCR11, qui comprend des informations sur le contrôle des accès de BitLocker Drive Encryption.
    • 4 : contient la valeur de PCR13, qui comprend des informations sur le noyau Windows et sur les pilotes de démarrage.
    • 5 : contient la valeur de PCR14, qui comprend des informations sur les autorités de démarrage de Windows.

Pour apprendre à exploiter les valeurs PCR de l'événement lateBootReportEvent afin de diagnostiquer un échec de validation d'intégrité du démarrage, consultez la section Déterminer la cause de l'échec de la validation d'intégrité du démarrage.

Linux

earlyBootReportEvent

earlyBootReportEvent contient les sections et éléments suivants :

  • actualMeasurements : contient les valeurs des registres de configuration de plate-forme (PCR) pour la séquence de démarrage la plus récente. Les valeurs PCR identifient les composants de démarrage et l'ordre de chargement des composants utilisés par la dernière séquence de démarrage. Elles sont comparées à la règle d'intégrité de référence, dont les valeurs sont capturées dans la section policyMeasurements pour déterminer toute modification de la séquence de démarrage de l'instance de VM. Les éléments de la section actualMeasurements peuvent varier en fonction du système d'exploitation, de la distribution et de la configuration. La section comprend généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le shim du système d'exploitation.
    • 2 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.
  • policyEvaluationPassed : indique si la vérification d'une section spécifique de la séquence de démarrage par rapport à la règle d'intégrité de référence a réussi ou non.

  • policyMeasurements : contient les valeurs PRC de référence que la validation d'intégrité utilise comme valeurs attendues. La section policyMeasurements peut varier en fonction du système d'exploitation, de la distribution et de la configuration, mais inclut généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le shim du système d'exploitation. Cette valeur n'est pas incluse dans le premier démarrage.
    • 2 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.

Pour apprendre à exploiter les valeurs PCR de l'événement earlyBootReportEvent afin de diagnostiquer un échec de validation d'intégrité du démarrage, consultez la section Déterminer la cause de l'échec de la validation d'intégrité du démarrage.

lateBootReportEvent

lateBootReportEvent contient les sections et éléments suivants :

  • actualMeasurements : contient les valeurs des registres de configuration de plate-forme (PCR) pour la séquence de démarrage la plus récente. Les valeurs PCR identifient les composants de démarrage et l'ordre de chargement des composants utilisés par la dernière séquence de démarrage. Elles sont comparées à la règle d'intégrité de référence, dont les valeurs sont capturées dans la section policyMeasurements pour déterminer toute modification de la séquence de démarrage de l'instance de VM. Les éléments de la section actualMeasurements peuvent varier en fonction du système d'exploitation, de la distribution et de la configuration. La section comprend généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le bootloader de la deuxième phase et sur le noyau.
    • 2 : contient la valeur de PCR5, qui comprend des informations sur la table de partition GUID du disque. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 3 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.
  • policyEvaluationPassed : indique si la vérification d'une section spécifique de la séquence de démarrage par rapport à la règle d'intégrité de référence a réussi ou non.

  • policyMeasurements : contient les valeurs PRC de référence que la validation d'intégrité utilise comme valeurs attendues. La section policyMeasurements peut varier en fonction du système d'exploitation, de la distribution et de la configuration, mais inclut généralement les éléments suivants :

    • 0 : contient la valeur de PCR0, qui comprend des informations sur les composants du micrologiciel et la technologie de chiffrement de la mémoire active. Ce registre de configuration de plate-forme diffère du profil de micrologiciel de la plate-forme TCG PCClient car il ne mesure que les événements suivants :
      • EV_S_CRTM_VERSION, la version du micrologiciel Compute Engine
      • EV_NONHOST_INFO, qui représente la technologie de chiffrement de la mémoire
      • EV_SEPARATOR, l'événement délimiteur spécifié que le micrologiciel mesure lorsqu'il n'ajoutera plus d'événements PCR0. Cela signifie que PCR0 a une valeur statique pendant toute la durée de vie d'une VM. La valeur ne change pour les nouvelles VM qu'après les mises à jour de versions majeures du micrologiciel ou le changement de la technologie de chiffrement. Cet élément n'est pas utilisé lors de la validation de la séquence de démarrage la plus récente par rapport à la règle d'intégrité de référence.
    • 1 : contient la valeur de PCR4, qui comprend des informations sur le bootloader de la deuxième phase et sur le noyau.
    • 2 : contient la valeur de PCR7, qui comprend des informations sur la règle de démarrage sécurisé de l'instance.

Pour apprendre à exploiter les valeurs PCR de l'événement lateBootReportEvent afin de diagnostiquer un échec de validation d'intégrité du démarrage, consultez la section Déterminer la cause de l'échec de la validation d'intégrité du démarrage.

Utiliser BitLocker avec des images de VM protégées

Vous pouvez activer BitLocker pour les disques de démarrage Windows qui font partie des images de VM protégées. Les images de VM protégées offrent des fonctionnalités de sécurité telles qu'un micrologiciel compatible UEFI, le démarrage sécurisé, le démarrage mesuré protégé par vTPM et la surveillance de l'intégrité. vTPM et la surveillance de l'intégrité sont activés par défaut, et Google recommande l'activation du démarrage sécurisé si possible.

Si vous décidez d'activer BitLocker sur un disque de démarrage Windows qui fait partie d'une image de VM protégée, nous vous recommandons fortement d'enregistrer la clé de récupération dans un emplacement sûr. En effet, sans cette clé, vous ne pouvez pas récupérer les données.

Tenez compte des points suivants avant d'activer BitLocker sur un disque de démarrage Windows faisant partie d'une image de VM protégée :

  • Sur les disques de démarrage de VM protégée, BitLocker stocke les clés de chiffrement à l'aide du module vTPM, lequel est associé en permanence à la VM sur laquelle il a été créé. Cela signifie que vous pouvez restaurer un instantané du disque de démarrage de VM protégée vers un autre disque persistant. En revanche, vous ne pouvez pas le déchiffrer, car le module vTPM contenant les clés BitLocker n'est pas disponible. Si vous possédez une clé de récupération, vous pouvez récupérer les données en suivant les instructions du guide de récupération BitLocker. Sans clé de récupération, les données sur le disque sont irrécupérables.

  • Sur les disques de données de VM protégée, les données de disque persistant sont chiffrées par défaut. L'activation de BitLocker en plus du chiffrement de disque persistant n'affecte pas le débit, mais peut légèrement augmenter l'utilisation du processeur virtuel. L'activation de BitLocker sur les disques de données associés à la VM n'implique pas les mêmes enjeux de récupération que pour les disques de démarrage. Cela est dû au fait que les clés de chiffrement BitLocker pour les disques de données ne sont pas stockées sur le module vTPM. Si vous ne parvenez plus à déverrouiller le disque normalement et que vous disposez de la clé de récupération, vous pouvez associer le disque à une autre VM non chiffrée et la récupérer à partir de là. Sans clé de récupération, les données sur le disque sont irrécupérables.

Autorisation Identity and Access Management

Les VM protégées utilisent les autorisations IAM.

Les autorisations Compute Engine suivantes sont nécessaires pour effectuer des opérations liées aux VM protégées :

  • compute.instances.updateShieldedInstanceConfig : permet à l'utilisateur de modifier les options de la VM protégée sur une instance de VM.
  • compute.instances.setShieldedInstanceIntegrityPolicy : permet à l'utilisateur de mettre à jour la règle d'intégrité de référence sur une instance de VM.
  • compute.instances.getShieldedInstanceIdentity : permet à l'utilisateur de récupérer des informations relatives aux clés d'endossement à partir du vTPM.

Les autorisations associées aux VM protégées sont accordées aux rôles Compute Engine suivants :

  • roles/compute.instanceAdmin.v1
  • roles/compute.securityAdmin

Vous pouvez également accorder des autorisations relatives aux VM protégées aux rôles personnalisés.

Contraintes en matière de règles d'administration pour les VM protégées

Vous pouvez définir la contrainte de stratégie d'entreprise constraints/compute.requireShieldedVm sur True pour exiger que les instances de VM Compute Engine créées dans votre organisation soient des instances de VM protégées.

Découvrez comment définir la contrainte constraints/compute.requireShieldedVm dans la section Utiliser des contraintes booléennes dans la règle d'administration. Vous devez être un administrateur de règle d'administration pour définir une contrainte.

Limites

Les VM protégées ne sont pas compatibles avec les instances bare metal.

Étapes suivantes