Snowflake Data Clean Rooms:管理员任务

本主题介绍 Snowflake Data Clean Room 管理员的任务。有关首次实施清洁环境的信息,请参阅 Snowflake Data Clean Rooms 概述

以 Snowflake 管理员身份登录

Clean Room 环境与 Snowflake 分开管理用户凭据。也就是说,您的 Clean Room Web 应用程序凭据与您的 Snowflake 凭据分开存储和管理。

当您使用 Clean Room 管理员账户登录 Clean Room 时,您将默认为 Web 应用程序中的 DCR 管理员角色。如果您想将您的权限提升到 Snowflake 管理员角色,必须按照此处的说明登录。

要以管理员身份登录 Web 应用程序,请执行以下操作:

  1. 使用您的 Clean Room 凭据 登录 Web 应用程序

  2. 导航到 Admin > Snowflake Admin

  3. 选择 Log in to Snowflake 并提供您的 Snowflake 凭据。使用您用于安装环境的凭据。

将潜在协作者添加到环境中

具有管理员角色的 Clean Room 用户必须先添加潜在协作者,之后 其他用户才能与该协作者共享 Clean Room。

备注

如果 Snowflake 客户的账户所在区域与 Snowflake 账户不同,则您的账户管理员必须先启用 Cross-Cloud Auto-Fulfillment,然后您才能将客户添加为协作者。包括在其他区域中与客户协作的限制有关的更多信息,请参阅 关于 Cross-Cloud Auto-Fulfillment

要在 Clean Room 环境中添加某人为协作者,请执行以下步骤:

  1. 导航至 Snowflake Data Clean Room 登录页面

  2. 以 Clean Room 管理员身份登录。此用户无需在 Snowflake 中具有 ACCOUNTADMIN 角色。

  3. 在左侧导航栏中,选择 Collaborators

  4. 执行下列操作之一:

    • 如果协作者拥有 Snowflake 账户,请选择 Snowflake Partners » + Snowflake Partner。系统会提示您输入协作者的 Snowflake 账户的详细信息。

    • 如果协作者不是 Snowflake 客户,请选择 Managed Accounts 选项卡,为其创建 Clean Room 托管账户

添加 DCR 管理员或 Clean Room 经理

DCR 管理员可以配置和管理 Clean Room 环境。

Clean Room 经理可以使用 Web 应用程序在该账户中创建新 Clean Room(充当 Clean Room 提供商以及 Clean Room 使用者)。

了解有关 Clean Room 角色的更多信息。

要允许您的 Snowflake 账户中的用户使用 Web 应用程序,请按照下列步骤操作:

  1. 导航至 Snowflake Data Clean Room 登录页面

  2. 以 Clean Room 管理员身份登录。此用户无需在 Snowflake 中具有 ACCOUNTADMIN 角色。

  3. 选择 User Management

  4. 选择 + Users

  5. 输入新 Clean Room 用户的电子邮件地址。

  6. 选择新用户的角色。

新用户会收到一封电子邮件,其中包含了加入 Clean Room 的链接。

授予 API 访问权限

您可以授予您账户中的其他 Snowflake 用户对您的 Clean Room 的完整 API 访问权限,或授予指定 Clean Room 更有限的权限。

授予完整 API 访问权限

要允许用户对您账户中的所有 Clean Room 使用任何 Clean Room 程序,请按照以下步骤操作:

  1. 登录到与 Clean Room 环境关联的 Snowflake 账户,即安装 Snowflake Native App 的地方。

  2. 打开工作表,然后使用 ACCOUNTADMIN 角色将 SAMOOHA_APP_ROLE 角色分配给用户。

    例如,要允许用户 joe 使用开发者 APIs,请执行以下代码:

    USE ROLE accountadmin;
    
    GRANT ROLE samooha_app_role TO USER joe;
    
    Copy

授予有限的 API 访问权限

您可以将 运行访问权限 授予您账户中指定的使用者 Clean Room。运行访问权限意味着只能运行 使用者程序的子集,例如 consumer.run_analysisconsumer.install_cleanroom 等程序无法使用该角色运行。

要向用户授予有限的权限,请执行以下操作:

  1. 对 SAMOOHA_APP_ROLE 拥有 GRANT ROLE 权限的用户创建新角色并将其授予用户:

    USE ROLE ACCOUNTADMIN;
    CREATE ROLE MARKETING_ANALYST_ROLE;
    GRANT USAGE ON WAREHOUSE APP_WH TO MARKETING_ANALYST_ROLE; -- Or whichever warehouse you are using
    GRANT ROLE MARKETING_ANALYST_ROLE TO USER george.washington;
    
    Copy
  2. 然后,Clean Room 管理员授予新角色对特定 Clean Room 的有限权限:

    CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role(
      ['overlap_cleanroom', 'market_share_cleanroom'],
      'MARKETING_ANALYST_ROLE'
    );
    
    Copy
  3. 用户使用有限角色在 Clean Room 账户中执行特定操作:

     -- User george.washington logs in and uses the proper role.
     USE WAREHOUSE APP_WH
     USE ROLE MARKETING_ANALYST_ROLE;
    
     -- Consumer-run analyses should succeed.
     CALL samooha_by_snowflake_local_db.consumer.run_analysis(
       $cleanroom_name,
       'prod_overlap_analysis',
       ['SAMOOHA_SAMPLE_DATABASE.MYDATA.CONVERSIONS'],  -- Consumer tables
       ['SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES'],      -- Provider tables
       object_construct(
         'max_age', 30
       )
     );
    
    -- Most other procedures will fail.
    CALL samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
    
    Copy

