---
# System prepended metadata

title: 'GCP : VM log 出現 earlyBootReportEvent 和 lateBootReportEvent error '

---

# 現象
從 VM log 會看到以下 error
![image](https://hackmd.io/_uploads/SkPyeiHB6.png)

點選 Open In Logs Explorer, 展開 policyMeasurements 和 actualMeasurements 區塊, 會發現有些 PCR 的值不同, 所以產生這二個 error event
![image](https://hackmd.io/_uploads/SyPeesrHa.png)
![image](https://hackmd.io/_uploads/rkb-eiBSa.png)

# 原因
如果 VM 開機後的內容, 和上次 VM 內容不一樣, 會出現此 error

# 說明
Shielded VM (安全強化型虛擬機器) 可讓您的 Compute Engine 虛擬機器執行個體具有可驗證的完整性，因此可以確信您的執行個體未受到啟動級或核心級惡意軟體或 rootkit 的危害。
其中 earlyBootReportEvent 和 lateBootReportEvent 為完整性監控事件
- earlyBootReportEvent：標識前期啟動序列的完整性檢查是否通過，並提供基準和最近啟動序列（進行比較以作出判定）中 PCR 值的詳細資訊。
- lateBootReportEvent：標識後期啟動序列的完整性檢查是否通過，並提供基準和最近啟動序列（進行比較以作出判定）中 PCR 值的詳細資訊。

# 解決方法
1. 想要檢查 VM 每次開機的完整性, 請在某一版內容不會變動的 VM ,  執行以下 command, 更新 integrity policy baseline 到此版本 VM (my-instance 改成自己的 VM 名稱)
gcloud compute instances update my-instance \
    --shielded-learn-integrity-policy
2. 不想檢查 VM 每次開機的完整性, 請修改 VM 設定
- 在 Shielded VM -> 不要勾選 Integrity Monitoring 

# 參考資料
https://cloud.google.com/compute/shielded-vm/docs/integrity-monitoring#diagnosing-failure