Snowflake Data Clean Rooms:管理员任务

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

管理 Clean Room 用户

使用应用程序角色管理对 UI 和 API 的访问权限。不同的角色授予对 API 和 UI 的访问权限。

还必须为用户分配默认仓库并授予其使用权限。

管理对 Clean Room UI 的访问权限

要授予对 Clean Room UI 的访问权限,请将相应的 Clean Room UI 角色分配给用户或子角色。以下角色用于访问或管理 Clean Room UI:

  • ACCOUNTADMIN: 用于安装或卸载 Clean Room 环境。授予对 Snowflake Admin 页面的访问权限,该页面用于管理服务用户和账户功能,例如 Cross-Cloud Auto-Fulfillment、外部表和 Iceberg 表以及 UI 用户的数据集注册。此角色包括所有其他 Clean Room 角色的权限。

  • MANAGE_CLEANROOMS: 允许创建、更新、删除和安装 Clean Room,以及在 Clean Room UI 中创建、更新、删除和运行分析。

  • MANAGE_DCR_PROFILE_AND_FEATURES: 授予对 :ui:Admin 部分中 Profile & Features 页面的访问权限,您可以在其中管理公司概况并控制哪些第三方连接器可以在 Clean Room 中使用。

  • MANAGE_DCR_CONNECTORS: 授予对 Connectors 页面的访问权限,您可以在其中配置第三方连接器。

  • MANAGE_DCR_COLLABORATORS: 授予对 Collaborators 页面的访问权限,您可以在其中管理 UI 用户的批准协作者列表。不控制可供 API 用户使用的协作者列表,这些用户可以邀请任何 Snowflake 账户进行协作。

示例

USE ROLE ACCOUNTADMIN;
CREATE ROLE dcr_access;

-- Choose your privileges:
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_CLEANROOMS TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_COLLABORATORS TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_PROFILE_AND_FEATURES TO ROLE dcr_access;
GRANT APPLICATION ROLE SAMOOHA_BY_SNOWFLAKE.MANAGE_DCR_CONNECTORS TO ROLE dcr_access;

GRANT USAGE ON WAREHOUSE <your_warehouse> TO ROLE dcr_access;
ALTER USER <some_user> SET DEFAULT_WAREHOUSE  =  <your_warehouse>;
GRANT ROLE dcr_access to USER <some_user>;
Copy

管理 API 用户

Clean Room 定义了以下角色来管理对 UI 和 API 的访问权限。在 SAMOOHA_BY_SNOWFLAKE 范围内,所有角色都是应用程序角色。

