CDP集群安全指南系列文章导读
[一]大数据安全综述
1-认证
身份验证是任何计算环境的基本安全要求。简单来说,用户和服务必须在使用系统功能并获得授权之前,向系统证明其身份(进行身份验证)。身份验证与授权紧密配合,共同保护系统资源。大多数 CDH 组件,包括 Apache Hive、Hue 和 Apache Impala,都可以使用 Kerberos 进行身份验证。MIT ,微软 Active Directory 的 Kerberos ,Redhat的Freeipa实现均可集成用于 Cloudera 集群。
集群如何开启 Active Directory 的 Kerberos认证请参考文章
CDP集群安全指南-开启Kerberos认证篇(Active Directory)
【为何使用Kerberos】
- 避免密码网络传输:Kerberos 通过票据机制避免了用户密码在网络中的传输,降低了密码被截获的风险。这是Kerberos最厉害的机制!!!
- 双向认证:Kerberos不仅可以验证用户的身份,还验证用户要访问的服务的身份。如A用户访问了hive中a表。Kerberos不仅要认证用户的身份,还要认证hive服务以及hive表存放数据的hdfs服务的身份。这是Kerberos第二最厉害的机制!!!
- 票据授权&简化用户体验:Kerberos 使用票据(Ticket)机制进行认证,用户在初次登录时获取一个票据,后续访问资源时无需重复输入密码,提高了安全性和便利性。用户只需一次身份验证即可访问多个服务和资源,无需为每个服务重复登录。这不仅提升了用户体验,还减少了密码泄露的风险。
- 加密通信&防止重放攻击:Kerberos 使用对称密钥加密技术,确保在传输过程中数据的机密性和完整性,防止数据被截获或篡改。票据具有时间限制和唯一性,防止攻击者重放旧的认证请求,增强了系统的安全性。
- 跨平台支持&与现有系统集成:Kerberos 可以与多种目录服务(如 LDAP、Active Directory)无缝集成,方便在现有基础设施中部署和使用。Kerberos 支持多种操作系统和平台,包括 Windows、Linux、macOS 等,适用于多样化的计算环境。
既然Kerberos很厉害但如hive服务,impala服务为何要配置既支持Kerberos认证又要支持Ldap认证还要配置Ldap认证呢?
Kerberos 和 LDAP 在大数据集群和企业级系统中各自发挥着重要作用,彼此互补。Kerberos 专注于提供强大的认证机制,确保用户和服务的身份真实性;而 LDAP 则负责集中管理用户和组的信息,支持细粒度的授权和访问控制。通过将 Kerberos 与 LDAP 集成,组织可以构建一个全面、安全且高效的身份和访问管理体系,满足复杂的安全需求和业务场景。(LDAP 认证通常更贴近用户的使用习惯,例如在 Web UI 登录或使用 Beeline、Impala 等工具时,通过用户名和密码完成身份验证。此外,LDAP 能提供用户组信息,用于实现更细粒度的权限控制,适应不同的业务需求)。好消息是在AD或Freeipa中无论是Kerberos认证或Ldap认证他们都共享一套用户密码数据库,这方便进行用户管理
集群如何开启 Active Directory 的Ldap认证请参考文章
CDP集群安全指南-开启Ldap认证篇
2-认证-knox
如何你长期管理过CDP集群,你就会发现,一旦集群开启了Kerberos认证,如果有新的用户或者业务要访问集群,新用户或业务所在的服务器也必须被纳入集群的Kerberos认证体系内。如果新业务的服务器处在大数据之外的认证系统里。整个打通过程非常难受。这时你就明白了Knox存在的意义
Apache Knox Gateway 用于帮助 Cloudera 客户确保边界安全。借助 Knox,企业可以放心地将 Hadoop REST API 扩展到新用户,而无需面对 Kerberos 的复杂性,同时仍能保持对企业安全策略的合规性。Knox 为 Hadoop REST API 提供了一个中央网关,支持不同级别的授权、认证、SSL 和单点登录(SSO)功能,从而实现 Hadoop 的单一访问点。
集群如何开启Knox网关请参考:
CDP集群安全指南-开启Knox网关篇
Knox网关如何使用请参考:
CDP集群安全指南-Knox网关的使用(未完成)
3-授权&审计
授权(Authorization)关注的是谁或什么对特定资源或服务具有访问权限或控制权。由于 Hadoop 将多个不同且先前独立的 IT 系统的功能整合为一个企业数据中心,用于存储和处理组织内的所有数据,因此需要多种授权控制,具有不同的细粒度。在这种情况下,Hadoop 管理工具通过以下方式简化了设置和维护:
- 将所有用户绑定到组,这些组可以在现有的 LDAP 或 AD 目录中指定。
- 为类似的交互方式(如批处理和交互式 SQL 查询)提供基于角色的访问控制。例如,Apache Ranger 的权限适用于 Hive(HiveServer2)和 Impala。
目前,Cloudera 数据平台(CDP)提供以下形式的访问控制:
-
传统的 POSIX 风格权限:
适用于目录和文件,每个目录和文件都分配了一个所有者和一个组,并且每个分配都有一组基本的权限。文件权限包括读取、写入和执行,而目录则额外具有控制子目录访问的权限。 -
Apache HDFS 的 ACL:
通过允许为特定的命名用户或用户组设置不同的权限,为 HDFS 文件提供细粒度的权限控制。 -
Apache HBase 的 ACL:
使用 ACL 来授权列、列族和列族限定符的各种操作(如读取、写入、创建和管理)。HBase 的 ACL 可以授予和撤销用户和用户组的权限。 -
使用 Apache Ranger 进行的访问控制:
Apache Ranger 提供了一个集中的访问控制框架,支持对多个 Hadoop 组件的细粒度权限管理,确保统一和高效的策略管理。
集群如何开启Ranger授权请参考
CDP集群安全指南-开启Ranger授权和审计篇
如何为Ranger配置Ldap认证以及如何为Usersync组件配置同步Ldap用户请参考
CDP集群安全指南-开启Ldap认证篇
如何使用ranger请参考
CDP集群安全指南-Ranger的使用(未完成)
4-加密-动态数据
传输层安全协议 (TLS) 是一套行业标准的加密协议,用于保护网络通信的安全。TLS 是从安全套接字层 (SSL) 演变而来的。由于 SSL 的术语仍被广泛使用,Cloudera 的软件和文档中将 TLS 称为 TLS/SSL,但实际上使用的协议是 TLS。Cloudera 软件中并未使用 SSL。
除了 TLS/SSL 加密之外,HDFS 和 HBase 通过远程过程调用 (RPC) 传输数据。为了确保这种传输的安全性,您必须启用 RPC 加密。
如何开启hdfs数据动态加密请参考
CDP集群安全指南-动态数据加密
5-加密-静态数据
简单的说,静态数据就是把数据再数据盘上进行加密,加密后即便数据盘被物理盗取,也无法读取数据内容。Cloudera 集群可以结合使用多种数据静态加密机制,包括 HDFS 透明加密和 Cloudera Navigator Encrypt。这两种数据静态加密机制都可以通过 Ranger KMS 的密钥管理功能进行增强。
如何开启hdfs数据静态加密请参考
CDP集群安全指南-静态数据加密