多租户策略

最近更新时间:2019-09-26 10:21:43

Sparkling 采用多租户策略进行权限及角色管理,进而帮助用户管理项目、计算、存储及数据等资源,确保用户之间的资源、故障、安全的隔离性。本节将为您介绍 Sparkling 多租户策略,及其中涉及的账号登录体系、认证机制和用户角色。

特点

租户是使用 Sparkling 的一个用户或一组用户(包括主账号用户、子用户和协作者用户)。租户申请到的资源只能被租户内的用户使用,与其他租户之间隔离。

  • 同租户共享:
    同一租户空间下的用户共享计算/存储资源以及统一的 Sparkling 管理平台。同一租户空间架构图如下:
  • 多租户隔离:
    使用 Sparkling 服务的多租户之间资源隔离且计费独立。租户是 Sparkling 资源申请及计费的基本单位,租户独享数据源、数据、Notebook 笔记簿、任务等对象实例,独立管理所有的数据、权限、用户及角色。Sparkling 集群及资源只允许租户内的用户使用,各租户之间互相隔离。

策略

Sparkling 多租户策略贯穿整个用户使用流程,包括账号登录、身份认证、角色与权限管控。

  • 账号登录

    Sparkling 账号登录体系与腾讯云保持一致。您注册的腾讯云账号身份为主账号,并可以通过 用户管理 为主账号创建子账号进行协作。Sparkling 支持主账号和子账号(包括 子用户协作者)账号登录使用 Sparkling。

    • 主账号
      • 以主账号身份进行集群开通的创建者,自动拥有 Sparkling 内部的所有权限,且不能被其他的项目管理者进行撤权和删除操作。
      • 主账号身份登录,可以拉取子用户和协作者账号,向当前项目空间进行用户添加和授权操作。
    • 子用户
      • 由主账号创建,完全归属于创建该子用户的主账号。
      • 子用户身份登录,在被主账号授予【项目管理员】SparklingProjectGovernance 权限策略或者 AdministrorAccess 权限策略后,可以拉取其主账号名下的子用户账号信息,进行添加和授权操作。
    • 协作者账号
      • 协作者账号本身拥有主账号身份,可以被添加作为当前主账号的协作者。被添加的协作者账号为当前主账号的子账号之一,可切换回主账号身份。
      • 协作者账号无法将自己的子账号加入到主账号的项目空间中。
      • 协作者账号不可作为 Sparkling 项目管理者。

    主、子账号管理操作请参见 CAM 用户指南

  • 身份认证

    Sparkling 将腾讯云 CAM 权限管理体系和 Sparkling 内部权限管理这两套机制统一管理,帮助管理员轻松管控 Sparkling 用户权限。

    • CAM 权限管理体系
      CAM 权限管控体系主要用于:用户授权使用 Sparkling 服务;获取主账号所有的子账号信息。
      CAM 权限管控体系包括公有云租户/用户管理集群管控模块、数据管控模块、数据开发模块、任务调度模块、机器学习模块等,涵盖 SparklingFullAccess、SparklingClusterGovernance、SparklingProjectGovernance、SparklingDataGovernance、SparklingDataDevelop、SparklingDataAnalytics 六类权限。使用 Sparkling 服务前,用户必须提前在 CAM 账号体系中创建主账号,详情请参见 CAM 权限定义
    • Spakrling 权限管理系统
      Sparkling 内部账户权限管控系统主要是管理提供集群内部各类对象实例的权限管控服务,同时可与企业 LDAP/AD 系统深度集成,用于用户使用 Sparkling 内部的数据源、数据、Notebook 笔记簿、任务等对象实例。
      Spakrling 权限管理流程如下图所示:
  • 用户角色及权限管控

    角色是权限的载体,其拥有对 Sparkling 操作和资源的权限。权限附加到角色而不附加到具体的用户,不同的角色拥有的对 Sparkling 进行操作和访问的权限不同。Sparkling 中支持的用户角色包括项目管理员、集群管控者、数据管控者、数据开发者、数据分析师。

    说明:

    所有表格中1表示角色拥有该权限点,0表示没有。

    • 角色与权限:

      集群管控

      权限点 项目管理员 集群管控者 数据管控者 数据开发者 数据分析师
      查看集群 1 1 1 1 1
      创建集群 1 1 0 0 0
      集群监控 1 1 0 0 0
      集群续费 1 1 0 0 0
      集群扩容 1 1 0 0 0
      集群缩容 1 1 0 0 0
      集群销毁 1 1 0 0 0
      SparkUI/log 权限 1 1 1 1 1

      工作区

      权限点 项目管理员 集群管控者 数据管控者 数据开发者 数据分析师
      新建文件夹 1 0 0 1 1
      新建 Notebook 1 0 0 1 1
      搜索 Notebook 1 0 0 1 1
      搜索文件夹 1 0 0 1 1
      删除 Notebook 1 0 0 1 1
      重命名 Notebook 1 0 0 1 1
      定时调度 1 0 0 1 1
      运行所有命令 1 0 0 1 1
      运行单行命令 1 0 0 1 1
      查看命令结果 1 0 0 1 1
      可视化查询结果 1 0 0 1 1
      下载查询结果 1 0 0 1 1
      添加代码段 1 0 0 1 1
      删除命令 1 0 0 1 1
      SQLIDE 访问 1 0 0 1 1
      SQLIDE 查看数据目录 1 0 0 1 1
      编辑 SQL 1 0 0 1 1

      数据集成

      权限点 项目管理员 集群管控者 数据管控者 数据开发者 数据分析师
      数据源配置 1 0 1 0 0
      数据预览 1 0 1 0 0
      目标配置 1 0 1 0 0
      抽取任务配置 1 0 1 0 0
      数据源预览 1 0 1 0 0

      任务调度与监控

      权限点 项目管理员 集群管控者 数据管控者 数据开发者 数据分析师
      开启/关闭任务 1 0 0 1 1
      立即执行/删除任务 1 0 0 1 1
      查看任务创建时间 1 0 0 1 1
      查看创建人 1 0 0 1 1
      查看最近执行时间 1 0 0 1 1

      项目空间管理

      权限点 项目管理员 集群管控者 数据管控者 数据开发者 数据分析师
      添加成员 1 0 0 0 0
      编辑成员权限 1 0 0 0 0
      删除成员 1 0 0 0 0
      搜索查看成员 1 0 0 0 0
    • 角色与账号

      创建 Sparkling 项目的主账号是整个集群和 Sparkling 资源的拥有者(包括数据源、数据、Notebook、任务等),只有主账号及拥有主账号授权许可的子账号或协作者可以访问 Sparkling 中的资源。Sparkling 中每种角色及可作为其角色载体的账号类型如下:

      账号类型 项目管理员 集群管控者 数据管控者 数据开发者 数据分析师
      主账号 1 1 1 1 1
      协作者账号 0 1 1 1 1
      子账号 1 1 1 1 1