本期导读 :【阿里云 CDP 公开课】第六讲
主题:CDP 平台的安全和治理
讲师:王雪峰,Cloudera 生态资深解决方案工程师
内容框架:
- 安全挑战
- 应对措施
- 身份认证
- 访问授权
- 数据治理
- 实操演示
直播回放链接:(第6讲)
https://developer.aliyun.com/live/248700
一、安全挑战
大数据平台会面临各种各样的安全挑战,主要体现在以下几个方面:
a. 跨工作负载共享数据
需要创建多个数据副本,每个副本都有自己的数据上下文集合,易产生数据竖井或数据孤岛等问题;
b. 繁重的管理工作
创建的多个数据副本,需要有多个集群来存储数据,管理员就需要在多个管理位置进行数据管理,同时还需要进行数据间的权限同步,增加了管理员的工作负担;
c. 数据泄露
数据中缺少一项许可,可能导致不该访问的数据被他人访问,造成数据泄露及重大的财务和声誉风险;
d. 难以安全地共享数据以进行新分析;
e. GDPR等严格的新法规,使挑战变得更大。
二、应对措施
鉴于上述挑战,CDP平台提供了全面的安全措施来保护客户的数据安全。
CDP平台的四大安全支柱:
a. 认证&边界
通过Kerberos,Apache Knox 实现认证方式、用户/组映射等验证企业目录中的用户。
b. 访问授权
通过 Apache Ranger 定义用户和应用程序可以处理数据的访问权限。
c. 可见性
通过Apache Atlas进行审计、数据血缘等报告数据来自何处以及如何使用。
d. 数据保护
通过 SSL/TLS,HDFS TDE,Raner(KMS,Masking,Filtering)等进行加密、密钥管理以保护集群中的数据免受未授权的可见性。
保护企业数据
在实际应用中,上述四个支柱通过以下方式保护企业数据:
a. 护城河
通过防火墙来构建企业数据安全的护城河,以拦截未授权访问;
b. 有限的入境点
通过Apache Knox构建有限的入境点,以确保用户通过安全入口进入环境;
c. 检查身份
通过LDAP/AD等技术进行身份验证;
d. 内墙
在大平台内部运用Kerberos提供服务、数据库,以及用户间的访问认证;
e. 守望塔
通过Apache Ranger控制用户访问权限;
f. 高硬墙
针对企业核心数据,通过HDFS Encryption进行数据加密的方式提供数据保护;
认证&边界
1. 身份和权限安全
CDP平台使用的身份认证技术主要是Kerberos,Apache Knox和LDAP。Apache Knox可以集成所有数据访问,利用现有目录和协议,实现跨所有接口与SSO进行一致的身份验证,只暴露最小的端口。
2. 身份识别方法
CDP平台提供的身份识别方法有两种:目录选择和协议选择;
a. 目录选择:Active Directory,Altus目录,云目录,等等;
b. 协议选择:LDAP,SAML或访问密钥;
大多数客户选择与企业Active Directory集成。用户利用现有的用户ID、密码和组成员身份,来访问Cloudera资源。无论部署环境如何,都使用相同的登录,即用户不需要新帐户,大多数用户甚至无需了解正在使用哪个云(或本地)基础架构。
3. 认证方式及步骤
a. Web UIs:LDAP和SAML身份验证选项;
b. SQL Access:LDAP/AD和Kerberos身份验证选项;
c. Commend Line:
- Kerberos认证;
- 利用Active Directory(AD),Cloudera Manager提供的自动化功能;
示例:
步骤一:在AD上认证用户;
步骤二:认证的用户获取Kerberos票据;
步骤三:访问票据授权的服务,完成访问。
4. 租户集群访问流程
a. 用户通过LDAP账户访问Linux系统,Linux系统通过SSSD服务同步LDAP账户提供用户访问认证;
b. 用户通过接口机访问Hadoop平台,先通过Hadoop认证,如Kerberos Principal密码或Keytab等;
c. 进入Hadoop平台后可以同步访问Sentry HBase、HDFS ACL、YARN ACL等做进一步的资源访问控制。
5. Apache Knox功能
a. 增强的外围安全性
- 通过隐藏网络详细信息来保护集群(减少端口暴露);
- Web App漏洞过滤器;
b. API Gateway
- 扩展API访问;
- Kerberos封装;
- 单一SSL证书;
- 多集群支持;
c. 集中访问
- 不再有用于REST/HTTP客户端的SPNEGO;
- 中央REST API审核;
- 服务水平授权;
- SSH边缘节点的替代;
d. 企业认证
- LDAP/AD集成;
- SSO
- 通过pac4j的多协议支持(Oauth, SAML, OpenID Connect)
访问授权
1. 访问安全
在CDP中,访问安全主要通过 Apache Ranger 和 Apache Atlas 来完成,实现访问权限和授权的能力。
Apache Ranger提供:
a. 数据的逻辑副本;
b. 所有访问路径上的一组权限;
c. 细粒度的访问权限,直至列和行级别:
- 动态列掩码;
- 动态行过滤;
- 通过与Apache Atlas的结合实现基于分类的安全性
2. Apache Ranger功能
a. 授权
- 集中式平台,可跨Hadoop生态系统一致地定义和管理安全策略;
- HDFS,Hive,HBase,YARN,Kafka,Solr,Storm,Knox,NiFi,Atlas,Impala,HMS;
- 具有自定义策略条件和上下文丰富程序的可扩展体系结构;
- 轻松添加新的组件类型以进行授权;
b. 密钥管理
- 存储和管理加密密钥策略和生命周期;
- 支持HDFS透明数据加密;
- 与HSM集成;
- Safenet(LUNA,KeySecure);
c. 审计
- 所有访问请求的中央审核位置;
- 支持多个目标源(HDFS,Solr等);
- 实时视觉查询界面
3. Apache Ranger架构
在Apache Ranger架构中,对外暴露的是Ranger管理Portal,即进行整体权限管控的Portal,包括两部分内容:Ranger审计服务器和Ranger策略服务器,都是运用Plugin的方式从Hadoop组件中采集数据和应用策略,审计服务器会将采集来的数据放入Solr或HDFS中。Ranger架构中的另一部分是通过API与遗留的工具和数据治理进行集成。
Apache Ranger 架构
4. Apache Ranger的ABAC模型
• 主题、行动、资源和环境的结合;
• 使用描述性属性:AD组,基于Apache Atlas的标签或分类、地理位置等;
• Ranger的方法与NIST 800-162一致;
• 避免角色扩散和可管理性问题。
5. Apache Ranger:全面的可扩展授权
Ranger界面
从上图Ranger界面中可以看到:
a. 全面涵盖Hadoop生态系统组件,以及与组件驻留在一起的组件的插件;
b. 可扩展的插件模型:可以构建用于授权Hadoop外部其他服务的插件(例如Presto,Kylin,Sqoop,WASB,Isilon/OneFS等)。
6. Apache Ranger提供的安全策略
a. 基于动态标签的安全策略
在企业数据湖中的实体(HDFS、Hive表、HBase表等)通过Atlas进行Tag或分类,在Ranger中通过Atlas客户端订阅对应主题并获取元数据更新,同时基于Tag的安全控制(如基于分类、禁令、时间、位置等)设置对应的安全策略。
b. 动态行过滤和列掩码
在下图的示例中,一个跨国银行有来自美国和欧洲的数据,在这个数据平台里有两类用户,分别是美国的分析师组Joe和欧洲的HR用户组Ivanna,他们都执行类似的Select From语句无任何过滤条件。美国分析师组Joe将具有CC和国民ID(SSN)的美国人员的数据视为掩码值,并且MRN为无效,而欧洲的Ivanna则可以看到未掩码的内容,但受到行过滤策略限制,只能查看仅适用于欧洲人员的数据。
在这个示例中运用了Ranger的两类策略:按区域过滤行和列掩码,在列掩码中还包含基于资源的权限控制和基于Tag的权限控制,在后面的示例中会进行详细介绍。
7. Apache Ranger策略评估流程
Ranger的策略评估流程整体分为两个部分:DENY和ALLOW,如果资源访问中包含Denied Policies则进入DENY,如果包含Allowed Policies则进入ALLOW,如果二者都没有则进入DENY/PASS-THROUGH。在每个Denied和Allowed Policy判断中会按照先Tag再Resource的顺序进行。
三、数据治理
1. 建立可信数据湖的数据管理
利用CDP平台构建可信数据湖,其中包含了大量的数据管理,包括:数据质量和配置文件、安全和访问控制、元数据管理、数据保留和归档、主数据管理、业务定义、数据血缘、审计、搜索和索引、治理,等。
2. 理解你的数据
通过了解以下内容更好的理解数据:
• 如何发现哪些数据存储在哪里?
• 如何追踪数据沿袭?
• 如何以适当的粒度保护数据?
• 如何跟踪谁有权访问数据?
• 如何审核谁访问了数据?
• 如何启用数据自助服务?
• 如何始终如一地管理创建、应用和管理策略?
• 如何确保元数据随数据移动而保留?
3. Apache Atlas Architecture
CDP平台使用Apache Atlas来进行理解数据的工作。Atlas主要负责元数据管理、数据血缘和数据分类处理,其架构图如下:
Apache Atlas架构
a. Apache Atals通过Messaging消息框架从Apache Hadoop组件中捕获数据血缘,并将数据血缘维护到Janus图数据库系统中;
b. 审计系统是维护元数据变更的操作审计;
c. 在他们之上提供包括分类、数据资产、业务术语、血缘等搜索能力,最上层是REST API,可以灵活访问Apache Atlas服务、Cloudera数据平台(CDP)组件、UI和外部工具;
d. Bridge负责导入和导出到现有业务元数据,并与其他系统进行集成整合。
4. Apache Atlas:连接器和生态系统
Atlas自身是一个不断扩大的、开放的生态,其中包括一些自定义集成,与Hadoop生态项目集成,另外还有一些外部已认证企业工具和认证中的企业工具。
四、实操演示
演示CDP平台中Apache Knox,Apache Ranger和Apache Atlas的一些功能和策略。
1. 前期准备
进入Cloudera Manager,本次演示使用阿里云CDP based的一个集群,这个集群要启用Kerberos;
同时,需要提前部署包括Knox、Atlas、Ranger等组件;
如需启用Knox服务,只需在对应项目的配置中选择Knox即可。
2. 使用Joe分析师登录进行演示
进入Knox Gateway页面,在CDP Proxy中选择Zeppelin并进入;
进入Zeppelin中Joe的工作面板,其中包含完整的分析师所使用的内容;
- 重点关注1:动态数据掩码
在动态列掩码中包括两类:MRN/password字段通过分类的policy进行掩码,以及通过Hive字段Policy进行的其它掩码。查询结果显示MRN和Password、以及streetaddress、ccnumber、nationalid都被掩码;
下面进入Ranger查看为实现上述Policy的设置;
在Access Manager中有Resource Based Policies、Tag Based Policies和Reports功能。
首先查看Resource Based Policies,其中掩码页面列出了掩码的定义。如:nationalid显示最后4位,ccn显示前4位,password的policy没有启用,点击任意项即可进入配置详情页;
查看Tag Based Policies中的Masking页面,点击Mask PII(数据PII加密)进入配置详情页;
其中可以看到,针对不同的用户组选择不同的掩码方式,如:HR用户组是unmasked(即可以看明细),Analyst用户组有两种表达式:对于Tag属性是MRN使用Nullify,对于Tag属性是Password使用Hash;
进入Apache Atlas,Atlas提供搜索、分类和术语的能力;
搜索PII,并查看其中的MRN和Password;
mrn的属性是MRN,所属表是us_customers,Password属性是Password,所属表是us_costomers;
- 重点关注2:Prohibition policy
Prohibition policy拒绝通过字段组合(zipcode、insuranceid、bloodtype)来确认用户信息,下面要来演示在Ranger中是如何完成这一工作;
回到Ranger,找到对应的Policy(Policy Name:Prohibit zipcode, insuranceid, bloodtype)
其中DENY的条件是worldwidebank.ww_customers.insuranceid, worldwidebank.ww_customres.bloodtype这些字段;
同样也可以在Access中查看这个Policy的策略设置;
- 重点关注3:Leased Data Asset
通过Expired On的分类来进行访问控制的方式,是基于Tag Based Policy;
进入Ranger Tag Based Policy设置访问条件;
- 重点关注4:Data Quality annotation based policy
通过数据质量打分(Data Quality Score)的方式进行访问控制;
在Atlas中的claim saving表来定义数据质量;
这里定义的值是0.51,因此,如果小于0.51则被拒绝访问;
3. 使用elt_user用户登录进行演示
进入Zeppelin elt_user工作面板;
查看customers_trans中的数据,显示都是无加密的明细数据;
4. Ranger的其他功能演示
- Reports
Report中展示所有Policies的权限设置信息;
- 审计
审计提供了很多能力,包括:Access,Admin,Login Sessions,Plugins,Plugin Status,User Sync;
Access访问信息中的过滤器可以帮助过滤信息,同时可以通过过滤器得到访问拒绝的原因;
更多信息
产品试用
目前,CDP产品支持三个场景试用体验:
第一,CDP沙箱环境。主要测试常用场景:如构建数仓、ETL等常见的大数据分析场景,以及测试安全、数据血缘和治理等组件。
第二,Edge2AI场景。在此Edge2Al的实操实验中,将为IoT预测性维护用例构建完整的OT到IT的工作流。
第三,CDP Base+Data Service。测试存算分离,新一代容器化计集群,用户体验良好的APP等。
立即开通:https://ac.aliyun.com/application/cloudera
试用申请:https://survey.aliyun.com/apps/zhiliao/owtTaIQU3
有奖调研
欢迎您给阿里云CDP 提建议,我们会认真评估每一条建议和意见,并随机抽取15名用户发放精美小礼品! https://survey.aliyun.com/apps/zhiliao/Hz2fCjChL
技术交流
钉钉扫描下方二维码加入产品交流群一起参与讨论吧!