如果您使用活動記錄查看 Compute Engine 管理員活動和系統事件,請參閱這份指南,瞭解如何改用稽核記錄尋找類似的記錄項目。
Compute Engine 活動記錄已淘汰。您可以根據記錄名稱識別活動記錄項目:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Compute Engine 稽核記錄包含活動記錄提供的相同資訊,另外還有更多其他資訊。但稽核記錄顯示資訊的方式與活動記錄不同。因此您需要調整查詢。
如何從活動記錄遷移至稽核記錄
如要使用稽核記錄而非活動記錄,請調整查詢。請按照下列步驟操作。
尋找舊查詢。舉例來說,您可能已將這些記錄儲存在 Logs Explorer 的已儲存搜尋中,或是使用 API 或 SDK 建立指令碼。如要進一步瞭解如何監控資源,請參閱「記錄」說明文件。
將活動記錄欄位換成適當的稽核記錄欄位。請參閱表格,瞭解欄位如何相互對應。
舉例來說,如果您的舊版活動記錄查詢尋找名為
jsonPayload.resource.name的欄位,則新的稽核記錄查詢應改為尋找protoPayload.resourceName。儲存並使用新的稽核記錄查詢。舉例來說,您可以在 Cloud Logging 中建立已儲存的搜尋,或是更新指令碼。
範例
以下列舉幾個轉換後的查詢範例:
查詢與特定資源相關的活動
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read jsonPayload.resource.name="VM_NAME"
|
| 稽核記錄 | 請使用下列其中一種方式:
使用選項 1 時,「has」運算子 ( |
查詢最近的管理員活動記錄項目
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
|
| 稽核記錄 | gcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" |
查詢最近建立執行個體的記錄項目
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' |
| 稽核記錄 | gcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' |
查詢所有執行個體建立作業的開始時間
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' |
| 稽核記錄 | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' |
查詢任何作業的完成情況
| 查詢示例 | |
|---|---|
| 舊版活動記錄 | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" |
| 稽核記錄 | gcloud logging read operation.last="true" |
活動記錄和稽核記錄的差異
請參閱本節,瞭解稽核記錄的結構與活動記錄有何不同。將舊版活動記錄查詢轉換為稽核記錄查詢時,請注意這些差異。舉例來說,請在查詢中將所有舊版活動記錄欄位名稱,替換成對應的稽核記錄欄位名稱。
稽核記錄和活動記錄都會傳回記錄項目物件,但兩者有以下差異:
- 欄位名稱不同。詳情請參閱欄位名稱對應表。
- 不同欄位值,包括:
以下範例顯示記錄名稱和酬載的差異:
| 記錄項目範例 | |
|---|---|
| 舊版活動記錄 | {
insertId: "1x3bbhjg2wwvz1x"
jsonPayload: {
event_subtype: "compute.instances.stop"
...
resource: {
id: "12345678900123456789"
name: "my-instance-name"
type: "instance"
zone: "us-east1-b"
}
...
}
labels: {…}
logName: "projects/my-project/logs/compute.googleapis.com%2Factivity_log"
receiveTimestamp: "2019-08-26T12:22:44.602794616Z"
...
} |
| 稽核記錄 | {
insertId: "-w6o499e22fwk"
logName: "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload: {
...
methodName: "beta.compute.instances.stop"
...
resourceName: "projects/my-project/zones/us-east1-b/instances/my-instance-name"
}
receiveTimestamp: "2019-08-26T12:22:46.881198276Z"
...
} |
將活動記錄中的欄位對應至稽核記錄
請使用下表,在查詢中將活動記錄欄位對應至相應的稽核記錄欄位。
欄位
請使用下表,在更新的查詢中將舊版活動記錄欄位替換為稽核記錄欄位。
例如,如果您的舊版活動記錄查詢包含以 jsonPayload.resource.type 為基礎的篩選器,則新的稽核記錄查詢會改以 resource.type 為基礎進行篩選。
| 舊版活動記錄欄位 | 稽核記錄欄位 |
|---|---|
insertId |
insertId |
jsonPayload.actor.user |
protoPayload.authenticationInfo.principalEmail |
jsonPayload.event_subtype |
protoPayload.methodName |
jsonPayload.event_timestamp_us |
timestamp |
jsonPayload.event_type="GCE_API_CALL" |
operation.first="true" |
jsonPayload.event_type="GCE_OPERATION_DONE" |
operation.last="true" |
jsonPayload.request |
protoPayload.request |
jsonPayload.operation |
operation |
jsonPayload.resource.id |
resource.labels.instance_id |
jsonPayload.resource.name |
protoPayload.resourceName |
jsonPayload.resource.type |
resource.type |
jsonPayload.resource.zone |
resource.labels.zone |
jsonPayload.trace_id |
operation.id |
jsonPayload.user_agent |
protoPayload.requestMetadata.callerSuppliedUserAgent |
labels.compute.googleapis.com/resource_id |
resource.labels.[RESOURCE_TYPE]_id |
labels.compute.googleapis.com/resource_name |
protoPayload.resourceName |
labels.compute.googleapis.com/resource_type |
resource.type |
labels.compute.googleapis.com/resource_zone |
以下其中一個欄位名稱:
|
logName |
logName |
receiveTimestamp |
receiveTimestamp |
resource.labels |
resource.labels |
severity |
severity |
timestamp |
timestamp |
欄位值
請使用下表將舊版活動記錄欄位值對應到稽核記錄欄位值。與活動記錄相比,稽核記錄有多個記錄檔名稱值和不同的酬載值。稽核記錄項目也會傳回完整資源名稱和經果版本管理的方法名稱。
記錄檔名稱
如要尋找稽核記錄項目,請找出包含 cloudaudit.googleapis.com 的 logName。
| 記錄檔名稱 | 記錄檔內容 | |
|---|---|---|
| 舊版活動記錄 | projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log | 管理員活動和系統事件 |
| 稽核記錄 | projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity | 管理員活動 |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event | 系統事件 | |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access | 資料存取權 |
酬載
在每個稽核記錄項目中,尋找 protoPayload 而不是 jsonPayload。
| 酬載類型 | 酬載範例 | |
|---|---|---|
| 舊版活動記錄 | jsonPayload | jsonPayload: {
actor: {…}
event_subtype: "compute.instances.start"
event_timestamp_us: "1566404493487248"
event_type: "GCE_API_CALL"
ip_address: ""
operation: {…}
request: {…}
resource: {…}
trace_id: "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772"
user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"
version: "1.2"
} |
| 稽核記錄 | protoPayload | protoPayload: {
@type: "type.googleapis.com/google.cloud.audit.AuditLog"
authenticationInfo: {…}
methodName: "v1.compute.instances.start"
request: {…}
requestMetadata: {…}
resourceName: "projects/my-project/zones/us-central1-a/instances/alert"
serviceName: "compute.googleapis.com"
} |
如要瞭解這些酬載彼此的關係,以及如何將舊版活動記錄欄位對應到稽核記錄欄位,請參閱記錄項目欄位對應。
資源名稱
在稽核記錄中,API 資源名稱 (位於 protoPayload.resourceName 欄位中) 是完整名稱,例如:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
您仍可使用部分名稱,但必須修正查詢,改用「has」運算子 (:),而非「equals」運算子。
在稽核記錄查詢中,使用下列其中一個選項,依特定資源進行篩選:
gcloud logging read protoPayload.resourceName:"VM_NAME"
gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
方法名稱
在稽核記錄中,API 方法名稱 (位於 protoPayload.methodName 欄位中) 的開頭是其版本,例如:v1.compute.instances.delete。
| 欄位 | 值 | 查詢示例 | |
|---|---|---|---|
| 舊版活動記錄 | jsonPayload.event_subtype | RESOURCE.METHOD | jsonPayload.event_subtype=compute.instances.delete |
| 稽核記錄 | protoPayload.methodName | API_VERSION.RESOURCE.METHOD | protoPayload.methodName=v1.compute.instances.delete或 protoPayload.methodName=beta.compute.instances.delete或 protoPayload.methodName:compute.instances.delete |
您仍可在稽核記錄查詢中使用未指定版本的方法名稱,但必須修正查詢,改用「has」運算子 (:) 而非「equals」運算子 (=)。舉例來說:protoPayload.methodName:compute.instances.delete 會傳回所有執行個體刪除 API 呼叫,不論版本為何。如要進一步瞭解運算子,請參閱比較。
後續步驟
- 請參閱快速入門導覽課程,瞭解如何使用記錄工具。
- 進一步瞭解如何查看記錄項目。
- 瞭解如何使用進階記錄篩選器查看記錄。
- 進一步瞭解 Compute Engine Cloud 稽核記錄。