收集 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 檢視畫面。為匯出作業建立專屬角色,並授予涵蓋這份文件匯出檢視畫面的兩個資料庫角色。

  1. 登入 Snowflake 並開啟工作表。
  2. 建立匯出角色,並授予帳戶用量檢視畫面讀取權限,步驟如下:

    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;
    
  3. 建立匯出作業使用的資料庫、結構定義和倉儲,並將這些項目授予角色,如下所示:

    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 使用者。

建立 Cloud Storage bucket

  1. 前往 Google Cloud 控制台。
  2. 選取專案或建立新專案。
  3. 在導覽選單中,依序前往「Cloud Storage」>「Bucket」。
  4. 按一下「建立值區」。
  5. 提供下列設定詳細資料:

    設定 值
    為 bucket 命名 輸入全域不重複的名稱 (例如 snowflake-activity-logs)
    位置類型 請根據需求選擇 (區域、雙區域、多區域)
    位置 選取位置 (例如 us-central1)
    儲存空間級別 標準 (建議用於經常存取的記錄)
    存取控管 統一 (建議)
    保護工具 選用:啟用物件版本管理或保留政策
  6. 點選「建立」。

為 Snowflake 建立自訂 Cloud Storage 角色

  1. 在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Roles」(角色)。
  2. 按一下「建立角色」。
  3. 請提供下列設定詳細資料:
    • 標題:輸入 Snowflake Unload
    • ID:輸入 snowflake_unload
    • 角色發布階段:選取「正式發布」
  4. 按一下「新增權限」,然後新增下列權限:
    • storage.buckets.get
    • storage.objects.create
    • storage.objects.delete
    • storage.objects.list
  5. 點選「建立」。

為 Cloud Storage 建立 Snowflake 儲存空間整合

  1. 在 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 替換成您的值區名稱。
  2. 按照下列步驟,擷取 Snowflake 為整合作業建立的服務帳戶:

    DESC STORAGE INTEGRATION SECOPS_GCS_INT;
    
  3. 複製 STORAGE_GCP_SERVICE_ACCOUNT 屬性的值。值的格式如下:

    service-account-id@project1-123456.iam.gserviceaccount.com
    

授予 Snowflake 服務帳戶 bucket 存取權

  1. 在 Google Cloud 控制台中,依序前往「Cloud Storage」>「Buckets」。
  2. 按一下您建立的 bucket (例如 snowflake-activity-logs)。
  3. 前往「權限」分頁標籤。
  4. 按一下「授予存取權」。
  5. 請提供下列設定詳細資料:
    • 新增主體:貼上 STORAGE_GCP_SERVICE_ACCOUNT 值
    • 指派角色:選取「Snowflake Unload」
  6. 按一下 [儲存]。

建立檔案格式和外部階段

  1. 在 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;
    

建立匯出狀態資料表

匯出作業會追蹤每個檢視畫面已讀取的距離。如果沒有該浮水印,每次執行都會重新匯出整個檢視區塊,並再次擷取相同事件。

  1. 建立狀態資料表並填入初始值,步驟如下:

    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());
    

建立匯出程序

  1. 建立程序,卸載兩個檢視區塊並推進浮水印,如下所示:

    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 文件將此視為階段中重複資料的來源。

排定匯出工作

  1. 請按照下列步驟建立及啟動工作:

    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;
    
  2. 執行一次工作,驗證設定是否正確,不必等待排程,如下所示:

    EXECUTE TASK SECOPS_EXPORT_TASK;
    
  3. 請依下列步驟檢查執行結果,以及到達階段的檔案:

    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 讀取資料。您必須授予這個服務帳戶值區存取權。

  1. 依序前往「SIEM 設定」>「動態饋給」。
  2. 按一下「新增動態饋給」。
  3. 按一下「設定單一動態饋給」。
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Snowflake activity logs)。
  5. 選取「Google Cloud Storage V2」做為「來源類型」。
  6. 選取「Snowflake」做為「記錄類型」。
  7. 按一下「取得服務帳戶」。
  8. 系統會顯示專屬服務帳戶電子郵件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. 複製這個電子郵件地址,以便在下一步中使用。

  10. 點選「下一步」。

  11. 指定下列輸入參數的值:

    • 儲存空間 bucket URL:輸入 Cloud Storage bucket URI,並加上前置路徑:

      gs://snowflake-activity-logs/snowflake/
      
    • 來源刪除選項:根據偏好設定選取刪除選項:

      • 一律不刪除檔案:一律不刪除來源中的檔案 (建議用於測試)。
      • 刪除已轉移的檔案和空白目錄:成功擷取檔案後,從來源刪除檔案和空白目錄。
    • 檔案存在時間上限:納入在過去天數內修改的檔案 (預設為 180 天)

    • 資產命名空間:資產命名空間

    • 擷取標籤:要套用至這個動態饋給事件的標籤

  12. 點選「下一步」。

  13. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。

將 IAM 權限授予 Google SecOps 服務帳戶

Google SecOps 服務帳戶需要 Cloud Storage bucket 的兩個角色:Storage Object Viewer 讀取記錄物件,以及 bucket 層級的角色讀取 bucket 中繼資料。

  1. 依序前往「Cloud Storage」>「Buckets」。
  2. 按一下 bucket 名稱。
  3. 前往「權限」分頁標籤。
  4. 按一下「授予存取權」。
  5. 請提供下列設定詳細資料:
    • 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址
    • 指派角色:選取下列兩個角色:
      • Storage 物件檢視者:讀取記錄物件。
      • Storage 舊版 bucket 讀取者:讀取 bucket 中繼資料。如果您選取「刪除已轉移的檔案和空白目錄」刪除選項,請改為選取「Storage Legacy Bucket Writer」,這也會授予刪除權限。
  6. 按一下 [儲存]。

