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.

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 la console Google Cloud, accédez à la page Explorateur de métriques :

    Accéder à l'explorateur de métriques

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez Boot Validation dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :
    1. Dans le menu Ressources actives, sélectionnez Instance de VM.
    2. Dans le menu Catégories de métriques actives, sélectionnez Instance.
    3. Dans le menu Métriques actives, sélectionnez Validation d'amorçage ou Validation de démarrage tardif.
      • 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.
    4. Cliquez sur Appliquer.
  3. Pour supprimer des séries temporelles de l'affichage, utilisez l'élément Filtre.

  4. Pour combiner des séries temporelles, utilisez les menus de l'élément Agrégation. Par exemple, pour afficher l'utilisation du processeur pour vos VM en fonction de leur zone, définissez le premier menu sur Moyenne et le second sur zone.

    Toutes les séries temporelles sont affichées lorsque le premier menu de l'élément Agrégation est défini sur Non agrégé. Les paramètres par défaut de l'élément Aggregation (Agrégation) sont déterminés par le type de métrique que vous avez sélectionné.

  5. Pour le quota et les autres métriques qui indiquent un échantillon par jour, procédez comme suit :
    1. Dans le volet Affichage, définissez le type de widget sur Graphique à barres empilées.
    2. Définissez la période sur au moins une semaine.

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 les fonctions Cloud Run. Pour en savoir plus, consultez les pages Présentation du routage et du stockage 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'option --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 INSTANCE_NAME \
    --zone=ZONE \
    --shielded-learn-integrity-policy

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de la VM.
  • ZONE : zone où se trouve la VM.

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/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setShieldedInstanceIntegrityPolicy?key=YOUR_API_KEY
{
  "updateAutoLearnPolicy": true
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la VM.
  • INSTANCE_NAME : nom de la VM.
  • ZONE : zone où se trouve la VM.
  • YOUR_API_KEY : clé API qui vous permet d'accéder à l'API.

Étape suivante