写点什么

某头部零售集团的数据云平台“多租户安全”实践

  • 2023-03-31
    北京
  • 本文字数:3038 字

    阅读完需:约 10 分钟

某头部零售集团的数据云平台“多租户安全”实践

这家以食品零售起家的集团,旗下拥有多个全国知名的子品牌。在品牌 A 的业务部门用上数据云平台一年后,品牌 B 表示,“A 用得不错,我们也在考虑上数据云平台,部分数据和 A 做个互动,能碰撞出更多价值,也少做重复建设。”

 

现在,有 3 个选择摆在这家集团的 IT 团队面前:


方案一:品牌 B 独享新一份集群资源,与品牌 A 共用同一套数据云平台管理。

方案二:品牌 B 数据接入原有平台,与品牌 A 共用一套资源及平台。

方案三:和品牌 A 共用一套资源及平台,但采用多租户安全技术方案。

需求拆解:要资源节约,也要数据安全


上文所述方案一,理论上是最直接的选择:


品牌 A 继续用原有资源及数据云平台,品牌 B 另外采购一份新的集群资源,双方数据物理隔离,互不抢占资源,权限也完全掌握在自己手中,安全指数极高


奇点云数据云平台 DataSimba 支持通过同一平台管理多个工作空间(Workspace),因此企业无需另外购买数据云平台,品牌 A、品牌 B 以及该公司更多其他部门都能在各自权限内使用该平台。


方案一:工作空间级隔离


然而,双份集群资源意味着双边资源都无法得到最大程度利用,存在一定浪费。

 

平台、资源都直接复用的方案二怎么样?


无需重新部署,只要导入品牌 B 的数据,并在数据云平台上为 B 开设新账户,A 和 B 通过平台各自管理权限内的项目;双品牌可以共享集群数据、存储和计算资源,依赖平台调度能力,品牌 A 和品牌 B 所用的资源能动态调度,总量上更节约。



方案二:共用资源及平台的弱逻辑隔离


方案二的优点是显而易见的,此类做法在业内也较为常见。然而,在数据安全上稍有弱点:该方案的权限体系未触及大数据集群管理引擎,就像租在同一栋楼里,有门做了隔断,但没有金融级的防盗门和监控系统。奇点云资深架构专家简愉谈到:“这种方案对管理员要求极高,管理员必须要细致地配置权限、角色、策略,并定期检查收回过期的权限,才能规避违规行为。(违规行为例如,内部运维人员绕过上层体系,直连大数据底层集群以试图获取项目数据。)”


此外,方案二对平台调度能力要求较高。如果平台调度不够“聪明”,就容易出现品牌 B 任务耗时过久、品牌 A 任务不得不长时间等待甚至影响业务的情况。


在资源高效利用但互不抢占、同时保障数据安全的前提下,最终,这家企业选择了方案三:多品牌共用一套集群资源和数据云平台,并采用多租户安全技术方案。(注:对于集团企业/上市公司的财务部门而言,出于合规要求,仍更推荐采用工作空间级隔离方案,即方案一。)

方案解析:三个“双层”,加持多租户安全


那么,到底什么是多租户?


“多租户”,顾名思义,资源方把资源“租赁”给多个客户。“租”指客户自己没有资源(例如计算、存储、数据、服务等资源),需要租用。“多”则指资源提供方提供的资源同时被多个租户租赁使用。


多租户技术自提出以来已有 60 余年,从大型机到云计算时代,都曾得到广泛应用。它让资源提供方的资源利用最大化,作为平台身份服务更多租户,也免去了租户自行运管基础设施的烦恼。以企业举例,IT 团队负责为企业采购并管理一整套资源,其中各 BU 就是不同的租户,租户在各自的资源空间下完成自己的开发工作,而互不抢占资源、影响作业进度。同时,管理方也可以根据各租户长期使用情况,更合理地规划资源。

 

事实上,对于“企业级”的数据资产管理而言,多租户仅仅完成资源隔离还不足够。“多租户场景下的数据安全值得企业关注。”简愉表示,在资源共享的情况下,如何实现对资源进行租户粒度的安全隔离,是资源提供商需要解决的核心技术问题

 