方法 2:Amazon S3 V2

如果記錄檔必須存放在 Amazon S3,請使用這個方法。除了儲存空間整合和階段外,Snowflake 端完全相同,因此方法 1 的匯出程序和工作可重複使用,不必變更。

設定 Amazon S3 儲存貯體

  1. 按照這份使用手冊的指示建立 Amazon S3 儲存空間:建立儲存空間。
  2. 請記下 bucket 的「名稱」和「區域」,以供日後參考。例如:snowflake-activity-logs。

設定 Snowflake AWS IAM 政策

  1. 登入 AWS 管理主控台。
  2. 搜尋並選取「IAM」。
  3. 選取「帳戶設定」。
  4. 在「Endpoints」(端點) 清單的「Security Token Service (STS)」下方,找出帳戶所在的 Snowflake 區域。
  5. 如果 STS 狀態為「無效」,請將切換按鈕移至「有效」。
  6. 選取「政策」。
  7. 選取「建立政策」。
  8. 在「政策編輯器」中,選取「JSON」。
  9. 複製並貼上下列政策,授予 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/*"
                        ]
                    }
                }
            }
        ]
    }
    
  10. 點選「下一步」。

  11. 輸入「政策名稱」 (例如 snowflake_access),並視需要填寫說明。

  12. 點選「建立政策」。

設定 Snowflake AWS IAM 角色

  1. 在「IAM」中,選取「角色」。
  2. 按一下「建立角色」。
  3. 選取「AWS 帳戶」做為信任的實體類型。
  4. 選取「另一個 AWS 帳戶」。
  5. 在「帳戶 ID」欄位中,暫時輸入您自己的 AWS 帳戶 ID。您稍後可以修改信任關係,並授予 Snowflake 存取權。
  6. 選取「需要外部 ID」選項。
  7. 輸入預留位置 ID,例如 0000。您稍後會將其替換為儲存空間整合的外部 ID。
  8. 點選「下一步」。
  9. 選取先前建立的 IAM 政策。
  10. 點選「下一步」。
  11. 輸入角色名稱和說明。
  12. 按一下「建立角色」。
  13. 在角色摘要頁面中,複製並儲存「Role ARN」值。

為 Amazon S3 建立 Snowflake 儲存空間整合

  1. 在 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。
  2. 按照下列步驟,擷取 Snowflake 為整合程序建立的 AWS 身分:

    DESC INTEGRATION SECOPS_S3_INT;
    
  3. 複製並儲存下列屬性的值:

    • STORAGE_AWS_IAM_USER_ARN
    • STORAGE_AWS_EXTERNAL_ID

授予 Snowflake IAM 使用者儲存空間存取權

  1. 前往 AWS 管理主控台。
  2. 選取「IAM」>「角色」。
  3. 選取您先前建立的角色。
  4. 選取「信任關係」分頁標籤。
  5. 點選「Edit trust policy」。
  6. 請使用 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>"
                    }
                }
            }
        ]
    }
    
  7. 按一下「更新政策」。

建立檔案格式、階段和匯出物件

  1. 在 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;
    
  2. 請按照方法 1 的說明,在「建立匯出狀態資料表」、「建立匯出程序」和「排定匯出工作」部分中,建立狀態資料表、程序和工作。這些陳述式會依名稱參照階段,因此不需要變更。

為 Google SecOps 設定 AWS IAM

  1. 登入 AWS 管理主控台。
  2. 按照這份使用者指南建立使用者:建立 IAM 使用者。
  3. 選取建立的「使用者」。
  4. 選取「安全憑證」分頁標籤。
  5. 在「存取金鑰」部分,按一下「建立存取金鑰」。
  6. 選取「第三方服務」做為「用途」。
  7. 點選「下一步」。
  8. 選用:新增說明標記。
  9. 按一下「建立存取金鑰」。
  10. 按一下「下載 .csv 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後參考。
  11. 按一下「完成」。
  12. 選取 [權限] 分頁標籤。
  13. 在「權限政策」部分,按一下「新增權限」。
  14. 選取「新增權限」。
  15. 選取「直接附加政策」。
  16. 搜尋並選取「AmazonS3FullAccess」AmazonS3FullAccess政策。
  17. 點選「下一步」。
  18. 按一下「Add permissions」。

在 Google SecOps 中設定動態饋給,擷取 Snowflake 記錄

  1. 依序前往「SIEM 設定」>「動態饋給」。
  2. 按一下「新增動態饋給」。
  3. 在下一個頁面中,按一下「設定單一動態饋給」。
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Snowflake activity logs)。
  5. 選取「Amazon S3 V2」做為「來源類型」。
  6. 選取「Snowflake」做為「記錄類型」。
  7. 點選「下一步」。
  8. 為下列輸入參數指定值:

    • S3 URI:s3://snowflake-activity-logs/snowflake/
    • 來源刪除選項:根據偏好選取刪除選項
    • 檔案存在時間上限:納入在過去天數內修改的檔案 (預設為 180 天)
    • 存取金鑰 ID:具有 S3 儲存貯體存取權的使用者存取金鑰
    • 私密存取金鑰:具有 S3 儲存空間存取權的使用者私密金鑰
    • 資產命名空間:資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  9. 點選「下一步」。

  10. 在「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 專業人員尋求解答。