You need to enable JavaScript to run this app.
导航
概述
最近更新时间:2024.11.18 16:49:15首次发布时间:2021.10.22 11:37:25

数据安全为DataLeap用户提供数据权限的控制、数据保护服务,保障大数据资产安全。在本平台,您可以便捷地完成对资源的申请、审批、管理等工作。

1 基本概念

  • 数据源
    即指数据源的类型,目前数据安全已支持数据源类型 LAS、EMR Hive、EMR StarRocks、ByteHouse CDW、ByteHouseCE 等。

    注意

    • 子账号需具备 ByteHouseCEStandardAccess 权限后,才可在数据安全侧管理 ByteHouseCE 数据权限。子账号授权激活需执行以下操作:
      1. 主账号在访问控制台给子账号授予 ByteHouseCEStandardAccess 权限。
      2. 该子账号登录一次 ByteHouse CE 控制台
    • 建议主账号不要授予子账号以下权限,否则该子账号会绕过 DataLeap-数据安全拥有相应数据类型的超级权限。
      • ByteHouseCE:ByteHouseCEFullAccess 策略,system_admincluster_admin 角色。
      • ByteHouse CDW:ByteHouseFullAccess 策略,AccountAdminSystemAdmin 角色。
      • EMR Hive:在 EMR 引擎侧 Ranger 上授予子账号相应集群的 all - database, table, column 权限。访问 Ranger UI 的相关说明可参见 Ranger 概述
  • 资源类型
    大数据安全场景下的资源存在数据库、数据表、行限制、敏感列、资源包五类资源。
    • 行限制
      若存在以下情况,管理者可在产品上设置行限制。
      • 数据表较大(例如流量等大宽表),整表授权风险极高。
      • 希望申请者能够按照一定的条件访问数据表。
      • 希望各个业务方能自己进行审批、回收等权限管理。
    • 敏感列
      若表中存在几列十分敏感的数据(如 idcard、phone 等),需要用户单独进行申请,同时可以按列进行回收与授权精细化管理,此时管理者可在产品上设置敏感列。设置时,可选择原本表的获权方是否需要申请敏感列权限。
    • 资源包
      一个数据库内的多个资源可以打包成一个或多个资源包,申请资源包通过后可获得该包内的所有数据权限。
  • 保密级别
    使用的数据可以定义为不同的保密级别,从L1到L4数据的保密性是递增的,即L1的保密级别最低,L4的保密级别最高。

2 基础角色

在数据安全场景下,根据用户所具备能力及获取权限方式的不同,可以将资源用户分为生产者和管理者两种角色。

  • 生产者:是指库管理员、表负责人,可以设置资源信息、管理资源权限,默认不参与资源申请的审批。
  • 管理者:是指权限负责人,对资源安全负责,既参与审批也可设置审批流程,还可以对负责的资源进行权限管理。
    • 不同资源层级可细分为不同的权限负责人,包括库权限负责人、表权限负责人、行权限负责人和列权限负责人。
    • 权限负责人可以管理自身资源,以及更低层级资源。例如,某数据库的库权限负责人既可以管理该数据库,也可以管理该库下的表、行、列。

不同角色所具备的能力如下表所示。

能力分类

生产者(库管理员、表负责人)

管理者(库/表/行/列权限负责人)

管理能力(授权/回收/设置密级等)

支持

支持

设置或移交权限负责人角色

支持,同时支持修改设置较低层级资源的权限负责人。

支持,同时支持修改设置较低层级资源的权限负责人。

资源赋权方式

默认赋权,可更改设置。

需单独申请或主动授权。

权限审批

不支持,后续可配置。

支持

说明

  • 若将生产者设置为权限负责人,则生产者即为管理者,同时具备了参与审批的能力。
  • 设置审批流程时,可以将生产者添加为审批人。

3 权限申请类型

3.1 主要流程

Image
库、表、行、列均作为单独的资源实体,支持申请类型如下:

  • 整库权限申请
  • 整表权限申请
  • 行限制申请
  • 敏感列申请

注意

  • 整表权限包含行限制权限,申请行限制时,既可申请整表权限也可按行申请。
  • 整表权限不包含敏感列权限,必须申请敏感列权限后,才能使用敏感列。

3.1 整库权限申请

为避免频繁申请数据表,DataLeap 数据安全支持设置整库粒度的申请,且可设置是否开放该申请。

3.2 整表权限申请

整表权限申请是最常用的使用场景。为避免频繁申请行数据,DataLeap 数据安全支持设置整表粒度的申请,且可设置是否开放该申请。
根据管理者对权限的具体设置,会出现表设置了行限制或敏感列的情况,可单独进行申请。

3.3 行限制申请

若表设置了行限制,可按需申请行限制,支持按受控字段的枚举值进行申请,申请时可手动增加枚举值。
例如,管理者希望按照字段city来控制用户访问的范围,设置了行限制"city = Beijing"、"city = Shanghai",并关闭了整表权限申请,则用户后续只能按照行限制"city = Beijing"、"city = Shanghai"申请权限。申请后,可访问符合一定过滤条件的数据,如where city = 'Beijing',详细示例可参见示例详解部分。

3.4 敏感列申请

若表设置了敏感列,可按需申请敏感列。
例如,管理者设置了敏感列"city",则用户必须申请敏感列"city"的权限后,才能访问“city”列的数据,详细示例可参见示例详解部分。

3.5 示例详解

张先生有一张数据表,信息如下,他设置了行限制"sex=F"、敏感列"city"。

name

age

sex

city(敏感列)

zhangsan

71

F

Beijing

lisi

58

M

Guangzhou

wangwu

61

M

Beijing

zhaoliu

46

F

Tianjin

sunqi

64

M

Shanghai

张先生申请不同权限后,可访问的范围各有不同。

  • 申请整表权限:可以查询敏感列以外的所有数据。

    name

    age

    sex

    zhangsan

    71

    F

    lisi

    58

    M

    wangwu

    61

    M

    zhaoliu

    46

    F

    sunqi

    64

    M

    SQL查询语句示例如下。

    • 正确示例
    select name,age,sex from db.table
    
    • 无权访问的示例
    select name,city from db.table  /无敏感列权限
    
  • 申请整表权限 + 敏感列"city" :可以自由访问该表所有数据,SQL查询语句示例如下。

    select * from db.table
    
    select name,city from db.table
    
  • 申请行限制"sex=F":可查看不包括敏感列在内的所有"sex=F"的数据。

    name

    age

    sex

    zhangsan

    71

    F

    zhaoliu

    46

    F

    SQL查询语句示例如下。

    • 正确示例
    select name,age,sex from db.table where sex = 'F'
    
    • 无权访问的示例
    select name,city from db.table where sex = 'F' /无敏感列权限
    
    select * from db.table   /无整表和敏感列的权限
    
    select name,age,sex from db.table  /无整表的权限
    
  • 申请行限制"sex=F" + 敏感列"city":可查看所有"sex=F"的数据。

    name

    age

    sex

    city(敏感列)

    zhangsan

    71

    F

    Beijing

    zhaoliu

    46

    F

    Tianjin

    SQL查询语句示例如下。

    • 正确示例
    select * from db.table where sex = 'F'
    
    select name,sex,city from db.table where sex = 'F'
    
    • 无权访问的示例
    select * from db.table  /张先生无整表的权限,必须在SQL语句中指定WHERE从句
    
    select name,sex from db.table  /没有整表的权限,必须在SQL语句中指定WHERE从句