为此,DataSimba 在经典的多租户方案基础上,增加了“双层身份认证”、“双层权限校验”、“双层存储加密”,来保证租户资源的强逻辑隔离与数据安全。


最终,该集团采用了 DataSimba 多租户安全方案,技术架构如下图所示:


方案三:DataSimba 多租户安全隔离

 

  • 双层身份认证


即证明“我是谁”。


数据云平台(例如 DataSimba)和大数据集群管理引擎(例如 DataKun)是两套独立的系统,有各自的账户体系,需要在每个系统入口均进行严格的身份认证。其中,DataKun 开启了 Kerberos 认证,每个用户(Unix User)都会被分配自有的 Principal 及 Keytab 文件(相当于登录名和密码)。


在两套系统各自完成身份认证的情况下,完成两套账户的一对一映射。此后,DataSimba 的用户(User)向 DataKun 提交分布式离线/实时作业,都是通过其关联的 Kerberos 凭证进行身份认证。


  • 双层权限校验


即校验我是否有权限对相应资源进行相应操作。


DataSimba 对接口和菜单权限、数据权限均有所管控。以数据权限为例,租户(Account)下设若干子账号(User),子账号的数据权限申请只能在租户已租用的资源范围内,权限粒度可精确到表、字段、行级。只有权限校验通过,子账号方可通过 DataSimba 向大数据集群提交作业,否则在这一层即校验失败,作业/任务中止提交。


同样,大数据集群管理引擎例如 DataKun,也需要进行权限校验,鉴权粒度为数据库级数据权限,来保障大数据集群侧用户(Unix User)数据、存储、计算的隔离与安全。大数据集群管理引擎理论上不限于 DataKun,其它部署了安全组件的大数据集群管理引擎也可实现。


需要注意的是,两层权限均是通过权限策略进行强逻辑隔离。这也意味着租户之间的计算、数据、存储和服务隔离是软隔离,可以通过动态调整权限策略,实现多租户之间的计算、数据、存储和服务的共享。比如品牌 A 的数据云平台租户可以给品牌 B 租户赋予数据访问权限,即可实现品牌 A 和品牌 B 的数据共享,而无需进行数据迁移。


  • 双层存储加密


即就算试图绕过 DataSimba 和大数据集群管理引擎、直接读取源文件,也无法读取成功。架构中设置了两层文件存储加密“双保险”,包括:DataSimba 侧基于分布式存储方案,开启透明加密;大数据集群引擎侧开启底层文件加密和密钥的管理权限独立托管。

为什么权限管控一定要“双层”?


实际上,从技术实现来看,数据权限管控压缩成一层似乎也无妨:


统一在大数据集群侧大数据安全组件中实现对数据云平台 DataSimba 用户的表、字段、行级数据权限管控。子账号(User)在通过 DataSimba 向集群管理引擎提交 Hive/Spark/Flink 等大数据作业任务时,使用其集群侧的 Kerberos 凭证即可。这也是业内很多大数据平台服务商所采用的方案。

 

然而,从自主可控的数据安全要求来看,设置双层数据权限管控是极为必要的。


在许多客户的实际场景中,数据云平台和大数据集群管理引擎可能是独立运营的,其厂牌不同,底层大数据集群管理还可能交由特定部门维护。因此,企业内负责数据云平台的部门及其服务商能否在集群管理引擎安装安全插件,就成了不确定性。也就是说,数据云平台如果本身没有严格的数据权限管控体系,而完全依赖于集群管理的安全政策,就难以 100%确保数据安全


因此,DataSimba 设置了数据权限代理层,解耦数据云平台与客户大数据集群管理的安全性依赖,从而实现在不侵入大数据集群管理引擎的前提下,依旧有与大数据安全组件等同能力的数据权限管控。


近期,该零售集团已完成 DataSimba 多租户技术架构的部署。在多个数据团队互不抢占资源的同时,相较传统方案,更节约了 50%的大数据集群计算节点。同时,通过动态的权限管控,支持租户间(例如跨部门)数据安全共享,而无需数据迁移成本。

 

目前,奇点云数据云平台 DataSimba 多租户架构已在十余家企业完成落地实践,包括旗下有汽车、工业技术等多业态的知名工业集团,创新机器人领域的科技公司,及知名酒类贸易集团等等。


作者简介:


简愉,奇点云数据平台部资深架构师,曾供职于中国科学技术大学博士后/副研究员,主攻大数据领域算法与安全方向研究,已发表数篇 SCI 学术期刊/会议论文,并发明大数据安全技术专利。

2023-03-31 17:454812
用户头像
李冬梅 加V:busulishang4668

发布了 960 篇内容, 共 558.0 次阅读, 收获喜欢 1119 次。

关注

评论

发布
暂无评论
发现更多内容

Java中的深拷贝和浅拷贝

Ayue、

深拷贝

性能工具之代码级性能测试工具ContiPerf

zuozewei

单元测试 性能测试 测试工具 12月日更

作业帮检索服务基于 Fluid 的计算存储分离实践

阿里巴巴中间件

云计算 云原生 中间件 存储分离 Fluid

Cube 技术解读 | Cube 小程序技术详解

阿里巴巴终端技术

小程序 ios android 移动开发 客户端

迷雾中的自动化测试体系建设

CODING DevOps

自动化测试 接口测试 业务驱动测试

百度智能云产业智能化新生态,新在哪里?

百度开发者中心

人工智能

Spring Cloud Alibaba 2.2.7 版本正式发布

阿里巴巴中间件

云计算 开源 微服务 中间件 spring cloud ali

年底考勤管理汇总难?织信OA管理系统无缝对接外部应用助你解决

优秀

低代码 考勤管理 OA管理系统

设计消息队列存储消息数据的MySQL 表格

Steven

架构实战营

ARMS 应用安全-你的应用运行时的隐形安全卫士

阿里巴巴中间件

云原生 中间件 RASP Arms

以 Kubernetes 的方式来运行极狐GitLab Runner

极狐GitLab

KubeCon China 2021 阿里云专场来了!这些首日亮点不容错过

阿里巴巴中间件

阿里云 云原生 中间件 cncf KubeCON

TDengine在水电厂畸变波形分析及故障预判系统中的应用

TDengine

数据库 大数据 tdengine 物联网 时序数据库

高效工作?畅快游戏?来开发者Meetup探索AI技术新玩法

OpenI启智社区

人工智能 飞桨领航团

一周信创舆情观察(12.20~12.26)

统小信uos

LabVIEW图像增强算法(基础篇—5)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 图像增强算法

接口文档自动更改?百度程序员开发效率MAX的秘诀

百度Geek说

百度 前端 工具 后端 软件开发

一年又要过去了!盘点2021年区块链的6个关键词

CECBC

突破底层基础架构瓶颈,揭秘TDSQL存储核心技术

腾讯云数据库

tdsql 国产数据库

『SphereEx 年终贺礼』专注为用户提供更好的使用体验

SphereEx

开源 ShardingSphere 一键部署 SphereEx-Boot 开源公司

首个国产分布式数据库调研:TDSQL产品技术及服务能力排名

腾讯云数据库

tdsql 国产数据库

RocketMQ Streams:将轻量级实时计算引擎融合进消息系统

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件

不用任何框架,Java 就能实现定时任务的 3 种方法!

CRMEB

阿里云王志坤:强劲可靠、无处不在的云,为创新保驾护航

阿里云弹性计算

弹性计算 年度峰会

Kubernetes常见组件

Rayzh

Docker Kubernetes 云原生

腾讯云分布式数据库TDSQL在东吴证券新一代核心交易系统中成功落地

腾讯云数据库

tdsql 国产数据库

中科柏诚:加速银行数字化转型的新引擎

联营汇聚

游戏用户LTV预测实践

bilibili游戏技术

开源社庄表伟:开源要出圈了,推坑文化、沉浸式养鱼塘,社区建设心法了解一下 I OpenTEKr 大话开源 Vol.5

OpenTEKr

大话开源

为什么说绿色区块链是未来金融范式的必要底层?

CECBC

使用Kubernetes部署应用

Rayzh

Kubernetes 云原生

某头部零售集团的数据云平台“多租户安全”实践_大数据_简愉_InfoQ精选文章