使用 AWS Clean Rooms 管理 Scope 3 排放的数据机密性 架构博客

使用 AWS Clean Rooms 管理范畴 3 排放的数据保密性

主要观察要点

  • 范畴 3 排放是由公司活动引起的间接温室气体排放,发生在公司无法直接控制的范围内。
  • 确保保密性是共享第三方供应商信息时面临的主要挑战。
  • AWS Clean Rooms 提供了在不共享或移动基础数据的情况下进行数据分析的机会。
  • 本文展示了如何在报告公司与其价值链伙伴之间共享范畴 3 排放数据。

范畴 3排放是由公司活动引起的间接温室气体排放,这些排放发生在公司无法直接控制或拥有的范畴内。测量这些排放需要从各种外部来源收集数据,例如原材料供应商、运输提供商及其他第三方。然而,共享专有信息时,数据保密性的维护成为一大挑战。企业往往不愿意分享可能被竞争对手利用的信息,因此难以准确测量和报告其范畴 3 排放,进而限制它们管理与气候相关的影响和风险的能力。

本博客将介绍如何利用 在报告公司及其两个价值链伙伴(原材料购买供应商和运输提供商)之间共享范畴 3 排放数据。在数据 AWS Clean Rooms协作之前,每个组织都会指定数据保密要求(参见图 1)。

![数据保密要求示意图](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig1-data- 删除)

解决方案概述

在这一架构中,AWS Clean Rooms 被用来分析和协同排放数据集,而不需要与合作者共享、移动或揭露底层数据(如图 2 所示)。

![AWS CleanRooms的架构示意图](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig2-arch- 删除)

这一方法使用了三个 AWS 帐户。 报告帐户 创建了 AWS Clean Rooms 协作,并邀请 购买商品帐户 和 运输帐户 成为成员。所有帐户都可以使用隐私增强控制来保护其底层数据,并通过 Amazon Simple Storage Service (S3) 使用 表直接贡献数据。

购买商品帐户 包含可以更新所购商品桶的用户。同样, 运输帐户 拥有可以更新运输桶的用户。 报告帐户 可以在配置的表上运行 SQL 查询,而 AWS Clean Rooms 仅返回符合所有参与帐户设置的分析规则的结果。

前置条件

在这一指导过程中,您需要满足以下前置条件:

  • 拥有三个位于同一 AWS 区域的
  • 每个帐户拥有一个包含排放数据的 桶(见图 1)
  • 每个 S3 桶都有

虽然 Amazon S3 和 AWS CleanRooms可选,但 会产生少量费用。文章后面将提供清理操作,以减少成本。

配置

我们为每个 AWS 帐户配置了 S3 桶,具体如下:

  • 报告帐户: reportingcompany.csv
  • 购买商品帐户: purchasedgood.csv
  • 运输帐户: transportation.csv

按照 的方法为每个 S3 数据源创建 AWS Glue 数据目录。AWS Glue 表应与图 1 中详细描述的模式相匹配(见图 3)。

![配置后的 'Purchased Goods' 的 AWS Glue表](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig3-glue- 删除)

数据消费者可以配置为进行查询的提取、分析和可视化(请参见图 2)。我们将 报告帐户 的 Glue 数据库标记为 “reporting-db”,Glue表的标记为 “reporting”。同样, 购买商品帐户 将标记为 “purchase-db” 和 “purchase”。

安全性

在生产环境中,建议采取额外措施来保护每个帐户。如需配置加密,请参阅本文结尾的 进一步阅读 部分、 角色及 的相关内容。

逐步指导

这一指导过程包括四个步骤:

  1. 报告帐户 创建 AWS Clean Rooms 协作,并邀请 购买商品帐户 和 运输帐户 共享数据。
  2. 购买商品帐户 和 运输帐户 接受该邀请。
  3. 为每个协作帐户应用限制如何在 AWS Clean Rooms 协作帐户之间共享数据的规则。
  4. 在 报告帐户 中创建并运行 SQL 查询。

1. 在报告帐户中创建 AWS Clean Rooms 协作

(本节涵盖的步骤要求您已登录到 报告帐户 。)

  • 进入 AWS Clean Rooms 控制台,点击 创建协作 。
  • 在 详细信息 区域,将 "Scope 3 Clean Room Collaboration" 输入 名称 栏。
  • 滚动至 成员 1 区域。在 成员显示名称 栏中输入 "Reporting Account"。
  • 在 成员 2 区域,为第一个协作成员名称输入 "Purchased Goods Account",并在 成员 AWS 帐号 ID 栏中输入其帐号。
  • 点击 添加其他成员 ,将 "Transportation Account" 作为第三个协作伙伴添加,填入其 AWS 帐号。
  • 在 成员能力 区域选择 “报告帐户” 作为可以查询和接收结果的成员,并点击 下一步 。
  • 选择 是的,现在通过创建会员来加入 。点击 下一步 。
  • 在 审核和创建 页面确认协作设置,然后选择 创建并加入协作和创建会员 。

随后,两个帐户将收到接受协作的邀请(见图 4)。控制台会显示每个成员状态为 “被邀请”,直到其接受邀请。接下来,我们将展示如何应用邀请成员对其数据的查询限制。

![AWS CleanRooms中新创建的协作](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig4-new- 删除)

2. 接受邀请并配置表协作规则

