Integrität auf Shielded VMs beobachten

In diesem Thema wird beschrieben, wie Sie mit Cloud Monitoring die Bootintegrität von Shielded VM-Instanzen beobachten können, für die das Integritätsmonitoring aktiviert ist, die Ursache eines Fehlers bei der Integritätsprüfung feststellen und die Referenz der Integritätsrichtlinie aktualisieren.

VM-Bootintegrität mithilfe von Monitoring überwachen

Verwenden Sie Cloud Monitoring, um sich Ereignisse der Integritätsprüfung anzusehen und zugehörige Benachrichtigungen festzulegen. Mit Cloud Logging können Sie Details zu diesen Ereignissen aufrufen.

Ereignisse der Integritätsprüfung ansehen

So rufen Sie mit dem Metrics Explorer die Messwerte für eine überwachte Ressource auf:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Metrics Explorer aus:

    Zum Metrics Explorer

  2. Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie Boot Validation in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:
    1. Wählen Sie im Menü Aktive Ressourcen die Option VM-Instanz aus.
    2. Wählen Sie im Menü Aktive Messwertkategorien die Option Instanz aus.
    3. Wählen Sie im Menü Aktive Messwerte Early Boot Validation oder Late Boot Validation aus.
      • Early Boot Validation zeigt an, ob der frühe Teil der letzten Bootsequenz die Prüfung bestanden hat. Das ist der Teil der Bootsequenz vom Start der UEFI-Firmware bis zur Übergabe der Kontrolle an den Bootloader.
      • Late Boot Validation zeigt an, ob der späte Teil der letzten Bootsequenz die Prüfung bestanden hat. Das ist der Teil der Bootsequenz vom Bootloader bis zum Abschluss. Hierbei ist das Laden des Betriebssystemkernels eingeschlossen.
    4. Klicken Sie auf Anwenden.
  3. Verwenden Sie das Element Filter, um Zeitreihen aus der Anzeige zu entfernen.

  4. Verwenden Sie zum Kombinieren von Zeitreihen die Menüs im Element Aggregation. Wenn Sie beispielsweise die CPU-Auslastung für Ihre VMs basierend auf ihrer Zone anzeigen möchten, legen Sie das erste Menü auf Mittelwert und das zweite Menü auf Zone fest.

    Alle Zeitreihen werden angezeigt, wenn das erste Menü des Elements Aggregation auf Nicht aggregiert gesetzt ist. Die Standardeinstellungen für das Element Aggregation werden durch den ausgewählten Messwerttyp bestimmt.

  5. Gehen Sie für Kontingente und andere Messwerte, die eine Stichprobe pro Tag melden, so vor:
    1. Legen Sie im Bereich Anzeige den Widget-Typ auf Gestapeltes Balkendiagramm fest.
    2. Legen Sie als Zeitraum mindestens eine Woche fest.

Benachrichtigungen für Ereignisse der Integritätsprüfung festlegen

Legen Sie Benachrichtigungen für die Messwerte Prüfung des frühen Starts und Prüfung des späten Starts fest, falls Sie informiert werden möchten, wenn bei Ihrer VM-Instanz die Startprüfung fehlschlägt. Weitere Informationen zu Benachrichtigungen finden Sie unter Einführung in Benachrichtigungen.

Details zu Ereignissen der Integritätsprüfung ansehen

  1. Zur Seite "VM-Instanzen"
  2. Klicken Sie auf die Instanz-ID, um die Seite VM-Instanzdetails zu öffnen.
  3. Klicken Sie unter Logs auf Cloud Logging.
  4. Suchen Sie nach dem earlyBootReportEvent- oder lateBootReportEvent-Logeintrag, den Sie einblenden möchten.
  5. Maximieren Sie den Logeintrag > jsonPayload > earlyBootReportEvent bzw. lateBootReportEvent. In diesem Abschnitt gibt das Element policyEvaluationPassed an, ob der entsprechende Teil der Bootsequenz die Prüfung gemäß der Referenz der Integritätsrichtlinie bestanden hat.
  6. Maximieren Sie den Abschnitt actualMeasurements und die darin enthaltenen nummerierten Elemente, damit die PCR-Werte (Platform Configuration Register) angezeigt werden, die aus der letzten Bootsequenz gespeichert wurden. Die PCR-Werte werden in den value-Elementen der nummerierten Elemente gespeichert. Die PCR-Werte geben die Startkomponenten und ihre Ladereihenfolge in der letzten Startsequenz an. Sie werden mit der Referenz der Integritätsrichtlinie verglichen, um festzustellen, ob sich die Startsequenz der VM-Instanz geändert hat. Weitere Informationen zur Bedeutung von PCR-Werten finden Sie unter Integritätsüberwachungsereignisse.
  7. Maximieren Sie den Abschnitt policyMeasurements, um die PCR-Werte einzublenden, die für die Referenz der Integritätsrichtlinie gespeichert wurden.

