Surveiller l'intégrité des VM protégées

Cet article décrit comment surveiller l'intégrité du démarrage des instances de VM protégées pour lesquelles la surveillance de l'intégrité est activée à l'aide de Cloud Monitoring. Il explique également comment identifier la cause d'un échec de validation de l'intégrité et comment mettre à jour la règle d'intégrité de référence.

Avant de commencer

Surveiller l'intégrité du processus de démarrage de la VM à l'aide de Cloud Monitoring

Servez-vous de Cloud Monitoring pour afficher les événements de validation d'intégrité et définir des alertes sur ces événements, ainsi que de Cloud Logging pour consulter les informations sur ces événements.

Afficher les événements de validation d'intégrité

Pour afficher les métriques d'une ressource surveillée à l'aide de l'Explorateur de métriques, procédez comme suit :

  1. Dans Google Cloud Console, accédez à Surveillance ou utilisez le bouton suivant :
    Accéder à Surveillance
  2. Dans le volet de navigation "Surveillance", cliquez sur  Explorateur de métriques.
  3. Assurez-vous que l'onglet Metric (Métrique) est sélectionné.
  4. Cliquez dans la zone intitulée Find resource type and metric (Rechercher un type de ressource et une métrique), puis sélectionnez l'élément dans le menu ou saisissez le nom de la ressource et de la métrique. Remplissez les champs de cette zone de texte à l'aide des informations suivantes :
    1. Pour le champ Ressource, sélectionnez ou saisissez gce_instance.
    2. Pour le champ Métrique, choisissez l'une des métriques suivantes :
      • Validation de l'amorçage : indique l'état de réussite/échec concernant la partie d'amorçage de la dernière séquence de démarrage. 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.
      • Validation du démarrage tardif : indique l'état de réussite/échec concernant la partie de démarrage tardif de la dernière séquence de démarrage. Le démarrage tardif représente la séquence de démarrage, de l'exécution du bootloader jusqu'à la fin du démarrage. Elle inclut le chargement du noyau du système d'exploitation.
  5. Utilisez les menus Filtre, Grouper par et Agrégation pour modifier le mode d'affichage des données. Par exemple, vous pouvez grouper les données par libellé de ressource ou de métrique. Pour plus d'informations, consultez la page Sélectionner des métriques.

Définir des alertes sur les événements de validation d'intégrité

Définissez des alertes sur les valeurs des métriques Validation d'amorçage et Validation de démarrage tardif si vous souhaitez être averti en cas d'échec de la validation du démarrage sur votre instance de VM. Pour en savoir plus sur la configuration des alertes, consultez la section Présentation des alertes.

Afficher les informations sur l'événement de validation d'intégrité

  1. Accéder à la page Instances de VM
  2. Cliquez sur l'ID de l'instance pour ouvrir la page Informations sur l'instance de VM.
  3. Sous Journaux, cliquez sur Cloud Logging.
  4. Recherchez l'entrée de journal earlyBootReportEvent ou lateBootReportEvent que vous souhaitez examiner.
  5. Développez l'entrée de journal > jsonPayload > earlyBootReportEvent ou lateBootReportEvent, selon le cas. Dans cette section, l'élément policyEvaluationPassed indique si la vérification de la section de la séquence de démarrage à partir de la règle d'intégrité de référence a réussi ou non.
  6. Développez la section actualMeasurements et les éléments numérotés pour afficher les valeurs du registre de configuration de plate-forme (PCR, Platform Configuration Register) enregistrées dans la dernière séquence de démarrage. Les valeurs du PCR sont enregistrées dans les éléments value des éléments numérotés. Les valeurs du 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 pour déterminer si la séquence de démarrage de l'instance de VM a été modifiée. Pour en savoir plus sur les PCR, consultez la section Événements de surveillance de l'intégrité.
  7. Développez la section policyMeasurements pour afficher les valeurs du PCR enregistrées pour la règle d'intégrité de référence.

Automatiser les réponses aux événements de validation d'intégrité