本节中所述的步骤适用于 购买商品帐户 和 运输帐户 ,使用的协作环境设置后,为简便起见,我将演示 购买商品帐户 的步骤,并注明 运输帐户 的不同之处。

  • 登录 AWS 会拥有 购买商品帐户 的帐号,并接受协作邀请。
  • 打开 AWS Clean Rooms 控制台,选择左侧导航面板的 协作 ,然后点击 可加入 。
  • 您会看到来自 Scope 3 Clean Room Collaboration 的邀请,点击该名称,然后点击 创建会员 。
  • 选择 表 ,然后 关联表 ,接著点击 配置新表 。

接下来的动作是关联从 purchasedgoods.csv 文件创建的 Glue 表。这一序列限制了在协作中对 origin_region 列( Transportation Account 表中的 transportation_mode 列)的访问。

  • 在 Scope 3 Clean Room Collaboration 中,选择左侧面板的 已配置表 ,然后 配置新表 ,选择与 purchasedgoods.csv 关联的 AWS Glue 表(如图 5 所示)。
  • 选择 (purchase-db) 和 (purchase)。
  • 通过转动 AWS Glue 滑杆选择 查看模式 确认正确的表部分。
  • 在 允许在协作中的栏位 区域,选择所有栏位,但不包括 origin_region 。此动作将防止 origin_region 列在协作中被访问和查看。
  • 完成这一步,选择 配置新表 。

![购买商品帐户表配置示意图](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig5-purchased- 删除)

  • 选择 配置分析规则 (见图 6)。
  • 选择 聚合 类型,然后点击 下一步 。
  • 选择 SUM 作为 聚合函数 ,并选择 s3_upstream_purchased_good 作为列。
  • 在 Join 控件下,选择 指定 Join 列 。从选项列表中选择 “item”。这样允许在 “ item ” 列上执行 SQL join 查询。点击 下一步 。

![购买商品帐户的表规则](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig6-table- rules-p-删除)

  • 下一页指定进行 “join” 命令所需聚合的唯一行数的最小值。选择 “ item ” 作为 列名 ,并选择 “ 2 ” 作为 最小不同值数量 。点击 下一步 。
  • 确认表配置查询规则后,选择 配置分析规则 。
  • 最后一步是在选择 关联到协作 并在下拉菜单中选择 Scope 3 Clean Room Collaboration 后,点击 关联表 ,刷新页面。

本节的程序对于 运输帐户 的步骤重复执行,且有以下例外:

  1. 在此次协作中共享的列为 item 、 s3_upstream_transportation 和 unit 。
  2. 聚合函数 是对 s3_upstream_transportation 列应用的 SUM 。
  3. item 列的 聚合限制 最少为两个不同值。

3. 在报告帐户中配置表协作规则

这时,成员帐户的表已经在协作中创建和共享。下一阶段是在 报告帐户 的 AWS 帐户中配置报告帐户表。

  • 进入 AWS Clean Rooms。选择 已配置表 ,然后 配置新表 。
  • 选择与文件 reportingcompany.csv 关联的 Glue 数据库和表。
  • 在 允许在协作中的栏位 区域选择 所有列 ,然后选择 配置新表 。
  • 使用 指导工作流 点击 配置分析规则 以配置协作规则。
  • 选择 聚合 类型,然后点击 下一步 。
  • 选择 SUM 作为 聚合函数 ,并将 ingredient 作为列(见图 7)。
  • 只能在 指定 join 列 区域的 ingredient 列上执行 SQL join 查询,请选择此项。
  • 在维度控件中,选择 product 。这一选择允许聚合依据产品名称进行 SQL 查询,然后选择 下一步 。
  • 在 标量函数 区域中选择 无 。点击 下一步 。(详细了解标量函数,请参见 )

![报告帐户的表规则](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig7-rules- 删除)

  • 在下一页中选择 ingredient 作为 列名 ,和 2 作为 最小不同值数量 。 点击 下一步 。确认提交查询控制记事,选择 配置分析规则 。
  • 在 审查和配置 窗口中校正设置,然后选择 下一步 。
  • 在 已配置表 标签中选择 关联到协作 。将该表指派到 Scope 3 Clean Rooms Collaboration 。
  • 在下拉菜单中选择 Scope 3 Clean Room Collaboration ,然后选择 选择协作 。在 Scope 3 Clean Room Collaboration 页面中,选择 reporting ,然后点击 关联表 。

4. 创建并运行 SQL 查询

现在可以在 报告帐户 中运行查询(见图 8)。

![报告帐户中的查询结果](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/05/24/fig8-query- 删除)

  • 选择一个 S3 目录来输出查询结果。选择 操作 ,然后选择 设置结果设置 。
  • 输入 S3 桶名称,然后点击 保存更改 。
  • 在查询文本编辑器中粘贴以下 SQL 片段(见图 8):

sql SELECT r.product AS "Product", SUM(p.s3_upstream_purchased_good) AS "Scope_3_Purchased_Goods_Emissions", SUM(t.s3_upstream_transportation) AS "Scope_3_Transportation_Emissions" FROM reporting r INNER JOIN purchase p ONr.ingredient = p.item INNER JOIN transportation t ON p.item = t.item GROUP BYr.product

  • 点击 **运行

Leave a Reply

Required fields are marked *