收集 Snowflake 記錄
本文說明如何將 Snowflake 記錄擷取至 Google Security Operations。您可以透過兩種方法設定擷取作業:Cloud Storage V2 (建議) 或 Amazon S3 V2。這兩種方法在 Snowflake 端都使用相同的機制:排定的工作會將帳戶用量資料卸載至外部階段,而 Google SecOps 會透過動態饋給讀取匯出的檔案。
Snowflake 是雲端資料平台,可將帳戶活動儲存在 SNOWFLAKE.ACCOUNT_USAGE 架構中。LOGIN_HISTORY 檢視畫面會記錄驗證嘗試,包括用戶端 IP 位址、驗證因素和失敗原因。QUERY_HISTORY 檢視畫面會記錄帳戶中執行的每項陳述式,包括使用者、角色、資料倉儲和觸及的物件。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- 存取 Snowflake,且具備可建立儲存空間整合功能 (預設只有
ACCOUNTADMIN擁有這項權限)、資料庫、倉儲、階段和工作的角色 - Cloud Storage V2: Google Cloud 啟用 Cloud Storage API 的專案,以及建立 bucket、建立 Identity and Access Management (IAM) 角色,以及管理 bucket IAM 政策的權限
- Amazon S3 V2:有權存取 AWS,可建立 S3 bucket、IAM 政策、IAM 角色和 IAM 使用者
授予 Snowflake 帳戶使用資料的存取權
只有在明確授予存取權後,ACCOUNTADMIN 才能讀取 SNOWFLAKE.ACCOUNT_USAGE 檢視畫面。為匯出作業建立專屬角色,並授予涵蓋這份文件匯出檢視畫面的兩個資料庫角色。
- 登入 Snowflake 並開啟工作表。
建立匯出角色,並授予帳戶用量檢視畫面讀取權限,步驟如下:
USE ROLE ACCOUNTADMIN; CREATE ROLE IF NOT EXISTS SECOPS_EXPORTER; GRANT DATABASE ROLE SNOWFLAKE.SECURITY_VIEWER TO ROLE SECOPS_EXPORTER; GRANT DATABASE ROLE SNOWFLAKE.GOVERNANCE_VIEWER TO ROLE SECOPS_EXPORTER;建立匯出作業使用的資料庫、結構定義和倉儲,並將這些項目授予角色,如下所示:
CREATE DATABASE IF NOT EXISTS SECOPS_EXPORT; CREATE SCHEMA IF NOT EXISTS SECOPS_EXPORT.ACTIVITY; CREATE WAREHOUSE IF NOT EXISTS SECOPS_EXPORT_WH WITH WAREHOUSE_SIZE = 'XSMALL' AUTO_SUSPEND = 60 AUTO_RESUME = TRUE INITIALLY_SUSPENDED = TRUE; GRANT USAGE ON DATABASE SECOPS_EXPORT TO ROLE SECOPS_EXPORTER; GRANT USAGE, CREATE STAGE, CREATE TABLE, CREATE PROCEDURE, CREATE TASK, CREATE FILE FORMAT ON SCHEMA SECOPS_EXPORT.ACTIVITY TO ROLE SECOPS_EXPORTER; GRANT USAGE, OPERATE ON WAREHOUSE SECOPS_EXPORT_WH TO ROLE SECOPS_EXPORTER; GRANT EXECUTE TASK ON ACCOUNT TO ROLE SECOPS_EXPORTER; GRANT ROLE SECOPS_EXPORTER TO USER <YOUR_USER>;- 將
<YOUR_USER>替換為擁有匯出內容的 Snowflake 使用者。
- 將
方法 1:Cloud Storage V2 (建議)
建立 Cloud Storage bucket
- 前往 Google Cloud 控制台。
- 選取專案或建立新專案。
- 在導覽選單中,依序前往「Cloud Storage」>「Bucket」。
- 按一下「建立值區」。
提供下列設定詳細資料:
設定 值 為 bucket 命名 輸入全域不重複的名稱 (例如 snowflake-activity-logs)位置類型 請根據需求選擇 (區域、雙區域、多區域) 位置 選取位置 (例如 us-central1)儲存空間級別 標準 (建議用於經常存取的記錄) 存取控管 統一 (建議) 保護工具 選用:啟用物件版本管理或保留政策 點選「建立」。
為 Snowflake 建立自訂 Cloud Storage 角色
- 在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Roles」(角色)。
- 按一下「建立角色」。
- 請提供下列設定詳細資料:
- 標題:輸入
Snowflake Unload - ID:輸入
snowflake_unload - 角色發布階段:選取「正式發布」
- 標題:輸入
- 按一下「新增權限」,然後新增下列權限:
storage.buckets.getstorage.objects.createstorage.objects.deletestorage.objects.list
點選「建立」。
為 Cloud Storage 建立 Snowflake 儲存空間整合
在 Snowflake 工作表中,建立儲存空間整合,如下所示:
USE ROLE ACCOUNTADMIN; CREATE STORAGE INTEGRATION SECOPS_GCS_INT TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'GCS' ENABLED = TRUE STORAGE_ALLOWED_LOCATIONS = ('gcs://snowflake-activity-logs/snowflake/'); GRANT USAGE ON INTEGRATION SECOPS_GCS_INT TO ROLE SECOPS_EXPORTER;- 請將
snowflake-activity-logs替換成您的值區名稱。
- 請將
按照下列步驟,擷取 Snowflake 為整合作業建立的服務帳戶:
DESC STORAGE INTEGRATION SECOPS_GCS_INT;複製
STORAGE_GCP_SERVICE_ACCOUNT屬性的值。值的格式如下:service-account-id@project1-123456.iam.gserviceaccount.com
授予 Snowflake 服務帳戶 bucket 存取權
- 在 Google Cloud 控制台中,依序前往「Cloud Storage」>「Buckets」。
- 按一下您建立的 bucket (例如
snowflake-activity-logs)。 - 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 請提供下列設定詳細資料:
- 新增主體:貼上
STORAGE_GCP_SERVICE_ACCOUNT值 - 指派角色:選取「Snowflake Unload」
- 新增主體:貼上
- 按一下 [儲存]。
建立檔案格式和外部階段
在 Snowflake 工作表,建立檔案格式和寫入 bucket 的階段,如下所示:
USE ROLE SECOPS_EXPORTER; USE SCHEMA SECOPS_EXPORT.ACTIVITY; CREATE OR REPLACE FILE FORMAT SECOPS_JSON_FORMAT TYPE = JSON; CREATE OR REPLACE STAGE SECOPS_EXPORT_STAGE URL = 'gcs://snowflake-activity-logs/snowflake/' STORAGE_INTEGRATION = SECOPS_GCS_INT FILE_FORMAT = SECOPS_JSON_FORMAT;
建立匯出狀態資料表
匯出作業會追蹤每個檢視畫面已讀取的距離。如果沒有該浮水印,每次執行都會重新匯出整個檢視區塊,並再次擷取相同事件。
建立狀態資料表並填入初始值,步驟如下:
CREATE TABLE IF NOT EXISTS SECOPS_EXPORT_STATE ( VIEW_NAME STRING NOT NULL, LAST_EXPORTED TIMESTAMP_LTZ NOT NULL, WINDOW_END TIMESTAMP_LTZ ); INSERT INTO SECOPS_EXPORT_STATE (VIEW_NAME, LAST_EXPORTED) SELECT 'LOGIN_HISTORY', DATEADD('day', -7, CURRENT_TIMESTAMP()) UNION ALL SELECT 'QUERY_HISTORY', DATEADD('day', -7, CURRENT_TIMESTAMP());
建立匯出程序
建立程序,卸載兩個檢視區塊並推進浮水印,如下所示:
CREATE OR REPLACE PROCEDURE SECOPS_EXPORT_ACTIVITY() RETURNS STRING LANGUAGE SQL AS $$ BEGIN UPDATE SECOPS_EXPORT_STATE SET WINDOW_END = DATEADD('hour', -3, CURRENT_TIMESTAMP()); COPY INTO @SECOPS_EXPORT_STAGE/login_history/ FROM ( SELECT OBJECT_CONSTRUCT( 'application', 'snowflake', 'log_type', 'login_history', 'EVENT_TIMESTAMP', EVENT_TIMESTAMP, 'EVENT_TYPE', EVENT_TYPE, 'USER_NAME', USER_NAME, 'CLIENT_IP', CLIENT_IP, 'REPORTED_CLIENT_TYPE', REPORTED_CLIENT_TYPE, 'REPORTED_CLIENT_VERSION', REPORTED_CLIENT_VERSION, 'FIRST_AUTHENTICATION_FACTOR', FIRST_AUTHENTICATION_FACTOR, 'SECOND_AUTHENTICATION_FACTOR', SECOND_AUTHENTICATION_FACTOR, 'IS_SUCCESS', IS_SUCCESS, 'ERROR_CODE', ERROR_CODE, 'ERROR_MESSAGE', ERROR_MESSAGE) FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY WHERE EVENT_TIMESTAMP > (SELECT LAST_EXPORTED FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'LOGIN_HISTORY') AND EVENT_TIMESTAMP <= (SELECT WINDOW_END FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'LOGIN_HISTORY') ) FILE_FORMAT = (TYPE = JSON) INCLUDE_QUERY_ID = TRUE; UPDATE SECOPS_EXPORT_STATE SET LAST_EXPORTED = WINDOW_END WHERE VIEW_NAME = 'LOGIN_HISTORY'; COPY INTO @SECOPS_EXPORT_STAGE/query_history/ FROM ( SELECT OBJECT_CONSTRUCT( 'application', 'snowflake', 'log_type', 'query_history', 'START_TIME', START_TIME, 'END_TIME', END_TIME, 'QUERY_ID', QUERY_ID, 'QUERY_TYPE', QUERY_TYPE, 'EXECUTION_STATUS', EXECUTION_STATUS, 'ERROR_MESSAGE', ERROR_MESSAGE, 'USER_NAME', USER_NAME, 'ROLE_NAME', ROLE_NAME, 'WAREHOUSE_NAME', WAREHOUSE_NAME, 'WAREHOUSE_SIZE', WAREHOUSE_SIZE, 'DATABASE_NAME', DATABASE_NAME, 'SCHEMA_NAME', SCHEMA_NAME, 'SESSION_ID', SESSION_ID, 'BYTES_SCANNED', BYTES_SCANNED, 'ROWS_PRODUCED', ROWS_PRODUCED, 'TOTAL_ELAPSED_TIME', TOTAL_ELAPSED_TIME) FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY WHERE START_TIME > (SELECT LAST_EXPORTED FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'QUERY_HISTORY') AND START_TIME <= (SELECT WINDOW_END FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'QUERY_HISTORY') ) FILE_FORMAT = (TYPE = JSON) INCLUDE_QUERY_ID = TRUE; UPDATE SECOPS_EXPORT_STATE SET LAST_EXPORTED = WINDOW_END WHERE VIEW_NAME = 'QUERY_HISTORY'; RETURN 'Export completed'; END; $$;
程序中的每個元素都有其存在的原因:
- 這個時間範圍會在目前時間的三小時後結束。Snowflake 會以最多兩小時的延遲時間填入
LOGIN_HISTORY,並以最多 45 分鐘的延遲時間填入QUERY_HISTORY,因此如果視窗現在結束,系統會略過檢視區塊尚未具體化的資料列。因此,事件發生後約三小時才會傳送至 Google SecOps。縮短延遲時間,以確保交易資料的即時性。 WINDOW_END會在卸載前寫入資料表,因此COPY INTO陳述式使用的值與寫回LAST_EXPORTED的值相同。在第二個陳述式中重新計算目前時間,會略過這段時間內發生的所有事件。- 每個
LAST_EXPORTED更新都會在自己的COPY INTO陳述式後執行。如果卸載失敗,程序會停止,浮水印會留在原位,下次執行時會重複該視窗,而不是略過。 INCLUDE_QUERY_ID = TRUE會在每個檔案名稱中加入 UUID。如果沒有這個值,卸載的檔案會命名為data_0_0_0,且重複匯出至相同路徑會發生衝突,Snowflake 文件將此視為階段中重複資料的來源。
排定匯出工作
請按照下列步驟建立及啟動工作:
CREATE OR REPLACE TASK SECOPS_EXPORT_TASK WAREHOUSE = SECOPS_EXPORT_WH SCHEDULE = 'USING CRON 0 * * * * UTC' AS CALL SECOPS_EXPORT_ACTIVITY(); ALTER TASK SECOPS_EXPORT_TASK RESUME;執行一次工作,驗證設定是否正確,不必等待排程,如下所示:
EXECUTE TASK SECOPS_EXPORT_TASK;請依下列步驟檢查執行結果,以及到達階段的檔案:
SELECT NAME, STATE, ERROR_MESSAGE, SCHEDULED_TIME FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(TASK_NAME => 'SECOPS_EXPORT_TASK')) ORDER BY SCHEDULED_TIME DESC LIMIT 5; LIST @SECOPS_EXPORT_STAGE;
擷取 Google SecOps 服務帳戶
Google SecOps 會使用專屬服務帳戶,從 Cloud Storage bucket 讀取資料。您必須授予這個服務帳戶值區存取權。
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態饋給」。
- 按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Snowflake activity logs)。 - 選取「Google Cloud Storage V2」做為「來源類型」。
- 選取「Snowflake」做為「記錄類型」。
- 按一下「取得服務帳戶」。
系統會顯示專屬服務帳戶電子郵件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com複製這個電子郵件地址,以便在下一步中使用。
點選「下一步」。
指定下列輸入參數的值:
儲存空間 bucket URL:輸入 Cloud Storage bucket URI,並加上前置路徑:
gs://snowflake-activity-logs/snowflake/
來源刪除選項:根據偏好設定選取刪除選項:
- 一律不刪除檔案:一律不刪除來源中的檔案 (建議用於測試)。
- 刪除已轉移的檔案和空白目錄:成功擷取檔案後,從來源刪除檔案和空白目錄。
檔案存在時間上限:納入在過去天數內修改的檔案 (預設為 180 天)
資產命名空間:資產命名空間
擷取標籤:要套用至這個動態饋給事件的標籤
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
將 IAM 權限授予 Google SecOps 服務帳戶
Google SecOps 服務帳戶需要 Cloud Storage bucket 的兩個角色:Storage Object Viewer 讀取記錄物件,以及 bucket 層級的角色讀取 bucket 中繼資料。
- 依序前往「Cloud Storage」>「Buckets」。
- 按一下 bucket 名稱。
- 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 請提供下列設定詳細資料:
- 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址
- 指派角色:選取下列兩個角色:
- Storage 物件檢視者:讀取記錄物件。
- Storage 舊版 bucket 讀取者:讀取 bucket 中繼資料。如果您選取「刪除已轉移的檔案和空白目錄」刪除選項,請改為選取「Storage Legacy Bucket Writer」,這也會授予刪除權限。
- 按一下 [儲存]。
方法 2:Amazon S3 V2
如果記錄檔必須存放在 Amazon S3,請使用這個方法。除了儲存空間整合和階段外,Snowflake 端完全相同,因此方法 1 的匯出程序和工作可重複使用,不必變更。
設定 Amazon S3 儲存貯體
- 按照這份使用手冊的指示建立 Amazon S3 儲存空間:建立儲存空間。
- 請記下 bucket 的「名稱」和「區域」,以供日後參考。例如:
snowflake-activity-logs。
設定 Snowflake AWS IAM 政策
- 登入 AWS 管理主控台。
- 搜尋並選取「IAM」。
- 選取「帳戶設定」。
- 在「Endpoints」(端點) 清單的「Security Token Service (STS)」下方,找出帳戶所在的 Snowflake 區域。
- 如果 STS 狀態為「無效」,請將切換按鈕移至「有效」。
- 選取「政策」。
- 選取「建立政策」。
- 在「政策編輯器」中,選取「JSON」。
複製並貼上下列政策,授予 Snowflake 將資料卸載至一個 bucket 和資料夾路徑所需的權限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::snowflake-activity-logs/snowflake/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::snowflake-activity-logs", "Condition": { "StringLike": { "s3:prefix": [ "snowflake/*" ] } } } ] }點選「下一步」。
輸入「政策名稱」 (例如
snowflake_access),並視需要填寫說明。點選「建立政策」。
設定 Snowflake AWS IAM 角色
- 在「IAM」中,選取「角色」。
- 按一下「建立角色」。
- 選取「AWS 帳戶」做為信任的實體類型。
- 選取「另一個 AWS 帳戶」。
- 在「帳戶 ID」欄位中,暫時輸入您自己的 AWS 帳戶 ID。您稍後可以修改信任關係,並授予 Snowflake 存取權。
- 選取「需要外部 ID」選項。
- 輸入預留位置 ID,例如
0000。您稍後會將其替換為儲存空間整合的外部 ID。 - 點選「下一步」。
- 選取先前建立的 IAM 政策。
- 點選「下一步」。
- 輸入角色名稱和說明。
- 按一下「建立角色」。
- 在角色摘要頁面中,複製並儲存「Role ARN」值。
為 Amazon S3 建立 Snowflake 儲存空間整合
在 Snowflake 工作表中,建立儲存空間整合,如下所示:
USE ROLE ACCOUNTADMIN; CREATE STORAGE INTEGRATION SECOPS_S3_INT TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'S3' ENABLED = TRUE STORAGE_AWS_ROLE_ARN = '<IAM_ROLE_ARN>' STORAGE_ALLOWED_LOCATIONS = ('s3://snowflake-activity-logs/snowflake/'); GRANT USAGE ON INTEGRATION SECOPS_S3_INT TO ROLE SECOPS_EXPORTER;- 將
<IAM_ROLE_ARN>替換為您儲存的角色 ARN。
- 將
按照下列步驟,擷取 Snowflake 為整合程序建立的 AWS 身分:
DESC INTEGRATION SECOPS_S3_INT;複製並儲存下列屬性的值:
- STORAGE_AWS_IAM_USER_ARN
- STORAGE_AWS_EXTERNAL_ID
授予 Snowflake IAM 使用者儲存空間存取權
- 前往 AWS 管理主控台。
- 選取「IAM」>「角色」。
- 選取您先前建立的角色。
- 選取「信任關係」分頁標籤。
- 點選「Edit trust policy」。
請使用
DESC INTEGRATION輸出值更新政策文件,如下所示:{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "<STORAGE_AWS_IAM_USER_ARN>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<STORAGE_AWS_EXTERNAL_ID>" } } } ] }按一下「更新政策」。
建立檔案格式、階段和匯出物件
在 Snowflake 工作表中,建立檔案格式和階段,將資料寫入 bucket,如下所示:
USE ROLE SECOPS_EXPORTER; USE SCHEMA SECOPS_EXPORT.ACTIVITY; CREATE OR REPLACE FILE FORMAT SECOPS_JSON_FORMAT TYPE = JSON; CREATE OR REPLACE STAGE SECOPS_EXPORT_STAGE URL = 's3://snowflake-activity-logs/snowflake/' STORAGE_INTEGRATION = SECOPS_S3_INT FILE_FORMAT = SECOPS_JSON_FORMAT;請按照方法 1 的說明,在「建立匯出狀態資料表」、「建立匯出程序」和「排定匯出工作」部分中,建立狀態資料表、程序和工作。這些陳述式會依名稱參照階段,因此不需要變更。
為 Google SecOps 設定 AWS IAM
- 登入 AWS 管理主控台。
- 按照這份使用者指南建立使用者:建立 IAM 使用者。
- 選取建立的「使用者」。
- 選取「安全憑證」分頁標籤。
- 在「存取金鑰」部分,按一下「建立存取金鑰」。
- 選取「第三方服務」做為「用途」。
- 點選「下一步」。
- 選用:新增說明標記。
- 按一下「建立存取金鑰」。
- 按一下「下載 .csv 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後參考。
- 按一下「完成」。
- 選取 [權限] 分頁標籤。
- 在「權限政策」部分,按一下「新增權限」。
- 選取「新增權限」。
- 選取「直接附加政策」。
- 搜尋並選取「AmazonS3FullAccess」AmazonS3FullAccess政策。
- 點選「下一步」。
- 按一下「Add permissions」。
在 Google SecOps 中設定動態饋給,擷取 Snowflake 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態饋給」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Snowflake activity logs)。 - 選取「Amazon S3 V2」做為「來源類型」。
- 選取「Snowflake」做為「記錄類型」。
- 點選「下一步」。
為下列輸入參數指定值:
- S3 URI:
s3://snowflake-activity-logs/snowflake/ - 來源刪除選項:根據偏好選取刪除選項
- 檔案存在時間上限:納入在過去天數內修改的檔案 (預設為 180 天)
- 存取金鑰 ID:具有 S3 儲存貯體存取權的使用者存取金鑰
- 私密存取金鑰:具有 S3 儲存空間存取權的使用者私密金鑰
- 資產命名空間:資產命名空間
- 擷取標籤:要套用至這個動態饋給事件的標籤
- S3 URI:
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
column4_label |
additional.fields |
已合併 |
column7_label |
additional.fields |
已合併 |
first_authentication_factor_label |
additional.fields |
已合併 |
host_list |
additional.fields |
已合併 |
query_text_label |
additional.fields |
已合併 |
query_type_label |
additional.fields |
已合併 |
roleIds_list |
additional.fields |
已合併 |
roleNames_list |
additional.fields |
已合併 |
rolecount_label |
additional.fields |
已合併 |
user_count_label |
additional.fields |
已合併 |
has_principal |
extensions.auth.type |
已對應:true → AUTHTYPE_UNSPECIFIED |
START_TIME |
metadata.event_timestamp |
已剖析為 yyyy-MM-dd HH:mm:ss.SSS Z |
column2 |
metadata.event_timestamp |
已剖析為 yyyy-MM-dd HH:mm:ss.SSS Z |
column20 |
metadata.event_timestamp |
已剖析為 yyyy-MM-dd HH:mm:ss.SSS Z |
ts |
metadata.event_timestamp |
已剖析為 ISO8601 |
event_type |
metadata.event_type |
直接對應 |
has_principal |
metadata.event_type |
對應:true → NETWORK_CONNECTION、true → STATUS_UPDATE、true → USER_LOGIN |
has_principal_user |
metadata.event_type |
已對應:true → USER_UNCATEGORIZED |
column10 |
metadata.product_event_type |
直接對應 |
QUERY_ID |
metadata.product_log_id |
直接對應 |
column1 |
metadata.product_log_id |
直接對應 |
column6 |
metadata.product_version |
直接對應 |
SESSION_ID |
network.http.session_id |
直接對應 |
RECEIVED_BYTES |
network.received_bytes |
已重新命名/對應 |
BYTES_SENT_OVER_THE_NETWORK |
network.sent_bytes |
已重新命名/對應 |
SENT_BYTES |
network.sent_bytes |
已重新命名/對應 |
APPLICATION |
principal.application |
直接對應 |
data.user_name |
principal.asset.hostname |
直接對應 |
CLIENT_IP |
principal.asset.ip |
已合併 |
IP |
principal.asset.ip |
已合併 |
column5 |
principal.asset.ip |
已合併 |
SOURCE_REGION |
principal.cloud.availability_zone |
直接對應 |
SOURCE_CLOUD |
principal.cloud.environment |
對應:(?i)azure → MICROSOFT_AZURE、(?i)amazon → AMAZON_WEB_SERVICES、(?i)google ... |
data.user_name |
principal.hostname |
直接對應 |
CLIENT_IP |
principal.ip |
已合併 |
IP |
principal.ip |
已合併 |
column5 |
principal.ip |
已合併 |
OS |
principal.platform |
對應:(?i)Linux → LINUX、(?i)windows → WINDOWS、(?i)mac/ios → MAC |
OS_VERSION |
principal.platform_version |
直接對應 |
SOURCE_CLOUD_label |
principal.resource.attribute.labels |
已合併 |
roles |
principal.user.attribute.roles |
已合併 |
data.role_name |
principal.user.role_name |
直接對應 |
column9 |
principal.user.user_display_name |
直接對應 |
USER_NAME |
principal.user.userid |
直接對應 |
column10 |
principal.user.userid |
直接對應 |
column3 |
principal.user.userid |
直接對應 |
EXECUTION_STATUS |
security_result.action |
對應:(?i)success → action、(?i)fail → security_result_action_block |
STATUS |
security_result.action |
已對應:(?i)success → action、(?i)fail → action |
action |
security_result.action |
已合併 |
security_result_action_block |
security_result.action |
已合併 |
OCSP_MODE |
security_result.action_details |
直接對應 |
column11 |
security_result.action_details |
直接對應 |
column3 |
security_result.action_details |
直接對應 |
BYTES_DELETED_label |
security_result.detection_fields |
已合併 |
BYTES_READ_FROM_RESULT_label |
security_result.detection_fields |
已合併 |
BYTES_SCANNED_label |
security_result.detection_fields |
已合併 |
BYTES_SPILLED_TO_LOCAL_STORAGE_label |
security_result.detection_fields |
已合併 |
BYTES_SPILLED_TO_REMOTE_STORAGE_label |
security_result.detection_fields |
已合併 |
BYTES_WRITTEN_TO_RESULT_label |
security_result.detection_fields |
已合併 |
BYTES_WRITTEN_label |
security_result.detection_fields |
已合併 |
CHILD_QUERIES_WAIT_TIME_label |
security_result.detection_fields |
已合併 |
CLUSTER_NUMBER_label |
security_result.detection_fields |
已合併 |
COMPILATION_TIME_label |
security_result.detection_fields |
已合併 |
CREDITS_USED_CLOUD_SERVICES_label |
security_result.detection_fields |
已合併 |
DATABASE_ID_label |
security_result.detection_fields |
已合併 |
DATABASE_NAME_label |
security_result.detection_fields |
已合併 |
END_TIME_label |
security_result.detection_fields |
已合併 |
ERROR_MESSAGE_label |
security_result.detection_fields |
已合併 |
EXECUTION_TIME_label |
security_result.detection_fields |
已合併 |
EXTERNAL_FUNCTION_TOTAL_INVOCATIONS_label |
security_result.detection_fields |
已合併 |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES_label |
security_result.detection_fields |
已合併 |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS_label |
security_result.detection_fields |
已合併 |
EXTERNAL_FUNCTION_TOTAL_SENT_BYTES_label |
security_result.detection_fields |
已合併 |
EXTERNAL_FUNCTION_TOTAL_SENT_ROWS_label |
security_result.detection_fields |
已合併 |
INBOUND_DATA_TRANSFER_BYTES_label |
security_result.detection_fields |
已合併 |
IS_CLIENT_GENERATED_STATEMENT_label |
security_result.detection_fields |
已合併 |
LIST_EXTERNAL_FILES_TIME_label |
security_result.detection_fields |
已合併 |
OUTBOUND_DATA_TRANSFER_BYTES_label |
security_result.detection_fields |
已合併 |
PARTITIONS_SCANNED_label |
security_result.detection_fields |
已合併 |
PARTITIONS_TOTAL_label |
security_result.detection_fields |
已合併 |
PERCENTAGE_SCANNED_FROM_CACHE_label |
security_result.detection_fields |
已合併 |
QUERY_ACCELERATION_BYTES_SCANNED_label |
security_result.detection_fields |
已合併 |
QUERY_ACCELERATION_PARTITIONS_SCANNED_label |
security_result.detection_fields |
已合併 |
QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR_label |
security_result.detection_fields |
已合併 |
QUERY_HASH_VERSION_label |
security_result.detection_fields |
已合併 |
QUERY_HASH_label |
security_result.detection_fields |
已合併 |
QUERY_LOAD_PERCENT_label |
security_result.detection_fields |
已合併 |
QUERY_PARAMETERIZED_HASH_VERSION_label |
security_result.detection_fields |
已合併 |
QUERY_TAG_label |
security_result.detection_fields |
已合併 |
QUERY_TYPE_label |
security_result.detection_fields |
已合併 |
QUEUED_OVERLOAD_TIME_label |
security_result.detection_fields |
已合併 |
QUEUED_PROVISIONING_TIME_label |
security_result.detection_fields |
已合併 |
QUEUED_REPAIR_TIME_label |
security_result.detection_fields |
已合併 |
RELEASE_VERSION_label |
security_result.detection_fields |
已合併 |
ROLE_TYPE_label |
security_result.detection_fields |
已合併 |
ROWS_DELETED_label |
security_result.detection_fields |
已合併 |
ROWS_INSERTED_label |
security_result.detection_fields |
已合併 |
ROWS_PRODUCED_label |
security_result.detection_fields |
已合併 |
ROWS_UNLOADED_label |
security_result.detection_fields |
已合併 |
ROWS_UPDATED_label |
security_result.detection_fields |
已合併 |
ROWS_WRITTEN_TO_RESULT_label |
security_result.detection_fields |
已合併 |
SCHEMA_ID_label |
security_result.detection_fields |
已合併 |
SCHEMA_NAME_label |
security_result.detection_fields |
已合併 |
TOTAL_ELAPSED_TIME_label |
security_result.detection_fields |
已合併 |
TRANSACTION_BLOCKED_TIME_label |
security_result.detection_fields |
已合併 |
TRANSACTION_ID_label |
security_result.detection_fields |
已合併 |
WAREHOUSE_ID_label |
security_result.detection_fields |
已合併 |
WAREHOUSE_NAME_label |
security_result.detection_fields |
已合併 |
WAREHOUSE_SIZE_label |
security_result.detection_fields |
已合併 |
WAREHOUSE_TYPE_label |
security_result.detection_fields |
已合併 |
authentication_factor_label |
security_result.detection_fields |
已合併 |
column4_label |
security_result.detection_fields |
已合併 |
column6_label |
security_result.detection_fields |
已合併 |
column7_label |
security_result.detection_fields |
已合併 |
column8_label |
security_result.detection_fields |
已合併 |
event_id_label |
security_result.detection_fields |
已合併 |
event_type_label |
security_result.detection_fields |
已合併 |
is_success_label |
security_result.detection_fields |
已合併 |
python_compiler_label |
security_result.detection_fields |
已合併 |
python_runtime_label |
security_result.detection_fields |
已合併 |
python_version_label |
security_result.detection_fields |
已合併 |
reported_client_type_label |
security_result.detection_fields |
已合併 |
reported_client_version_label |
security_result.detection_fields |
已合併 |
tracing_label |
security_result.detection_fields |
已合併 |
EXECUTION_STATUS |
security_result.summary |
直接對應 |
STATUS |
security_result.summary |
直接對應 |
column17 |
security_result.summary |
直接對應 |
TARGET_REGION |
target.cloud.availability_zone |
直接對應 |
TARGET_CLOUD |
target.cloud.environment |
對應:(?i)azure → MICROSOFT_AZURE、(?i)amazon → AMAZON_WEB_SERVICES、(?i)google ... |
TARGET_CLOUD_label |
target.resource.attribute.labels |
已合併 |
column2_label |
target.resource.attribute.labels |
已合併 |
column7_label |
target.resource.attribute.labels |
已合併 |
USER_NAME |
target.user.userid |
直接對應 |
column4 |
target.user.userid |
直接對應 |
| 不適用 | extensions.auth.type |
常數:AUTHTYPE_UNSPECIFIED |
| 不適用 | metadata.event_type |
常數:NETWORK_CONNECTION |
| 不適用 | metadata.product_name |
常數:SNOWFLAKE |
| 不適用 | metadata.vendor_name |
常數:SNOWFLAKE |
| 不適用 | principal.cloud.environment |
常數:MICROSOFT_AZURE |
| 不適用 | principal.platform |
常數:LINUX |
| 不適用 | target.cloud.environment |
常數:MICROSOFT_AZURE |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。