Pour automatiser les réponses aux événements de validation de démarrage, exportez les journaux Cloud Logging et traitez-les dans un autre service tel que Cloud Functions. Pour en savoir plus, consultez les pages Présentation des exportations de journaux et Automatiser les réponses aux échecs de validation d'intégrité.

Déterminer la cause de l'échec de la validation d'intégrité du démarrage

  1. Accéder à la page Instances de VM
  2. Cliquez sur l'ID de l'instance pour ouvrir la page Informations sur l'instance de VM.
  3. Sous Journaux, cliquez sur Cloud Logging.
  4. Recherchez les entrées de journal earlyBootReportEvent et lateBootReportEvent les plus récentes pour voir celles dont la valeur policyEvaluationPassed est définie sur false.
  5. Développez l'entrée de journal > jsonPayload > earlyBootReportEvent ou lateBootReportEvent, selon le cas.
  6. Développez les sections actualMeasurements et policyMeasurements ainsi que les éléments numérotés pour afficher les valeurs du registre de configuration de plate-forme (PCR) respectivement enregistrées dans la dernière séquence de démarrage et la règle d'intégrité de référence. Les valeurs du 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 et la règle d'intégrité de référence.
  7. Comparez les valeurs du PCR figurant dans les sections actualMeasurements et policyMeasurements pour identifier l'écart entre la dernière séquence de démarrage et la règle d'intégrité de référence. Quel que soit le résultat de la comparaison, le problème à l'origine de l'échec de la validation est dû à des valeurs différentes. Sachez que les numéros des éléments figurant dans ces sections correspondent rarement aux numéros du PCR et que des éléments portant des numéros similaires dans les sections actualMeasurements et policyMeasurements peuvent représenter différents PCR. Par exemple, dans la séquence de démarrage précoce de Windows et Linux, l'élément 3 de la section actualMeasurements et l'élément 2 de la section policyMeasurements représentent tous les deux PCR7.

  8. Consultez Événements de surveillance de l'intégrité pour déterminer ce que représente le PCR modifié et savoir s'il s'agit d'un changement prévu.

Mettre à jour la règle d'intégrité de référence

La règle d'intégrité de référence initiale est issue de l'image de démarrage implicitement approuvée lors de la création de l'instance. La mise à jour de la référence entraîne la modification de la règle d'intégrité de référence à l'aide de la configuration d'instance actuelle. L'instance de VM doit être en cours d'exécution lorsque vous mettez à jour la référence.

Vous devez mettre à jour la référence après toute modification spécifique au démarrage planifié dans la configuration de l'instance, comme les mises à jour du noyau ou l'installation du pilote du noyau. Sinon, la validation d'intégrité risque d'échouer. En cas d'échec inattendu de la validation d'intégrité, vous devez rechercher la cause de l'échec et vous préparer à arrêter l'instance si nécessaire.

Vous devez disposer de l'autorisation setShieldedInstanceIntegrityPolicy pour pouvoir mettre à jour la règle d'intégrité de référence.

Pour mettre à jour la règle d'intégrité de référence, procédez comme suit :

gcloud

Mettez à jour la règle d'intégrité de référence de l'instance de VM à l'aide de la commande compute instances update avec l'indicateur --shielded-learn-integrity-policy.

Dans l'exemple suivant, la règle d'intégrité de référence est réinitialisée pour l'instance de VM my-instance :

gcloud compute instances update my-instance \
    --shielded-learn-integrity-policy

API

Mettez à jour la règle d'intégrité de référence de l'instance de VM à l'aide de l'élément de corps de la requête updateAutoLearnPolicy avec la méthode setShieldedInstanceIntegrityPolicy.

Dans l'exemple suivant, la règle d'intégrité de référence est réinitialisée pour une instance de VM.

PATCH https://compute.googleapis.com/compute/alpha/projects/my-project/zones/us-central1-b/instances/my-instance/setShieldedInstanceIntegrityPolicy?key={YOUR_API_KEY}
{
  "updateAutoLearnPolicy": true
}

Étapes suivantes