Loading
關於 Salesforce Data 360
設定 Clean Room Identity Boost 的 Snowflake Trust 關係

設定 Clean Room Identity Boost 的 Snowflake Trust 關係

針對身分增強使用個案的每個協同合作邀請,請完成必要的 Snowflake 設定,然後在 Data 360 中接受邀請。Data 360 會在接受時自動測試 Snowflake 連線。

必要版本

提供版本:Enterprise Edition (主要組織)
您無法在 Developer Edition 中接收或接受協同合作邀請。
所需的使用者權限
在 Data 360 中建立 Snowflake Data Federation 連線:

「系統管理員」設定檔或權限集:

  • Data Cloud 結構設計師

開始之前:

  • 完成身分提升的 規劃 Snowflake 環境。
  • 在 Data 360 中開啟待處理的協同合作邀請,並記下「接受清除空間協同合作邀請」精靈中的這些值,您在下列設定步驟中需要這些值:
    • 外部識別碼—由 Data 360 為此協同合作產生的唯一識別碼
    • 消費者 Salesforce 網域 URL—消費者的 Salesforce 組織網域

設定 Snowflake 環境

  1. 在您的 Snowflake 工作表中,開啟 SQL 編輯器並完成這些工作以設定資料容器、權限和服務使用者。
    備註
    備註 這些程式碼範例僅供指引使用。在生產環境中使用之前,請先測試並驗證 Sandbox 中的所有程式碼。
  2. 為此客戶建立專屬的資料庫和結構描述,讓其資料與其他協同合作保持隔離。
    CREATE DATABASE CUSTOMER_DB;
    CREATE SCHEMA CUSTOMER_DB.ENRICHED_OUTPUT;

    記下資料庫和結構描述名稱—您在接受邀請時在 Data 360 中輸入這些名稱。

  3. 建立輸出表格。

    以下是您增強工作寫入的表格。以雙引號定義所有欄名稱以保留大小寫。若沒有雙引號,Snowflake 會自動將欄名稱大寫,這會在 Data 360 讀取表格時造成錯誤。

    重要
    重要 在每個輸出表格上定義主要索引鍵。Data 360 會在發現您的表格時讀取主要索引鍵中繼資料,如果任何輸出表格缺少主要索引鍵,則協同合作無法啟用。針對電子郵件與電話表格,請在連絡點值欄定義主要索引鍵,而非對象識別碼,因為對象識別碼可在記錄之間重複。
    -- 1. Bridge Table: links consumer Individual IDs to your internal IDs
    CREATE OR REPLACE TABLE CUSTOMER_DB.ENRICHED_OUTPUT.PartnerIndBridgeTable (
      "SourceId"            VARCHAR(255),  -- Consumer's Individual ID
      "PartnerIndividualId" VARCHAR(255)   -- Your internal unique identifier
    );
    
    -- 2. Individual Table: enriched name and identity attributes
    CREATE OR REPLACE TABLE CUSTOMER_DB.ENRICHED_OUTPUT.PartnerBoostedIndividualTable (
      "IndividualId"        VARCHAR(255),  -- Matches PartnerIndividualId in bridge table
      "ssot__FirstName__c"  VARCHAR(255),
      "ssot__LastName__c"   VARCHAR(255),
      "EnrichmentTimestamp" TIMESTAMP_NTZ
    );
    
    -- 3. Email Table: enriched email addresses
    CREATE OR REPLACE TABLE CUSTOMER_DB.ENRICHED_OUTPUT.PartnerBoostedEmailTable (
      "PartyId"             VARCHAR(255),  -- Links to IndividualId in table 2
      "EnrichedEmail"       VARCHAR(255),
      "EnrichmentTimestamp" TIMESTAMP_NTZ
    );
    
    -- 4. Phone Table: enriched phone numbers
    CREATE OR REPLACE TABLE CUSTOMER_DB.ENRICHED_OUTPUT.PartnerBoostedPhoneTable (
      "PartyId"             VARCHAR(255),  -- Links to IndividualId in table 2
      "EnrichedPhone"       VARCHAR(50),
      "EnrichmentTimestamp" TIMESTAMP_NTZ
    );
    備註
    備註 此處顯示的表格名稱為範例。使用在您接受邀請時提供的其他中繼資料 JSON 中宣告的實際名稱。Data 360 使用該 JSON 中的 objectApiName 值來尋找您 Snowflake 結構描述中的表格。
  4. 部署您的增強工作,並將其設定為鎖定此客戶的結構描述。

    設定您的工作程式碼以從 Data 360 在接受後在環境中建立的 Snowflake 資料共用中讀取、對照身分圖表執行身分解析,並將增強的輸出寫入您建立的資料庫和結構描述。

    請勿執行此工作—在您在 Data 360 中接受邀請之前,Snowflake 環境中將無法使用取用者的資料。

    備註
    備註 如果您為多個客戶使用單一 Snowflake 帳戶,則增強工作可以存取該帳戶中的所有資料庫。將工作的執行角色嚴格限定為此客戶的資料庫和結構描述,並定期稽核角色授與以確認沒有跨客戶存取權。
  5. 為 Data 360 建立專屬角色。

    專屬角色是您指派給 Snowflake OIDC 服務使用者的已命名權限集。

    CREATE ROLE IF NOT EXISTS DATACLOUD_SF_ROLE;
  6. 授與角色倉庫、資料庫和結構描述的存取權。

    若要查看您帳戶中可用的倉庫,請前往 Snowflake 主控台中的「管理員 > 倉庫」,並記下您要使用的倉庫名稱。這些指令會授與角色使用倉庫和存取此客戶資料庫和結構描述的權限。

    GRANT USAGE ON WAREHOUSE MY_WH TO ROLE DATACLOUD_SF_ROLE;
    GRANT USAGE ON DATABASE CUSTOMER_DB TO ROLE DATACLOUD_SF_ROLE;
    GRANT USAGE ON SCHEMA CUSTOMER_DB.ENRICHED_OUTPUT TO ROLE DATACLOUD_SF_ROLE;

    將 MY_WH 取代為倉庫名稱,將 CUSTOMER_DB 取代為您建立的資料庫,將 ENRICHED_OUTPUT 取代為您建立的結構描述。記下倉庫名稱—您在接受邀請時在 Data 360 中輸入該名稱。

  7. 授與角色讀取輸出表格的權限。

    Data 360 會在增強工作執行後讀取增強的輸出表格,以在消費者組織中建立增強的 DMO。這些授與可讓角色在所有輸出表格上 (包括現有表格和您稍後建立的任何表格) 擁有 SELECT 存取權。

    GRANT SELECT ON ALL TABLES IN SCHEMA CUSTOMER_DB.ENRICHED_OUTPUT TO ROLE DATACLOUD_SF_ROLE;
    GRANT SELECT ON FUTURE TABLES IN SCHEMA CUSTOMER_DB.ENRICHED_OUTPUT TO ROLE DATACLOUD_SF_ROLE;
  8. 使用 Workload Identity Federation (OIDC) Trust 建立服務使用者。

    這是專屬的 Snowflake 使用者,Data 360 用來連線至您的 Snowflake 帳戶,並讀取豐富的輸出表格。不同於一般使用者,它沒有密碼,而是信任消費者 Salesforce 組織發出的登入權杖。只有驗證為該特定消費者組織的 Data 360 才能以此使用者身分登入。

    使用您在「開始之前」區段中記下的「外部識別碼」和「消費者 Salesforce 網域 URL」。

    CREATE OR REPLACE USER sf_oidc_user
      WORKLOAD_IDENTITY =
      (
        TYPE = OIDC
        ISSUER = 'https://yourcompany.my.salesforce.com/services/connectors'
        SUBJECT = 'your-external-id'
        OIDC_AUDIENCE_LIST = ('https://yourcompany.my.salesforce.com')
      )
      TYPE = SERVICE
      DEFAULT_ROLE = DATACLOUD_SF_ROLE;
    • ISSUER — 輸入「消費者 Salesforce 網域 URL」後面加上 /services/connectors。這會告知 Snowflake 哪個 Salesforce 組織可以為此使用者核發登入權杖。例如,https://yourcompany.my.salesforce.com/services/connectors。
    • SUBJECT — 輸入外部識別碼。這會將 Trust 固定至此特定協同合作,即使相同的 Salesforce 組織傳送權杖,該權杖也無法存取不同的客戶資料。
    • OIDC_AUDIENCE_LIST — 輸入不含路徑尾碼的「消費者 Salesforce 網域 URL」。例如,https://yourcompany.my.salesforce.com。
    備註
    備註 建立服務使用者—不轉換現有使用者。將現有 Snowflake 使用者變更為服務使用者會移除該人員以互動方式登入 Snowflake 的能力,並將其日常權限與機器存取權混合在一起。這麼做會使帳戶難以稽核,難以撤銷。專屬服務使用者可讓 Data 360 的存取權完全隔離,且易於移除。如果您為多個客戶使用單一 Snowflake 帳戶,請在服務使用者名稱中包含客戶名稱,以避免發生衝突,例如 Customer1_DC_User。

    記下服務使用者名稱—您在接受邀請時在 Data 360 中輸入該名稱。

  9. 將角色指派給服務使用者。
    GRANT ROLE DATACLOUD_SF_ROLE TO USER sf_oidc_user;
    服務使用者擁有您設定的權限。
  10. 移至 Data 360 之前,請先確認您有來自 Snowflake 環境的這些值,然後在接受精靈中輸入這些值。
    Data 360 中的欄位 Snowflake 中的值
    Snowflake 帳戶 URL Snowflake 帳戶的完整 URL,例如,https://myorg.snowflakecomputing.com
    服務使用者 您為服務使用者提供的名稱
    資料倉庫名稱 您使用的倉庫名稱
    資料庫名稱 您建立的資料庫名稱
    結構描述名稱 您建立的結構描述名稱