要撤销此角色的运行权限,请调用 consumer.revoke_run_on_cleanrooms_from_role

要查看哪些用户被授予了特定角色,请执行以下操作:

SHOW GRANTS OF ROLE <run_role_name>;
Copy

添加仓库选项

任何具有 SAMOOHA_APP_ROLE 角色使用和操作权限的仓库都可以用于运行分析。要添加可以被 Clean Room 用户用于执行分析的仓库,请创建一个仓库,然后将其权限授予 SAMOOHA_APP_ROLE。

例如,要添加一个可以用于运行分析的仓库 my_big_warehouse,请通过工作表执行以下命令:

USE ROLE ACCOUNTADMIN;

CREATE WAREHOUSE my_big_warehouse WITH WAREHOUSE_SIZE = X5LARGE;
GRANT USAGE, OPERATE ON WAREHOUSE my_big_warehouse TO ROLE SAMOOHA_APP_ROLE;
Copy

监控 Web 应用程序活动

管理员可以监控 Snowflake 账户中的查询历史记录,以跟踪用户在 Web 应用程序中执行的操作。您可以识别与 Web 应用程序中的活动对应的查询历史记录条目,因为 user_name 的值是 配置 Snowflake 账户 时创建的服务用户的名称。

您可以使用 user_email 查询标签来识别哪个 Clean Room 用户执行了操作。

要访问 Clean Room 环境的查询历史记录,请根据是要使用 SQL 还是 Snowsight 来执行以下过程之一:

Snowsight:
  1. 以具有 ACCOUNTADMIN 角色的用户身份登录与您的 Clean Room 环境关联的 Snowflake 账户。

  2. 选择 Monitoring » Query History

  3. 使用 User 筛选器选择与 Clean Room 环境关联的服务账户用户。

SQL:
  • 对共享的 SNOWFLAKE 数据库的 ACCOUNT_USAGE 架构中的 QUERY_HISTORY 视图 执行查询。

    例如,如果要跟踪用户 joe@example.com 的 Web 应用程序活动,请执行以下代码:

    SELECT *,
      TRY_PARSE_JSON(query_tag) AS query_tag_details
      FROM snowflake.account_usage.query_history
      WHERE query_tag_details IS NOT NULL
        AND query_tag_details:request_type = 'DCR'
        AND query_tag_details:user_email = 'joe@example.com';
    
    Copy

监控由提供商运行的分析

提供者运行的分析是指提供者创建并共享 Clean Room 的过程,在使用者链接他们的数据后,在 Clean Room 中进行分析。这些分析在使用者的账户中运行,而不是在提供者的账户中。本节描述了使用者如何在 Clean Room 中跟踪由提供者分析执行的查询。

Snowflake Data Clean Rooms 为每个执行的查询分配一个查询标签,以进行提供者运行的分析。该查询标签的形式为 cleanroom_UUID_provider_account_locator。消费者可以通过在其账户的查询历史中搜索查询标签,检索与提供商运行的分析相关的所有查询。

要检索查询,首先获取 Clean Room 的 UUID,然后搜索查询标签。在以下代码中,将 cleanroom_nameprovider_account_locator 替换为适当的值。

-- Retrieve clean room UUID
SELECT cleanroom_id FROM samooha_by_snowflake_local_db.public.cleanroom_record
  WHERE cleanroom_name = '<cleanroom_name>';

-- Retrieve queries with provider-run query tag
SELECT * FROM snowflake.account_usage.query_history
  WHERE query_tag = cleanroom_id || '<provider_account_locator>;
Copy

您还可以使用 Snowsight,在使用 SQL 检索 Clean Room UUID 后,通过适当的查询标签过滤查询历史。

自定义可用连接器

您可以使用连接器将 Clean Room 环境与生态系统合作伙伴集成到一起。作为提供商的 Clean Room 管理员,您可以自定义 Clean Room 环境,以限制哪些连接器作为 Clean Room 用户的选项出现。例如,如果您有一个首选的激活合作伙伴,您可以配置 Clean Room 环境,使得当使用者在 Clean Room 中激活分析结果时,该合作伙伴是唯一的选择。

备注

您的自定义仅适用于新的 Clean Room。

要在 Clean Room 中控制可用的连接器:

  1. 登录 Web 应用程序

  2. 在左侧导航栏中,选择 Admin » Profile & Features

  3. 可选:要自定义激活连接器,请执行以下步骤:

    1. Activation 磁贴中,选择 Edit

    2. 选择您想要显示的激活选项,然后选择 Save

  4. 可选:要自定义身份和数据提供程序连接器,请按照以下步骤操作:

    1. Identity & Data Provider 磁贴中,选择 Edit

    2. 选择您想要显示的身份选项,然后选择 Save

