背景和范围

当前大数据团队没有一个统一的操作权限控制和管理平台,对于分析师在服务器上的权限,目前都是给予对应分析节点的EC2机器账号,且为了方便操作和管理都是给予的管理员权限,因此安全性风险较大;对于数据开发者,主要通过分配IAM控制AWS的操作权限;对于team的所有人都是通过分配aws的ak,sk在本地进行操作赋权;随着数据平台的不断的丰富和完善,需要在各组件之上做认证,鉴权和审计等管理,数据权限管理平台主要是为了统一所有人的操作权限而设计。开源权限组件apache ranger和apache sentry存在以下问题:

  • 如在命令行中或脚本中,使用export HADOOP_USER_NAME=hadoop方式或使用对应java api方式传入hadoop用户,执行hadoop相应命令,则会绕过所有权限检查
  • 不支持spark sql访问hive表权限校验,只能控制到目录文件级别
  • 无法精细粒度控制表权限,如对特殊表的下载权限

综上,数据平台团队准备自研数据权限管理系统。

目标

  • 采用公共模块或者公共配置文件去做用户权限管理,对服务器的账号权限及开源组件的自带账号权限服务解耦
  • 每个组使用不同的账号进行查询集群的数据(表和文件),所有人都通过公司内部统一账号平台office365使用
  • 所有查询集群数据的用户账号都需要经过权限管理模块验证,无权限的操作应该给予提示信息。
  • 根据各组的职责限定该部门的人员使用的账号只能查询归属于该组的数据。

非目标(可选)

  • 操作日志审计功能(有额外独立的日志系统会对大数据平台所有操作做审计)
  • 鉴权sdk(独立的服务)
  • 认证(采用公司内部的office365作为统一登录入口)
  • 对系统的菜单操作的功能权限不涉及,只专注数据权限
  • 数据侧的api未来可能作为一个候选权限管理加入

概要设计

整体结构


模块交互

管理后台从云端获取使用管理后台的user接口得到所有使用系统的用户列表

在管理后台里对用户列表中指定的用户进行授权,在授权的过程中,把用户的email,name信息同步到数据侧RDS,并保存权限关系到数据侧的RDS中,保存成功后,直接刷新数据侧的鉴权API使用的内存缓存

其他平台:如数据集成,数据调度,执行引擎,数据查询,元数据等系统涉及到的资源都只会依赖数据权限管理系统里的权限,不受其他约束

执行引擎先查询该用户提交的任务里的资源是否拥有权限,如果有,则检查权限是否符合期望,如果符合,则执行其他操作,会进一步将权限更新到权限配置里,如用户拥有db的create权限,则该用户在此db下新建的表,默认对该用户有all的权限,对该用户所在的组内其他人仅有read权限

用户能够在以上平台内操作,当前仅当用户拥有了至少一项权限,否则对不同操作类型,仅有默认以下权限:

db:展示当前所有database名称的权限

table:展示当前所有database的不同database下的所有table名称权限

path:展示当前所有的bucket名称权限

详细设计

实体模型


考虑到鉴权是一个高频操作,而赋权是一个低频操作,因此尽可能的减少表关联,所以使用了简化的RBAC模式

user表里的admin是数据平台系统级别,拥有admin权限的用户将不需要任何验证,对资源具有所有管理权,所有权限邮件审批都会给admin发邮件

user_group_user的group_admin是group级别(group可以没有group_admin),只对该group管理的资源有权限管理,该组的权限邮件的审批会给group_admin和admin同时发邮件,且group_admin具备审批资格

ttl主要是为了对权限做过期时间用的,常用场景是下载表数据场景,可通过ttl控制

权限表里的权限对于资源的定义如下:

数据存储

