如果您使用活動記錄查看 Compute Engine 管理員活動和系統事件,請參閱這份指南,瞭解如何改以稽核記錄尋找類似的記錄項目。
Compute Engine 活動記錄已淘汰。您可以根據記錄名稱來識別活動記錄項目:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Compute Engine 稽核記錄包含活動記錄提供的相同資訊,另外還有更多其他資訊。但稽核記錄顯示資訊的方式與活動記錄不同。因此您需要調整查詢。
如何從活動記錄遷移至稽核記錄
如要使用稽核記錄而非活動記錄,請調整查詢。請按照下列步驟操作。
找出舊查詢。舉例來說,您可能會將這些記錄儲存在 記錄檢視器中的儲存搜尋中,或是使用 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" |
活動記錄和稽核記錄的差異
請參閱本節,瞭解稽核記錄的結構與活動記錄的差異。將舊版活動記錄查詢轉換為稽核記錄查詢時,請留意這些差異。舉例來說,請在查詢中將所有舊版活動記錄欄位名稱,替換為對應的稽核記錄欄位名稱。
雖然稽核記錄和活動記錄都會傳回記錄項目物件,但兩者之間有以下差異:
- 不同的欄位名稱。詳情請參閱欄位名稱對應表格。
- 不同欄位值,包括:
- 不同的記錄名稱:稽核記錄的記錄名稱包含
cloudaudit.googleapis.com
。 - 不同的酬載:稽核記錄會傳回
protoPayload
欄位,而非jsonPayload
。 - 完整合格的資源名稱:稽核記錄會傳回包含路徑的資源名稱,例如:
projects/my-project/zones/us-east1-b/instances/my-instance-name
。 - 經過版本管理的方法名稱:稽核記錄會傳回包含版本的方法名稱,例如
v1
。
- 不同的記錄名稱:稽核記錄的記錄名稱包含
以下範例說明記錄名稱和酬載的差異:
記錄項目範例 | |
---|---|
舊版活動記錄 | { 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 稽核記錄。