给 Clean Room 标明品牌

您可以为 Clean Room 环境配置简介,以便创建的每个 Clean Room 都带有您的徽标和公司名称。要为您的公司定义徽标和名称,请完成以下步骤:

  1. 登录 Web 应用程序

  2. 在左侧导航栏中,选择 Admin » Profile & Features

  3. Company profile 部分中,执行以下操作:

    1. 上传公司的徽标,格式为 JPG 或 PNG。这个标志将出现在创建的每个 Clean Room 上。

    2. 编辑 Company Name,定义您希望在环境中创建的 Clean Room 上显示的名称。

启用单点登录 (SSO)

您可以启用单点登录(SSO)访问 Web UI。此增强功能无需管理 Clean Room UI 的额外登录凭据,同时利用身份提供商(IDP)增强的安全控制,从而简化了用户访问。支持的 SSO 提供商包括 Okta、Azure AD 和 PingFederate。

要启用 SSO,请联系 Snowflake 支持部门

允许密钥对身份验证

Clean Room 环境用于与 Snowflake 账户通信的服务账户用户使用 密钥对身份验证 进行身份验证。如果 Snowflake 账户使用 身份验证策略 来控制用户的身份验证方式,则控制服务账户用户的身份验证策略必须允许密钥对身份验证。

要允许密钥对身份验证,请移除所有身份验证策略,或者通过 AUTHENTICATION_METHODS = ALLAUTHENTICATION_METHODS = KEYPAIR 添加身份验证策略。如果 Snowflake 账户具有不允许密钥对身份验证的账户级身份验证策略,则需要创建具有相应参数的新身份验证策略,然后将该策略分配给在安装过程中创建的服务账户用户。

您可以通过运行以下命令来检查您的身份验证策略:

SHOW AUTHENTICATION POLICIES;
Copy

空结果表表示没有策略,这意味着允许密钥对身份验证。

配置网络策略

如果 Snowflake 账户使用 网络策略 来控制网络流量,您必须明确允许来自 Web 应用程序与 Snowflake 账户通信时所用 IP 地址的流量。

在下表中找到您的云提供商账户区域,并配置您的账户网络策略以允许在该行中列出所有 IP 地址:

Snowflake 账户区域

允许 Web 应用程序的这些 IP 地址

  • AWS US 西部(俄勒冈州)

  • AWS US 东部(俄亥俄州)

  • AWS US 东部(弗吉尼亚北部)

  • AWS 南美(圣保罗)

  • Azure 西部 US 2(华盛顿)

  • Azure 中部 US(爱荷华州)

  • Azure 中南部 US(得克萨斯州)

  • Azure 东部 US 2(弗吉尼亚)

  • GCP US 中部 1(爱荷华州)

  • GCP US 东部 4(弗吉尼亚州北部)

52.7.249.136
34.195.16.248
52.7.210.215
  • AWS 加拿大(中部)

  • Azure 加拿大中部(多伦多)

15.223.145.218
3.96.6.109
15.222.142.44
  • AWS EU(爱尔兰)

  • AWS 欧洲(伦敦)

  • AWS EU (巴黎)

  • AWS EU (法兰克福)

  • AWS EU (斯德哥尔摩)

  • AWS EU(苏黎世)

  • Azure UK 南部(伦敦)

  • Azure 北欧(爱尔兰)

  • Azure 欧洲西部(荷兰)

  • Azure 瑞士北部(苏黎世)

  • Azure UAE 北部(迪拜)

  • GCP 欧洲西部 2(伦敦)

  • GCP 欧洲西部 4(荷兰)

54.93.86.99
3.126.238.8
3.127.143.168
  • AWS 亚太地区(孟买)

  • Azure 印度中部(浦那)

35.154.94.29
13.235.168.249
15.206.48.175
  • AWS 亚太地区(新加坡)

  • AWS 亚太地区(东京)

  • AWS 亚太地区(大阪)

  • AWS 亚太地区(首尔)

  • AWS 亚太地区(雅加达)

  • Azure 东南亚(新加坡)

  • Azure 日本东部(东京)

13.228.90.174
52.220.42.130
52.220.249.16
  • AWS 亚太地区(悉尼)

  • Azure 澳大利亚东部(新南威尔士州)

52.65.205.236
52.62.198.227
3.104.160.96

查看此环境的服务账户的详细信息

Web 应用程序使用服务账户与 Snowflake 进行通信。此服务账户是由账户管理员在为此账户安装 Clean Room 环境时创建的。

您不能修改有关服务账户用户的详细信息。

要查看此 Clean Room 环境的服务账户的详细信息,请执行以下操作:

  1. 登录 Web 应用程序。

  2. 导航到 Admin > Snowflake Admin

  3. 选择 Log in to Snowflake 并使用您的 Snowflake 管理员凭据登录。

  4. Snowflake Admin 页面中您可以看到服务用户名和服务用户电子邮件等信息。

语言: 中文