BigQuery 稽核記錄簡介
您可以使用 BigQuery 稽核記錄,監控專案中的管理和資料存取活動。記錄檔是自動建立的文字檔案,會記錄執行特定動作 (例如建立資料表或執行工作) 的使用者,協助您維護安全性並確保符合法規。本文說明稽核記錄的使用時機,並概略介紹其格式。
Google Cloud 也會寫入記錄,包括稽核記錄,可讓您深入瞭解與使用 Google Cloud 服務相關的作業問題。如要進一步瞭解 Google Cloud 如何處理記錄,請參閱 Cloud Logging 說明文件和 Cloud 稽核記錄總覽。
稽核記錄與 INFORMATION_SCHEMA 檢視畫面
Google Cloud 專案的稽核記錄都僅涵蓋直接隸屬於 Google Cloud 專案的資源。資料夾、組織和帳單帳戶等其他 Google Cloud 資源也各有其稽核記錄。
稽核記錄可協助您瞭解 Google Cloud 資源中「人事時地物」等問題。稽核記錄是使用者和存取模式系統活動的明確資訊來源,應做為稽核或安全性問題的主要來源。
BigQuery 中的 INFORMATION_SCHEMA 檢視表是另一種洞察資訊來源,可與指標和記錄搭配使用。這些檢視表包含工作、資料集、資料表和其他 BigQuery 實體的中繼資料。舉例來說,您可以取得即時中繼資料,瞭解在指定時間內執行的 BigQuery 工作。接著,您可以依專案、使用者、參照的資料表和其他維度,將結果分組或篩選。
INFORMATION_SCHEMA 檢視表提供的資訊,可讓您更詳細地分析 BigQuery 工作負載,例如:
- 在過去七天內,特定專案中所有查詢的平均運算單元使用率為何?
- 過去 30 分鐘內發生了哪些串流錯誤 (依錯誤代碼分組)?
BigQuery 稽核記錄包含 API 呼叫的記錄項目,但不會說明 API 呼叫的影響。部分 API 呼叫會建立工作 (例如查詢和載入),其資訊會由 INFORMATION_SCHEMA 檢視表擷取。舉例來說,您可以在 INFORMATION_SCHEMA 檢視畫面中,找到特定查詢使用的時間和運算單元相關資訊,但無法在稽核記錄中找到。
如要深入瞭解 BigQuery 工作負載的效能,請參閱工作中繼資料、串流中繼資料和預留項目中繼資料。
如要進一步瞭解 Google Cloud 服務寫入的稽核記錄類型,請參閱「稽核記錄類型」。
稽核記錄格式
Google Cloud 服務會以結構化 JSON 格式寫入稽核記錄。 Google Cloud 記錄項目的基本資料類型是 LogEntry 結構。這個結構包含記錄名稱、產生記錄項目的資源、時間戳記 (世界標準時間) 和其他基本資訊。
記錄檔會在名為「酬載欄位」的子欄位中,提供記錄事件的詳細資料。如果是稽核記錄,酬載欄位名稱為 protoPayload。這個欄位的類型 (protoPayload.@type) 設為 type.googleapis.com/google.cloud.audit.AuditLog,表示欄位使用 AuditLog 記錄結構。
對於資料集、資料表和工作的作業,BigQuery 會以兩種不同格式寫入稽核記錄,但這兩種格式都共用 AuditLog 基本類型。
舊格式包含下列欄位和值:
resource.type欄位的值為bigquery_resource。- BigQuery 會將作業的詳細資料寫入
protoPayload.serviceData欄位。這個欄位的值使用AuditData記錄結構。
新格式包含下列欄位和值:
resource.type欄位的值為bigquery_project或bigquery_dataset。bigquery_project資源含有工作相關記錄項目,bigquery_dataset資源則含有儲存空間相關記錄項目。- BigQuery 會將作業詳細資料寫入
protoPayload.metadata欄位。這個欄位的值會使用BigQueryAuditMetadata結構。
建議您使用新格式的記錄。詳情請參閱稽核記錄遷移指南。
以下是記錄項目的簡短範例,顯示失敗的作業:
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 5,
"message": "Not found: Dataset myproject:mydataset was not found in location US"
},
"authenticationInfo": { ... },
"requestMetadata": { ... },
"serviceName": "bigquery.googleapis.com",
"methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
"metadata": {
},
"resource": {
"type": "bigquery_project",
"labels": { .. },
},
"severity": "ERROR",
"logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
...
}
如果是 BigQuery 預留項目作業,protoPayload 欄位會使用 AuditLog 結構,protoPayload.request 和 protoPayload.response 欄位則包含更多資訊。您可以在 BigQuery Reservation API 中找到欄位定義。詳情請參閱「監控 BigQuery 預留項目」。
如要深入瞭解稽核記錄格式,請參閱「瞭解稽核記錄」。
限制
記錄訊息的大小上限為 100,000 個位元組。詳情請參閱「記錄項目遭到截斷」。
瀏覽權限和存取控管
BigQuery 稽核記錄可能包含使用者認為機密的資訊,例如 SQL 文字、結構定義定義,以及資料表和資料集等資源的 ID。如要瞭解如何管理這項資訊的存取權,請參閱 Cloud Logging 存取控管說明文件。
遙測地圖
下表將 BigQuery 功能和資源對應至其作業監控遙測、受稽核的 API 服務和資源,以及稽核記錄參考文件。您可以使用這項功能,找出疑難排解、最佳化效能、控管成本、稽核用量及維持法規遵循所需的遙測資料。
許多 Google Cloud 服務會將作業工作記錄寫入 Cloud Logging,但 BigQuery 會將作業工作遙測資料寫入資訊結構定義檢視表,例如 INFORMATION_SCHEMA.JOBS。這些檢視表會擷取查詢執行階段、運算單元用量、計費位元組數,以及所有提交的工作,包括進行中和失敗的工作。
BigQuery 主要使用 Logging 發出 Cloud 稽核記錄,記錄管理和資料存取活動。稽核這項活動時,您可以判斷誰在何時何地存取資源或資料。
系統不會針對每項工作中斷或失敗事件發出稽核記錄。舉例來說,失敗的工作不會產生 TableDataRead 或 TableDataChange 事件,而 jobCompletedEvent 只會記錄成功完成的工作。如要進一步瞭解不會產生稽核記錄的情境,請參閱 BigQuery 稽核記錄總覽中的「資料存取」一節。
在下表中,INFORMATION_SCHEMA 檢視畫面名稱中的星號 (*) 表示特定範圍的檢視畫面變體,例如 _BY_PROJECT、_BY_USER、_BY_FOLDER 和 _BY_ORGANIZATION。
| 功能或資源 | 作業監控 | Cloud 稽核記錄 |
|---|---|---|
| 查詢和工作 |
資訊結構定義檢視表:
控制台: 指標:Cloud Monitoring 指標,例如 |
API 服務: 已稽核的資源: 稽核記錄:使用 |
| 資料表和檢視表 |
資訊結構定義檢視表:
指標:Monitoring 指標,例如 |
API 服務: 稽核的資源: 稽核記錄:使用 |
| 資料集 |
資訊結構定義檢視表:
|
API 服務: 稽核的資源: 稽核記錄:使用 |
| 運算單元和預留項目 |
資訊結構定義檢視表:
控制台: 指標:Monitoring 指標,例如 |
API 服務:BigQuery Reservation API 的 稽核的資源: 稽核記錄:管理員活動和資料存取記錄,用於建立、修改、刪除及列出預留項目、容量承諾使用合約,以及專案或資料夾指派作業。請參閱「BigQuery Reservation API 稽核記錄」。 |
| 資料欄層級安全防護機制和資料遮蓋 |
資訊結構定義檢視表:
|
API 服務: 稽核的資源: 稽核記錄:管理員活動和資料存取記錄,用於分類和政策標記管理,以及 IAM 政策變更 (稽核政策標記);資料政策管理和被授權人更新 (BigQuery 資料政策稽核記錄);以及受保護資料欄讀取作業的 |
| 常式,包括 UDF 和預存程序 |
資訊結構定義檢視表:
|
API 服務: 稽核的資源: 稽核記錄:使用 |
| 外部連線 |
資訊結構定義檢視表:
|
API 服務:BigQuery Connection API 的 稽核的資源: 稽核記錄:管理員活動和資料存取記錄,用於連線建立、憑證更新、刪除、列出和 IAM 政策變更。請參閱「BigQuery Connection API 稽核記錄」。 |
| BigQuery sharing |
資訊結構定義檢視表:
資訊主頁:共用使用情形指標資訊主頁。 |
API 服務: 稽核的資源: 稽核記錄:管理員活動和資料存取記錄,用於資料交換和建立、更新、刪除、IAM 政策變更和訂閱者作業。請參閱「共用稽核記錄」。 |
| BigQuery 資料移轉服務 |
指標和記錄:
|
API 服務:BigQuery 資料移轉服務 API 的 稽核的資源: 稽核記錄:管理員活動和資料存取記錄,用於建立、更新、刪除、列出及啟動移轉設定和執行作業。請參閱「BigQuery 資料移轉服務稽核記錄」。 |
| BigLake 目錄和資料表 |
資訊結構定義檢視表: |
API 服務: 稽核的資源: 稽核記錄:目錄、資料庫、命名空間、資料表、分區和目錄 IAM 政策作業的管理員活動和資料存取記錄。請參閱「BigLake 稽核記錄」。 |
| BigQuery 遷移服務 |
狀態和報表:
|
API 服務: 稽核的資源: 稽核記錄:資料存取記錄,用於建立、啟動、列出、查看及刪除遷移工作流程和子工作,以及轉譯 SQL 查詢。請參閱「BigQuery Migration Service 稽核記錄」。 |
後續步驟
- 如要瞭解如何使用 Cloud Logging 稽核與政策標記相關的活動,請參閱「稽核政策標記」。
- 如要瞭解如何使用 BigQuery 分析記錄活動,請參閱「BigQuery 稽核記錄總覽」。