Antworten auf Ereignisse der Integritätsprüfung automatisieren

Sie können Antworten auf Bootvalidierungsereignisse automatisieren, indem Sie die Cloud Logging-Logs exportieren und in einem anderen Dienst wie Cloud Functions verarbeiten. Weitere Informationen finden Sie unter Routing und Speicher und Antworten auf Fehler der Integritätsprüfung automatisieren.

Ursache für das Fehlschlagen der Bootintegritätsprüfung ermitteln

  1. Zur Seite "VM-Instanzen"
  2. Klicken Sie auf die Instanz-ID, um die Seite VM-Instanzdetails zu öffnen.
  3. Klicken Sie unter Logs auf Cloud Logging.
  4. Suchen Sie die neuesten Logeinträge des Typs earlyBootReportEvent und lateBootReportEvent und prüfen Sie, bei welchem Eintrag für policyEvaluationPassed der Wert false angezeigt wird.
  5. Maximieren Sie den Logeintrag > jsonPayload > earlyBootReportEvent bzw. lateBootReportEvent.
  6. Maximieren Sie die Abschnitte actualMeasurements und policyMeasurements sowie die darin enthaltenen nummerierten Elemente, um die PCR-Werte (Platform Configuration Register) einzublenden, die aus der letzten Bootsequenz und der Referenz der Integritätsrichtlinie gespeichert wurden. Die PCR-Werte geben die Startkomponenten und ihre Ladereihenfolge in der letzten Startsequenz und der Referenz der Integritätsrichtlinie an.
  7. Vergleichen Sie die PCR-Werte in den Abschnitten actualMeasurements und policyMeasurements, um festzustellen, wo die aktuelle Bootsequenz und die Referenz der Integritätsrichtlinie voneinander abweichen. Unterschiedliche Werte führen zum Fehlschlagen der Prüfung. Beachten Sie, dass die Elementnummern in diesen Abschnitten nur selten den PCR-Nummern entsprechen. Elemente mit ähnlichen Nummern in actualMeasurements und policyMeasurements können für verschiedene PCRs stehen. Bei der frühen Bootsequenz für Windows und Linux sind z. B. das Element 3 in actualMeasurements und das Element 2 in policyMeasurements beide PCR7-Werte.

  8. Prüfen Sie die Ereignisse der Integritätsüberwachung, um festzustellen, wofür der geänderte PCR-Wert steht, und untersuchen Sie, ob diese Änderung vorgesehen war.

Referenz der Integritätsrichtlinie aktualisieren

Die anfängliche Referenz der Integritätsrichtlinie wird bei der Erstellung der Instanz vom Start-Image abgeleitet, dem implizit vertraut wird. Das Aktualisieren der Referenz der Integritätsrichtlinie erfolgt mithilfe der aktuellen Instanzkonfiguration. Die VM-Instanz muss ausgeführt werden, während Sie die Referenz aktualisieren.

Sie sollten die Referenz nach allen geplanten startspezifischen Änderungen in der Instanzkonfiguration aktualisieren, z. B. nach Kernelaktualisierungen oder der Kerneltreiberinstallation, da diese zum Fehlschlagen der Integritätsprüfung führen. Falls eine Integritätsprüfung unerwartet fehlschlägt, sollten Sie versuchen, den Grund für den Fehler herauszufinden, und sich darauf vorbereiten, die Instanz gegebenenfalls zu stoppen.

Sie benötigen die Berechtigung setShieldedInstanceIntegrityPolicy, um die Referenz der Integritätsrichtlinie aktualisieren zu können.

Nutzen Sie dabei das folgende Verfahren.

gcloud

Die Referenz der Integritätsrichtlinie der VM-Instanz können Sie mit dem Befehl compute instances update und dem Flag --shielded-learn-integrity-policy aktualisieren.

Im folgenden Beispiel wird die Referenz der Integritätsrichtlinie für die VM-Instanz my-instance zurückgesetzt:

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

API

Aktualisieren Sie die Referenz der Integritätsrichtlinie für die VM-Instanz mithilfe des Anfragetextelements updateAutoLearnPolicy mit der Methode setShieldedInstanceIntegrityPolicy.

Im folgenden Beispiel wird die Referenz der Integritätsrichtlinie für eine VM-Instanz zurückgesetzt:

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

Nächste Schritte