使用场景:通过命名空间服务账号进行访问权限控制

本页面介绍了在将数据从 Cloud Storage 迁移到 BigQuery 时,您如何在命名空间级别控制对 Google Cloud 资源的访问权限的用例。

如需控制对 Google Cloud 资源的访问权限,Cloud Data Fusion 中的命名空间默认使用 Cloud Data Fusion API Service Agent

为了更好地隔离数据,您可以将自定义 IAM 服务帐号(称为“每个命名空间的服务账号”)与每个命名空间相关联。 自定义 IAM 服务帐号(对于不同的命名空间,该账号可能不同)可让您在 Cloud Data Fusion 中控制命名空间之间对资源的访问权限,以进行流水线设计时操作,例如流水线预览、Wrangler 和流水线验证。Google Cloud

如需了解详情,请参阅使用命名空间服务账号进行访问权限控制

场景

在此用例中,您的营销部门使用 Cloud Data Fusion 将数据从 Cloud Storage 迁移到 BigQuery。

数据流水线,显示了 Cloud Storage 源、Wrangler 转换和 BigQuery 接收器。

营销部门有三个团队:A、B 和 C。您的目标是建立一种结构化方法,通过分别与团队 A、B 和 C 对应的 Cloud Data Fusion 命名空间来控制 Cloud Storage 中的数据访问权限。

解决方案

以下步骤展示了如何使用命名空间服务账号控制对 Google Cloud 资源的访问权限,以防止不同团队的数据存储区之间发生未经授权的访问。

将 Identity and Access Management 服务帐号与每个命名空间相关联

为每个团队在命名空间中配置 IAM 服务帐号 (请参阅 配置命名空间服务账号):

  1. 为团队 A 添加自定义服务帐号(例如 team-a@pipeline-design-time-project.),以设置访问权限控制。

    为团队 A 配置服务帐号。
    图 1:为团队 A 添加自定义服务帐号。
  2. 针对团队 B 和 C 重复配置步骤,以使用类似的自定义服务账号设置访问权限控制。

限制对 Cloud Storage 存储分区的访问权限

通过授予适当的权限来限制对 Cloud Storage 存储分区的访问权限:

  1. 向 IAM 服务帐号授予 storage.buckets.list 权限,这是列出项目中的 Cloud Storage 存储分区所必需的权限。 如需了解详情,请参阅 列出存储分区
  2. 向 IAM 服务帐号授予访问特定存储分区中的对象的权限。

    例如,向与 命名空间 team_A 关联的 IAM 服务帐号授予存储桶 team_a1Storage Object Viewer 角色。借助此权限,团队 A 可以在隔离的设计时环境中查看和列出该存储桶中的对象和托管文件夹及其元数据。

    在“存储分区详情”页面上授予角色。
    图 2: 在 Cloud Storage 存储分区 页面上,将团队添加为正文,并分配 Storage Object User 角色。

在相应命名空间中创建 Cloud Storage 连接

在每个团队的命名空间中创建 Cloud Storage 连接:

  1. 在 Google Cloud 控制台中,前往 Cloud Data Fusion **实例页面,然后在 Cloud Data Fusion Web 界面中打开一个实例。

    转到实例

  2. 依次点击系统管理员 > 配置 > 命名空间

  3. 点击您要使用的命名空间,例如团队 A 的命名空间。

  4. 点击连接 标签页,然后点击添加连接

  5. 选择 GCS 并配置连接。

    在 Cloud Data Fusion 中创建 Cloud Storage 连接
    图 3:为命名空间配置 Cloud Storage 连接。
  6. 通过重复上述步骤,为每个命名空间创建一个 Cloud Storage 连接。然后,每个团队都可以与该资源的隔离副本进行交互,以进行设计时操作。

验证每个命名空间的设计时隔离

团队 A 可以通过访问其各自命名空间中的 Cloud Storage 存储分区来验证设计时的隔离:

  1. 在 Google Cloud 控制台中,前往 Cloud Data Fusion **实例页面,然后在 Cloud Data Fusion Web 界面中打开一个实例。

    转到实例

  2. 依次点击系统管理员 > 配置 > 命名空间

  3. 选择一个命名空间,例如团队 A 命名空间 team_A

  4. 依次点击 菜单 > Wrangler

  5. 点击 GCS

  6. 在存储桶列表中,点击 team_a1 存储桶。

    • 您可以查看存储分区列表,因为团队 A 命名空间具有 storage.buckets.list 权限。

    • 点击存储桶后,您可以查看其内容,因为团队 A 命名空间具有 Storage Object Viewer 角色。

    验证团队 A 的 Cloud Storage 连接。 验证团队 A 是否可以访问相应存储分区。
    图 4 和 5:检查团队 A 是否可以访问相应的存储桶。
  7. 返回到存储桶列表,然后点击 team_b1team_c1 存储桶。 访问权限受到限制,因为您使用团队 A 的命名空间服务帐号隔离了此设计时资源。

    验证团队 A 是否无法访问受限资源。
    图 6:检查团队 A 是否无法访问团队 B 和 C 存储分区。

后续步骤

  • 详细了解 Cloud Data Fusion 中的 安全 功能。