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

本页面介绍了基于角色的访问权限控制 (RBAC) 的精细授权, 适用于 Cloud Data Fusion 6.5 版及更高版本。

RBAC 限制您开发应用的环境中的访问权限 Cloud Data Fusion 中的流水线。RBAC 可帮助您管理 可以访问 Cloud Data Fusion 资源,以及他们可以使用这些资源做些什么 以及它们可以访问哪些区域(例如实例或命名空间)。 Cloud Data Fusion RBAC 是一个授权系统,可提供精细的 基于 Identity and Access Management (IAM) 的访问权限管理功能。

何时使用 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(角色分配)

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

主账号

principal [主账号] (以前称为成员)可以是 Google 账号(面向最终用户)、服务 账号(针对应用和虚拟机)或是请求 Google 群组 拥有 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 开发者使用开发者角色: 创建、测试和管理流水线
  • 建议为提供命名空间的用户提供命名空间的操作员角色 或 DevOps 服务。他们能够 开发者可执行的操作(预览流水线除外)和 还可以部署工件和管理计算配置文件
  • 命名空间的 Editor 角色是一个特权角色,用于向用户或 Google 群组授予对命名空间中所有资源的完整访问权限。Editor 可视为开发者与运营商角色的并集。
  • OperatorAdmin 应该谨慎安装不受信任的插件或工件,因为这可能会带来安全风险。

问题排查

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

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

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

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

Cloud Data Fusion 存在一个已知问题,即具有 Instance Admin 角色无法在 Google Cloud 控制台中查看实例。要修复 授予 Project ViewerCloud 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 角色 实例。如需验证主账号是否在特定实例上具有该角色,请参阅 该 IAM Policy Analyzer

后续步骤