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.

Vorbereitung

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 Metrics Explorer die Messwerte für eine überwachte Ressource auf:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring aus:
    Zur Google Cloud Console

    Wenn dies der erste Zugriff auf Cloud Monitoring für dieses Google Cloud-Projekt ist, wird über Cloud Monitoring ein Arbeitsbereich erstellt. In der Regel geschieht dies automatisch innerhalb weniger Minuten. Wenn Sie aufgefordert werden, einen Arbeitsbereich auszuwählen oder zu erstellen, wählen Sie „Erstellen“ aus.

  2. Klicken Sie im Navigationsbereich von Monitoring auf Metrics Explorer.
  3. Prüfen Sie, ob der Tab Messwert ausgewählt ist.
  4. Klicken Sie in das Feld mit der Bezeichnung Ressourcentyp und Messwert finden und treffen Sie Ihre Auswahl über das Menü oder geben Sie den Namen für die Ressource und den Messwert ein. Verwenden Sie die folgenden Informationen, um die Felder für dieses Textfeld auszufüllen:
    1. Wählen Sie für Resource type den Wert gce_instance aus oder geben Sie ihn ein.
    2. Wählen Sie unter Metric einen der folgenden Messwerte 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.
  5. Mit den Menüs Filtern, Gruppieren nach und Aggregator können Sie die Darstellung der Daten ändern. Sie können beispielsweise nach Ressourcen- oder Messwertlabels gruppieren. Weitere Informationen finden Sie unter Messwerte auswählen.

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 Übersicht über Logexporte und Antworten auf Fehler der Integritätsprüfung automatisieren.

Ursache für das Fehlschlagen der Startintegritä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
}

Weitere Informationen