基于角色的访问权限控制 (RBAC) 概览

本页面介绍了 Cloud Data Fusion 中基于角色的访问权限控制 (RBAC) 的精细授权。

在 Cloud Data Fusion 实例中启用 RBAC 后,您可以控制实例和命名空间中的访问权限,例如哪些人可以访问 Cloud Data Fusion 资源以及他们可以对这些资源执行哪些操作。

RBAC 的使用场景

RBAC 在单个 Cloud Data Fusion 实例中提供命名空间级别隔离。建议用于以下用例:

  • 帮助减少组织使用的实例数量。
  • 拥有多个开发者、团队或业务部门使用单个 Cloud Data Fusion 实例。

借助 Cloud Data Fusion RBAC,组织可以:

  • 仅允许用户在命名空间内运行流水线,不允许修改工件或运行时计算配置文件。
  • 允许用户仅查看流水线,但不允许修改或运行流水线。
  • 允许用户创建、部署和运行流水线。

建议:即使您使用 RBAC,也要保持隔离, 安全性和性能稳定性,请使用单独的 用于开发和生产环境的项目和实例。

限制

  • 用户可以在实例或命名空间级层授予一个或多个角色。
  • RBAC 仅适用于 Cloud Data Fusion 企业版
  • 命名空间数:对每个 实例。
  • 如需了解启用 RBAC 的实例中的并发用户数上限,请参阅价格
  • 自定义角色:不支持创建自定义 RBAC 角色。
  • Cloud Data Fusion RBAC 不支持对以下各项进行授权: 连接管理
  • 使用服务账号 OAuth 访问令牌访问启用了 6.5 版 RBAC 的实例时,必须指定以下范围,尤其是 userinfo.email 范围。如果没有这些权限,您将遇到权限问题 个遭拒的错误。
    • https://www.googleapis.com/auth/userinfo.email
    • https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/servicecontrol

Role assignments(角色分配)

角色分配由三个元素组成:主账号、角色定义和范围。

主账号

您可以向主账号授予角色,以更改其对 Cloud Data Fusion 资源的访问权限。

角色定义

一个角色包含一组权限,可让您对 Google Cloud 资源执行特定操作。

Cloud Data Fusion 提供多种 预定义角色

示例

  • Instance Admin 角色 (datafusion.admin) 允许主账号创建和删除命名空间并授予权限。
  • Developer 角色 (datafusion.developer) 可让主账号创建和 删除流水线、部署流水线和运行预览。

范围

范围是访问权限适用的资源集。当您将 角色,那么您可以通过定义范围(例如 实例或命名空间。如果您想将 Developer 角色,但仅限一个命名空间。

安全建议

采用安全模型并使其满足组织的需求和要求可能具有挑战性。以下建议旨在帮助您简化采用 Cloud Data Fusion 的 RBAC 模型的过程:

  • 应谨慎授予 Instance Admin 角色。此角色可以授予对实例及其所有底层 Cloud Data Fusion 资源的完整访问权限。拥有此角色的主账号可以通过以下方法向其他人授予权限: 使用 REST API。
  • 当需要主账号时,不应授予 Instance Admin 角色 有权访问 Cloud Data Fusion 中的各个命名空间 实例。请改为将 Instance Accessor 角色授予部分命名空间上的 Viewer/Developer/Operator/Editor 角色之一。
  • 首先可以安全地分配 Instance Accessor 角色,因为它可以授予主账号对实例的访问权限,但不会授予对实例中任何资源的访问权限。此角色通常与 Viewer/Developer/Operator/Editor 中的一个搭配使用,以授予对实例中一个或部分命名空间的访问权限。
  • 建议将 Viewer 角色分配给想要自助服务以了解正在运行的作业的状态,或使用 Cloud Data Fusion 实例查看管道或日志的用户或 Google 群组。例如,想知道处理是否已完成的日报的消费者。
  • 建议负责创建、测试和管理流水线的 ETL 开发者使用 Developer 角色
  • 对于提供运营管理员或 DevOps 服务的用户,建议使用命名空间的 Operator 角色。他们能够 开发者可执行的操作(预览流水线除外)和 还可以部署工件和管理计算配置文件
  • 命名空间的 Editor 角色是一个特权角色,用于向用户或 Google 群组授予对命名空间中所有资源的完整访问权限。Editor 可视为开发者与运营商角色的并集。
  • OperatorAdmin 应该谨慎安装不受信任的插件或工件,因为这可能会带来安全风险。

问题排查

本页面将介绍如何在 Google Cloud 控制台中解决与 RBAC 相关的问题, Cloud Data Fusion。

拥有 RBAC 中命名空间的 Cloud Data Fusion Viewer 角色的主账号可以修改流水线

访问权限基于 IAM 和 RBAC 的组合 角色。IAM 角色优先于 RBAC 角色。 检查主账号是否具有 Project EditorCloud Data Fusion Admin IAM 角色。

在 RBAC 中拥有 Instance Admin 角色的主账号无法在 Google Cloud 控制台中查看 Cloud Data Fusion 实例

Cloud Data Fusion 存在一个已知问题,即具有“实例管理员”角色的主账号无法在 Google Cloud 控制台中查看实例。要修复 授予 Project Viewer 或某个 Cloud Data Fusion IAM 角色 以及将其设为实例的管理员。此授权 拥有对项目中所有实例的主账号的 Viewer 访问权限。

阻止主账号查看没有角色的命名空间

为了防止主账号查看没有角色的命名空间, 不得有 Project Viewer 或以下任一项 Cloud Data Fusion IAM 角色。 而是仅向命名空间中的主账号授予 RBAC 角色 业务运营环境

拥有此类访问权限的主账号将不会看到 Cloud Data Fusion 列表 Google Cloud 控制台中的实例。而应向用户提供指向 实例,如下所示: https://INSTANCE_NAME-PROJECT_ID.REGION_NAME.datafusion.googleusercontent.com/

当主账号打开实例时,Cloud Data Fusion 会显示已向主账号授予 RBAC 角色的命名空间列表。

向主账号授予 Cloud Data Fusion Accessor 角色

为主账号分配任何 Cloud Data Fusion 实例的任何其他 RBAC 角色时,系统会隐式为该主账号分配 Accessor 角色。如需验证某个主账号是否在特定实例中具有该角色,请参阅 IAM 政策分析器

后续步骤