大数据平台数据权限管理设计相关推荐

  1. 数据级的权限管理和功能级的权限管理的区别,不使用框架(shiro,springsecurity)做权限设计的思考

    1 数据级的权限管理和功能级的权限管理 引自:http://www.iteye.com/problems/97374 功能级权限,有大有小.大的可以直接包括一个业务模块,小的可以是一个按钮.一般的功能 ...

  2. 通用权限管理设计 之 数据权限

    阅读目录 前言 初步分析 通用查询机制 数据权限规则 实际应用 结语 前言 前一篇文章<通用权限管理设计 之 数据库设计方案>介绍了[主体]- [领域] - [权限]( who.what. ...

  3. 大数据平台数据治理体系建设和管理方案

    1. 范围 1 2. 规范性引用文件 1 3. 术语.定义和缩略语 5 4. 总体说明 8 4.1. 概述 8 4.2. 目标 9 4.3. 原则 9 5. 数据治理体系 10 5.1. 总体框架 1 ...

  4. (转)通用权限管理设计 之 数据权限

    转自:leo's Space http://www.cnblogs.com/leoxie2011/archive/2012/03/20/2408542.html 阅读目录 前言 初步分析 通用查询机制 ...

  5. 基于Hadoop的大数据平台实施——整体架构设计

    大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的公司或组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃 ...

  6. 【数字化】分享整理-数据中台=大数据平台+数据资产管理平台+数据服务平台

    导读:数据中台需要采集数据作为原材料进行数据加工.数据建模,然后分门别类地储存,再根据实际的业 务场景,打造各类数据服务(含数据应用平台)从而实现对业务的赋能加速. 目录 1.数据中台的功能架构概览 ...

  7. 大数据24小时:众安推出汽车大数据平台“数据魔方”,国内首个新能源大数据线下创新园区落户青海

    [数据猿导读] DeepMind开发新款人工智能产品,可用于诊断眼底疾病:众安保险推出汽车大数据平台"数据魔方":国内首个新能源大数据线下创新园区在青海开园--以下为您奉上更多大数 ...

  8. 300页超全大数据平台数据治理规划方案模板

    大数据时代的安全与传统信息安全相比,变得更加错综复杂,大量的数据汇集,包括大量的企业运营数据.客户信息.个人的隐私和各种行为的细节记录,这些数据的集中存储增加了数据泄露风险.大数据的安全保护对数据完整 ...

  9. 系统权限管理设计 (转:http://blog.csdn.net/chexlong/article/details/37697555)

    权限设计(转:http://blog.csdn.net/chexlong/article/details/37697555)      1. 前言:      权限管理往往是一个极其复杂的问题,但也可 ...

  10. 系统权限管理设计 (转)

    权限设计(初稿)      1. 前言:      权限管理往往是一个极其复杂的问题,但也可简单表述为这样的逻辑表达式:判断"Who对What(Which)进行How的操作"的逻辑 ...

最新文章

  1. 转:在windows通过Xrdp软件远程桌面连接Fedora
  2. spring mvc 的各种参数的绑定方式
  3. python thrift demo
  4. 新一代爬虫利器 —— Playwright
  5. Asp SqlDataSource将数据库数据绑定在 GridView
  6. 关于OAuth 协议中刷新令牌存活时间的讨论
  7. 【树形DP】路径计数机(nowcoder 1103-B)
  8. 【转】wpf和winform的区别
  9. 程序员面试金典 - 面试题 16.06. 最小差(排序+双指针)
  10. 数据装载器连接其他oracle数据库_07
  11. 为什么选择springcloud
  12. 【clickhouse】clickhouse There is no DistributedDDL configuration in server config
  13. Webserver管理系列:5、利用MSConfig排查木马
  14. L1-051 打折-PAT团体程序设计天梯赛GPLT
  15. Unity Manual learning log
  16. simhash实现html页面相似度,基于改进的Simhash算法的相似文档识别技术
  17. 双系统卸载ubuntu
  18. 哥做的不是网站 是寂寞
  19. html5中歌曲和歌词同步的方法
  20. 北大计算机mooc题库,人工智能原理MOOC习题集及答案 北京大学 王文敏

热门文章

  1. 计算机连共享盘被禁止用户,如何禁止域用户共享文件夹
  2. python用pip安装whl文件
  3. ros通过程序的方式发布导航的目标点
  4. 如何恢复苹果笔记本电脑误删的数据?
  5. 全方位助力摄影师后期 Nik Collection 5
  6. 【北交所周报】和创科技成北交所首个过会的亏损企业;北证50周跌2.11%;新股辰光医疗周涨22.67%;...
  7. 自动重拨(订票,抢线的利器呀)
  8. git切换分支冲突的解决
  9. Baumer工业相机堡盟相机如何使用JPEG图像压缩功能(LXT.JP系列相机图像压缩功能的使用和优点以及行业应用)(C#)
  10. 在苹果Mac上的“日历”中怎样使用Siri建议?