本篇博客将总结 CDP 私有云基础(PvC Base)集群的安全架构。该架构反映了安全工程最佳实践的四大支柱:边界、数据、访问和可见性。CDP PvC Base的发布对安全架构进行了许多重大改进,包括:
在深入研究这些技术之前,有必要熟悉有助于深度防御的分层方法的关键安全原则。每一层定义如下:
应用这些多层安全性是为了确保数据的机密性、完整性和可用性,以满足最强大的监管要求。CDP 私有云基础提供 3 个级别的安全性来实现这些功能
等级 | 安全 | 特征 |
---|---|---|
0 | 不安全 | 未配置安全性。不应该在生产环境中使用非安全集群,因为它们容易受到任何攻击和被利用。 |
1 | 最小安全 | 配置用于身份验证、授权和审计。首先配置身份验证以确保用户和服务只有在证明其身份后才能访问集群。接下来,应用授权机制为用户和用户组分配权限。审计程序会跟踪访问集群的人员(以及访问方式)。 |
2 | 更多安全 | 敏感数据被加密。密钥管理系统处理加密密钥。已为元存储中的数据设置审计。系统元数据会定期审查和更新。理想情况下,已设置集群以便可以跟踪任何数据对象的血缘(数据治理)。 |
3 | 最多安全 | 安全集群是其中所有数据(包括静态数据和传输中的数据)都经过加密且密钥管理系统具有容错性的集群。审计机制符合行业、政府和监管标准(例如 PCI、HIPAA、NIST),并从集群扩展到与其集成的其他系统。集群管理员训练有素,安全程序经过专家认证,集群可以通过技术审查。 |
就本文档而言,我们将重点关注最安全的第 3 级安全性。
为符合 第3 级安全实施的监管标准,客户将创建网络拓扑,以确保只有特权管理员才能访问核心 CDP 服务,而应用程序、分析师和开发人员仅限于适当的网关服务,例如 Hue 以及适当的管理和监控 Web 界面. Apache Knox 的加入将显著简化了安全访问的配置,用户受益于强大的单点登录。Apache Ranger 将安全策略管理与基于标签的访问控制、强大的审计以及与现有公司目录的集成相结合。
集群架构可以拆分为多个区域,如下图所示:
外围是源数据和应用程序,网关区域是管理员和应用程序将与执行工作的核心集群区域交互的地方。然后由维护配置和密钥材料的数据层支持这些。每个区域中的服务使用 kerberos 和传输层安全性 (TLS) 的组合来验证各自主机角色之间的连接和 API 调用,这允许强制执行授权策略并捕获审计事件。Cloudera Manager 将直接针对本地 KDC 或通过公司目录中的中介来生成凭据。同样,Cloudera Manager Auto-TLS 允许每个主机证书由已建立的证书颁发机构生成和签名。如有必要,可以将授权委托给 Cloudera Manager 来签署证书,以简化实施。以下部分将更详细地介绍如何实现每个方面。
通常,集群将与现有的公司目录集成,从而简化凭据管理,并与管理和维护用户和服务帐户的完善的 HR应用保持一致。Kerberos 用于使用在公司目录 (IDM/AD) 中生成并由 Cloudera Manager 分发的凭据对集群内的所有服务帐户进行身份验证。为确保这些过程的安全,重要的是 CM、企业目录和集群主机之间的所有交互都使用 TLS 安全性进行加密。签名证书分发到每个集群主机,使服务角色能够相互验证。这包括 Cloudera Agent进程,它将与 Cloudera Manager 服务器执行 TLS 握手,以便通过加密通道进行配置更改,例如 Kerberos 凭据的生成和分发。除了 CM 代理之外,所有集群服务角色(例如 Impala 守护进程、HDFS 工作角色和管理角色)通常都使用 TLS。
启用 Kerberos 后,所有集群角色只要拥有有效的 kerberos 票证,就能够相互验证。身份验证票证由 KDC 颁发,通常是本地 Active Directory 域控制器、FreeIPA 或 MIT Kerberos 服务器,并在提供有效凭据后与公司 kerberos 基础设施建立信任。Cloudera Manager 使用在其数据库中安全维护的提升权限来生成这些凭据并将其分发给每个服务角色。通常,管理权限将允许在公司目录内的特定组织单元 (OU) 内创建和删除 kerberos Principal. 比较好的做法是首先在 Cloudera Manager 和Agent之间启用 TLS 安全性,以确保 Kerberos Keytab文件通过加密连接传输。
使用 TLS 安全性启用传输中的加密,具有两种部署模式:手动或自动 TLS。对于手动 TLS,客户使用他们自己的脚本来生成他们自己的证书并将其部署到集群主机,然后在 Cloudera Manager 中配置所使用的位置,以便集群服务能够使用它们。
通常,证书等安全工件将存储在本地文件系统 /opt/cloudera/security 中。cloudera-deploy Ansible 自动化使用这种方法。
Auto TLS 使得 Cloudera Manager 能够充当证书颁发机构,独立的或由现有的公司机构委派。然后,CM 可以生成、签名并在集群周围部署签名证书以及任何关联的信任库。一旦到位,证书将用于加密集群服务之间的网络流量。存在三个主要通信通道,HDFS 透明加密、数据传输和远程过程调用,以及与各种用户界面和 API 的通信。参考https://docs.cloudera.com/cdp-private-cloud-base/latest/security-overview/topics/cm-security-authentication-overview.html
为了安全地存储敏感数据,确保数据在静态加密的同时也可供具有适当特权的用户和被授予解密能力的服务处理,这一点至关重要。一个安全的 CDP 集群将具有完全透明的 HDFS 加密,通常为各种存储租户和用例提供单独的加密区域。我们警告不要加密整个 HDFS,而是在那些需要加密的目录层次结构进行加密。
与 HDFS 其他关键的本地存储位置(例如 YARN 和 Impala 暂存目录)一样,日志文件也可以使用块加密进行类似的加密。HDFS 和本地文件系统都可以集成到安全的密钥托管服务中,通常部署到一个单独的集群中,该集群负责密钥管理。这确保了集群管理员和负责加密密钥的安全管理员的职责分离。此外,Key Trustee 客户端加密为 Apache Log4j2 CVE-2021-44228等漏洞提供深度防御
新的Ranger KMS 服务将老的 Ranger KMS 服务和 Key Trustee KMS 合并为一个服务,该服务既可以支持 Ranger KMS DB 也可以支持 Key Trustee Service 作为服务的后备密钥存储。两种实现都支持 HMS 与 KTS 支持的集成,提供完全的职责分离和更广泛的 HSM,尽管以额外的复杂性和硬件为代价。最好支持 RKMS + KTS,以简化操作并大规模运行。Ranger KMS 支持:
Cloudera 安全和治理服务构成集群 SDX 层的一部分,可以使用 Cloudera Manager 进行部署和管理。这些将在以下部分中更详细地描述。
Apache Ranger 是一个跨平台启用、监控和管理综合数据安全性的框架。它用于创建和管理策略以访问 CDP 堆栈中所有服务的数据和其他相关对象,并且与早期版本相比具有许多改进:
更广泛地说,Apache Ranger 提供:
Apache Ranger 具有许多组件:
客户通常会部署 SSSD 或类似的此类技术,以便在操作系统中解析用户的组成员身份。Ranger 审计服务器随后将使用集群的 Solr 基础架构服务对这些事件进行索引,以促进分析和报告。
注意:注意 Hive 权限同步器。这在 Hive 内运行,并且将每 5 分钟定期检查每个 Hive 对象的权限,这会导致更大的 Hive 内存需求和较差的 Hive 元存储性能,其中有数千个 Hive 对象。仅当客户使用 Beeline 或使用基于 SQL 的语句来操作和审查授权时,才需要该功能。好的做法是至少减慢同步速度 hive.privilege.synchronizer.interval=3600(默认为 720)以每小时检查一次或完全禁用并使用 Ranger UI 管理策略。
安全区域使您能够将 Ranger 资源和基于标签的策略安排到特定组中,以便可以委派管理。例如在特定的安全区域:
Atlas 是一组可扩展的核心的基础治理服务——使企业能够有效且高效地满足其在 CDP 中的合规性要求,并允许与整个企业数据生态系统集成。
组织可以构建其数据资产的目录,对这些资产进行分类和治理,并为数据科学家、分析师和数据治理团队提供围绕这些数据资产的协作能力。从逻辑上讲,Apache Atlas 的布局如下:
Apache Knox 通过充当所有远程访问事件的代理,为 CDP Web UI 和 API 提供单点登录,从而简化了对集群接口的访问。其中许多 API 对于监控和发布动态配置更改很有用。
作为无状态反向代理框架,Knox 可以部署为多个实例,将请求路由到 CDP 的 REST API。随着负载的增加,它通过添加更多的 Knox 节点来线性扩展。负载均衡器可以将请求路由到多个 Knox 实例。
Knox 还拦截 REST/HTTP 调用,并通过一系列可扩展的拦截器管道提供身份验证、授权、审计、URL 重写、Web 漏洞清除等安全服务。
受 Knox 保护的每个 CDP 集群都有其一组 REST API,由单个集群特定的应用程序上下文路径表示。这使得 Knox 网关既可以保护多个集群,又可以为 REST API 使用者提供一个端点,以便跨多个集群访问所需的所有服务。
在 CDP 中,某些提供程序(sso、pam、admin、manager)和拓扑(cdp-proxy、cdp-proxy-api)已经预先配置,并且大部分都集成到 Cloudera Manager 的配置 UI 中。此外,CDP 还为用户提供了一个有用的预配置主页。
集群定义在拓扑部署描述符中定义,并为 Knox 网关提供集群布局,以便在面向用户的 URL 和集群内部之间进行路由和转换。
只需将拓扑部署描述符写入 Knox 安装的拓扑目录,即可处理新的 CDP 集群定义,配置策略实施提供程序,并使应用程序上下文路径可供 API 使用者使用。CDP 私有云基础为客户可以为他们的环境扩展的所有各种集群服务提供了一个预配置的拓扑。
我们总结了 CDP 私有云基础集群的关键的安全特性,后续文章将更详细地介绍所有关键特性的参考实施示例。
要了解有关 Cloudera 数据平台安全性的更多信息,请访问https://docs.cloudera.com/cdp-private-cloud-base/7.1.7/cdp-security-overview/topics/security-data-lake-security.html
原文作者:Niel Dunnage
原文链接:https://blog.cloudera.com/security-reference-architecture-summary-for-cloudera-data-platform/