在 Data 360 中接受協同合作邀請

  1. 返回 Data 360 中的「接受 Clean Room 協同合作邀請」精靈,並完成以下接受步驟:選取資料空間,然後建立或選取對應的範本。
  2. 在「Snowflake Trust Relationship」區段中,確認頁面上顯示的「外部識別碼」和「消費者 Salesforce 網域 URL」 值符合您在 Snowflake 中建立服務使用者時在 SUBJECT 和 ISSUER 欄位中使用的值。
    這些值為唯讀。Data 360 會在此處顯示這些設定,以便您在繼續之前確認您的 Snowflake 設定是否正確。
  3. 在「Snowflake 連線設定」區段中,輸入您在設定步驟中記下的值。
    • Snowflake 帳戶 URL:Snowflake 帳戶的完整 URL,例如,https://myorg.snowflakecomputing.com
    • 服務使用者:您在 Snowflake 中建立的服務使用者名稱
    • 資料倉庫名稱:與服務使用者相關聯的倉庫名稱
    • 資料庫名稱:您在 Snowflake 中建立的資料庫
    • 結構描述名稱:您在 Snowflake 中建立的結構描述
  4. 按一下「測試連線」。

    Data 360 會嘗試使用服務使用者連線至您的 Snowflake 帳戶。如果測試失敗,請檢查 Snowflake 服務使用者的 SUBJECT 和 ISSUER 值是否完全符合頁面上顯示的「外部識別碼」和「消費者 Salesforce 網域 URL」。另請檢查您的 Snowflake 帳戶是否位於與消費者其 Data 360 區域相容的區域中。

  5. 按一下「下一步」並接受邀請。
 
正在載入
Salesforce Help | Article