以下 Snowflake 角色用于访问或管理 API:

  • ACCOUNTADMIN: 用于安装或卸载 Clean Room 环境的角色。

  • SAMOOHA_APP_ROLE: 授予对此账户中 Clean Room API 的完整权限。(Web 应用程序使用此角色与 API 通信。

  • 仅限运行的开发者角色: 拥有 SAMOOHA_APP_ROLE 的用户可以 创建访问受限的角色。此角色也称为 运行角色,授予对 Clean Room 子集使用 API 程序子集的权限。可以向用户授予这些有限的角色,以便在您的账户中为特定用户(例如数据分析师)提供范围内的使用权限。通过调用 consumer.grant_run_on_cleanrooms_to_role 来创建有限的角色。

授予或撤消完整 API 访问权限

SAMOOHA_APP_ROLE 角色授予对账户中所有 Clean Room 的完整 API 访问权限。

授予完整 API 访问权限:

USE ROLE ACCOUNTADMIN;
GRANT ROLE SAMOOHA_APP_ROLE TO USER <user_name>;
Copy

撤销完整 API 访问权限:

USE ROLE ACCOUNTADMIN;
REVOKE ROLE SAMOOHA_APP_ROLE FROM USER <user_name>;
Copy

授予有限的 API 访问权限

您可以在账户中授予对特定 Clean Room 的有限 API 访问权限。有限访问权限仅允许运行 一部分使用者过程,例如 consumer.run_analysis,但不允许创建、联接或修改 Clean Room。

以下是向用户授予有限访问权限的方法:

  1. 拥有完整访问权限且可以授予 SAMOOHA_APP_ROLE 角色的用户创建新角色并为该角色分配有限权限:

    -- Create the 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 the role limited privileges on a subset of clean rooms.
    CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role(
      [$cleanroom_1, $cleanroom_2],
      'MARKETING_ANALYST_ROLE'
    );
    
    -- Grant the role to a user.
    GRANT ROLE MARKETING_ANALYST_ROLE TO USER george.washington;
    
    Copy
  2. 随后,用户使用有限的角色在 Clean Room 账户中执行特定操作:

     -- User george.washington logs in and uses the limited role.
     USE WAREHOUSE APP_WH
     USE ROLE MARKETING_ANALYST_ROLE;
     USE SECONDARY ROLES NONE;
    
     -- Consumer-run analyses should succeed.
     CALL samooha_by_snowflake_local_db.consumer.run_analysis(
       $cleanroom_name,
       'prod_overlap_analysis',
       ['MY_DB.MYDATA.CONVERSIONS'],  -- Consumer tables
       ['MY_DB.MYDATA.EXPOSURES'],      -- Provider tables
       object_construct(
         'max_age', 30
       )
     );
    
    -- Clean room creation and management procedures fail.
    CALL samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
    
    Copy

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

SHOW GRANTS OF ROLE <run_role_name>;
Copy

撤销有限的 API 访问权限

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

  • 要撤消单个用户的运行权限,请撤消该用户的角色。

管理 Clean Room 协作者

协作者 是指被 Clean Room 创建者邀请联接 Clean Room 的用户。

使用 Clean Room UI 时,创建者可以邀请列表中的协作者。此列表由具有 MANAGE_DCR_COLLABORATORS 角色的人员管理。

Clean Room API 用户不受预定义列表的限制,可以通过 Snowflake 账户定位器添加任何 Clean Room 协作者。

如果 Snowflake 协作者的账户所在区域与您的 Snowflake 账户不同,则您的账户管理员必须先 启用 Cross-Cloud Auto-Fulfillment,然后您才能将其添加为协作者。

如果您想邀请没有 Snowflake 账户的协作者,则必须先为他们 创建一个 Clean Room 管理的账户

要整理 Clean Room UI 中使用的协作者列表,您需要 MANAGE_DCR_COLLABORATORS 角色。

  1. /INCLUDE/cleanrooms/text/text-sign-in-page.txt

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

  3. 执行下列操作之一:

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

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

添加仓库选项

任何具有 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 中控制可用的连接器,您需要 MANAGE_DCR_CONNECTORS 角色。

  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 都带有您的徽标和公司名称。要为您的公司定义徽标和名称,您需要 MANAGE_DCR_PROFILE_AND_FEATURES 角色。

  1. 登录 Web 应用程序

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

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

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

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

启用单点登录 (SSO)

要使用 Snowflake 身份验证启用单点登录 (SSO),请联系 Snowflake 支持部门

允许密钥对身份验证

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

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

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

SHOW AUTHENTICATION POLICIES;
Copy

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

在 Clean Room UI 中启用或禁用激活

使用 Clean Room UI 时的激活由 Clean Room 管理员全局控制。Clean Room API 中的激活由提供商在 Clean Room 级别上控制。

本节介绍如何在使用 Clean Room UI 时启用或禁用激活。要了解如何在使用 API 时启用激活,请阅读 激活说明

使用 Clean Room UI 时,您的 Clean Room 账户中默认启用提供商和使用者激活。第三方激活必须手动启用。

以下是为账户中的 UI 用户启用或禁用激活的方法:

  1. 以 DCR 管理员身份 登录到 Web 应用程序中的 Data Room 环境

  2. 选择 Admin » Profile & Features

  3. Activation 部分中,选择 Edit

    • 要管理 使用者激活,请执行以下操作:选中或清除 Collaborator Account 旁的复选框。

    • 要管理 提供商激活,请执行以下操作:选中或清除您自己的账户名称旁的复选框。

    • 要管理 第三方激活,请执行以下操作:选中或清除要启用或禁用的第三方激活目标旁的复选框。第三方激活可通过连接器启用,并且仅在 Clean Room UI 中可用。请参阅可用的第三方连接器列表

Learn how to implement activation in a clean room.

配置网络策略

如果 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 环境的服务账户的详细信息,您需要 MANAGE_DCR_PROFILE_AND_FEATURES 角色。

  1. /INCLUDE/cleanrooms/text/text-sign-in-page.txt

  2. 导航到 Admin > Snowflake Admin

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

语言: 中文