Surveiller l'intégrité sur des instances de VM protégées

Dans cette rubrique, vous allez découvrir comment surveiller l'intégrité du processus de démarrage des instances de VM protégées à l'aide de Stackdriver, identifier la cause d'un échec de validation d'intégrité et 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 Stackdriver

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

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

  1. Accédez à Stackdriver Monitoring
  2. Dans le menu déroulant situé dans l'angle supérieur droit de la console Stackdriver Monitoring, sélectionnez le compte Stackdriver contenant le projet GCP dans lequel réside votre instance de VM.
  3. Dans le volet de navigation de gauche, sélectionnez Ressources, puis Explorateur de métriques.
  4. Dans le champ Rechercher le type de ressource et la métrique, saisissez instance et sélectionnez le type de ressource Instance de VM GCE.
  5. Sélectionnez l'une des métriques suivantes :

    • La métrique 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.
    • La métrique 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.
  6. Vous pouvez éventuellement appliquer un filtre pour limiter l'affichage des informations sur les métriques, regrouper les informations sur les métriques affichées ou agréger les données de métriques. Pour en savoir plus, consultez la section Configuration supplémentaire.

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 page Présentation des alertes.

  1. Accédez à Stackdriver Monitoring
  2. Dans le menu déroulant situé dans l'angle supérieur droit de la console Stackdriver Monitoring, sélectionnez le compte Stackdriver contenant le projet GCP dans lequel réside votre instance de VM.
  3. Dans le volet de navigation de gauche, cliquez sur Alertes, puis sur Créer une règle.
  4. Cliquez sur Ajouter une condition.
  5. Dans le message Essayez notre nouvelle UI pour créer des conditions d'alerte, sélectionnez Activer pour utiliser la nouvelle interface de conditions d'alerte (obligatoire).
  6. Cliquez sur Sélectionner pour l'option Changement/Absence de seuil/taux de métrique.
  7. Dans le champ Rechercher le type de ressource et la métrique, saisissez instance et sélectionnez le type de ressource Instance de VM GCE.
  8. Sélectionnez l'une des métriques suivantes :

    • La métrique 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.
    • La métrique 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.
  9. Pour Filtrer, filtrez par état=échec.

  10. Pour Grouper par, groupez par état.

  11. Pour Déclenchement de condition si, sélectionnez À chaque infraction de série.

  12. Pour Condition, spécifiez est supérieur à 0 pendant 1 minute.

  13. Cliquez sur Enregistrer la condition.

  14. Ajoutez une ou plusieurs notifications.

  15. Vous pouvez éventuellement ajouter de la documentation pour aider le destinataire des notifications à comprendre comment gérer l'alerte.

  16. Nommez la règle.

  17. Sélectionnez Enregistrer la règle.

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

  1. Accédez à la page des 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 Stackdriver 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 pcrNum 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 Stackdriver 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édez à la page des 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 Stackdriver Logging.
  4. Recherchez les entrées de journal earlyBootReportEvent et lateBootReportEvent les plus récentes pour voir celles dont la valeur policyEvaluationPassed est fausse.
  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 d'amorçage 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 arrêter l'instance de VM et rechercher la cause de l'échec.

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://www.googleapis.com/compute/alpha/projects/my-project/zones/us-central1-b/instances/my-instance/setShieldedInstanceIntegrityPolicy?key={YOUR_API_KEY}
{
  "updateAutoLearnPolicy": true
}

Étape suivante

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine