DLI安全最佳实践
数据湖探索(Data Lake Insight,简称DLI)是完全兼容Apache Spark、Apache Flink、HetuEngine生态,提供一站式的流处理、批处理、交互式分析的Serverless融合处理分析服务。用户不需要管理任何服务器,即开即用。
本文提供了DLI使用过程中的安全最佳实践,旨在为提高整体安全能力提供可操作的规范性指导。根据该指导文档,您可以持续评估DLI的安全状态,更合理地组合使用DLI提供的多种安全能力,提高对DLI的整体安全防御能力,保护存储在DLI的数据及传输过程中的数据不被泄露或篡改。
为了加强DLI服务的安全性,本文将从以下几个维度给出建议,您可以根据业务需要在本指导的基础上进行安全配置。
- 加强权限管理。
- 数据备份和恢复
- 加密存储数据
- 使用委托访问外部服务
- 安全审计日志
- 升级计算引擎到最新版本
加强权限管理
DLI服务支持通过IAM对用户权限进行精细化管理,通过设置不同的企业组织和操作权限,达到对DLI访问权限隔离。
通过IAM,您可以在华为云账号中给员工创建IAM用户,并使用策略来控制他们对华为云资源的访问范围。例如您的员工中有负责软件开发的人员,您希望他们拥有DLI的使用权限,但是不希望他们拥有删除DLI等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用DLI,但是不允许删除DLI的权限策略,控制他们对DLI资源的使用范围。
DLI服务权限分类如表1所示,其可控制的资源请参考DLI的指定资源与对应路径。
权限大类 |
权限小类 |
控制台操作 |
SQL语法 |
---|---|---|---|
队列权限 |
队列管理权限 |
请参考队列权限管理 |
无 |
队列使用权限 |
|||
数据权限 |
数据库权限 |
请参考 《权限列表》。 |
|
表权限 |
|||
列权限 |
|||
作业权限 |
Flink作业 |
请参考配置Flink作业权限 |
无 |
程序包权限 |
程序包组权限 |
请参考配置DLI程序包权限 |
无 |
程序包权限 |
|||
跨源认证权限 |
跨源认证权限 |
请参考跨源认证权限管理 |
无 |
数据备份和恢复
DLI服务提供了数据导入和导出接口,可以针对关键数据定期导出到OBS进行数据备份,出现数据异常损坏时,通过导入接口从OBS备份数据导入到DLI服务。建议每日或每周执行数据导出备份,当数据损坏时,可以通过备份文件恢复数据,从而保证数据可靠性。
加密存储数据
为提升用户数据的安全性,DLI服务支持使用OBS加密桶作为数据表存储。建议针对敏感数据,在创建DLI表时,使用OBS加密桶作为数据表的存储。
使用委托访问外部服务
各云服务之间存在业务交互关系,一些云服务需要与其他云服务协同工作,需要您创建云服务委托,将操作权限委托给DLI服务,让DLI服务以您的身份使用其他云服务,代替您进行一些资源运维工作。例如:在DLI新建Flink作业所需的AKSK存储在数据加密服务DEW中,如需允许DLI在执行作业时访问DEW数据,需要提供IAM委托将DEW数据操作权限委托给DLI,允许DLI服务以您的身份访问DEW服务。
使用Flink 1.15和Spark 3.3及以上版本的引擎执行作业时,可以在作业配置中添加新建的自定义委托信息。在Flink、Spark作业运行过程中,作业程序可以获取您配置的自定义委托信息,使用该委托来访问其他云服务。建议针对自定义委托权限进行最小化处理,只配置Flink、Spark作业运行过程中需要的必要权限,防止权限范围扩大。
安全审计日志
DLI服务支持日志审计功能,可以实时记录用户对数据的所有相关操作。通过对用户访问数据行为的记录、分析和汇报,用来帮助您事后生成合规报告、事故追根溯源,提高数据资产安全性。
相关操作链接:使用CTS审计DLI服务
开启SQL防御
大数据平台使用SQL进行数据分析和处理,提升了数据分析的易用性的同时,也暴露出一定的问题,例如SQL输入语句质量良莠不齐、SQL问题难定位、大SQL语句消耗资源过多等。低质量的SQL会对数据分析平台系统带来不可预料的冲击,影响系统的性能或者平台稳定性。
DLI在Spark SQL引擎中增加SQL防御能力,基于用户可理解的SQL防御策略,实现对典型大SQL、低质量SQL的主动防御,包括事前提示、拦截和事中熔断,并不强制改变用户的SQL提交方式、SQL语法,对业务零改动且易落地。
相关操作链接:配置SQL防御规则
升级计算引擎到最新版本
开源社区会不定期披露新发现的漏洞,DLI会评估Spark和Flink引擎内核版本的实际风险,发布新的内核版本。为了提升易用性和安全性,建议建立定期版本检查机制,并将大数据作业使用的引擎版本升级为最新。
相关操作链接:升级DLI作业的引擎版本