《CDP企业数据云平台从入门到实践》——CDP平台的安全和治理(1) https://developer.aliyun.com/article/1228324?groupCode=ClouderaCDP
4. 认证&边界
身份验证是一个过程,要求用户和服务在尝试访问系统资源时证明其身份。
组织通常通过各种经过时间考验的技术来管理用户身份和身份验证,包括可插入身份验证模块(PAM)、用于身份、目录和其他服务(例如组管理)的轻量级目录访问协议(LDAP)以及用于身份验证的 Kerberos。
Cloudera 集群支持与所有这些技术的集成。例如,拥有现有 LDAP 目录服务(例如Active Directory,包含在 Microsoft Windows Server 中,作为其 Active Directory 服务套件的一部分)的组织可以利用该组织的现有用户帐户和组列表,而不是在整个集群中创建新帐户。使用 Active Directory 或 OpenLDAP 等外部系统可以支持用户角色授权机制。
作为 LDAP 的替代方案,您可以使用可插入身份验证模块(PAM),这是用于外部身份验证的标准 Linux 模块。在 Cloudera Manager 中,PAM 配置比 LDAP 更简单,系统管理员可以通过安装新的 PAM 模块来添加新的身份验证方法。如果您有多个LDAP 服务器,您可以使用系统安全服务守护程序(SSSD)配置 PAM 以与 LDAP 同步,因为 Cloudera Manager 不支持多个 LDAP 服务器。您还可以将 Cloudera Manager 配置为使用 Apache Knox 进行身份验证,并使用 PAM 来查找存储在 LDAP中的用户和角色。
对于身份验证,Cloudera 支持与 MIT Kerberos 和 Active Directory 的集成。Microsoft Active Directory 除了其身份管理和目录功能(即 LDAP)之外,还支持 Kerberos 进行身份验证。
Kerberos 提供强身份验证,强意味着在身份验证过程中,在请求进程和服务之间的交换中使用加密机制——而不是单独的密码。
这些系统并不相互排斥。例如,Microsoft Active Directory 是一种 LDAP 目录服务,它还提供 Kerberos 身份验证服务,并且 Kerberos 凭据可以在 LDAP 目录服务中存储和管理。Cloudera Manager Server、CDP 节点和 Cloudera Enterprise 组件,例如 Apache Hive、Hue 和 Impala,都可以使用 Kerberos 身份验证。
1) 身份和权限安全
CDP 平台使用的身份认证技术主要是 Kerberos、Apache Knox 和 LDAP。Apache Knox 可以集成所有数据访问,利用现有目录和协议,实现跨所有接口与 SSO 进行一致的身份验证,只暴露最小的端口。
2) 身份识别方法
CDP 平台提供的身份识别方法有两种:目录选择和协议选择。
• 目录选择:Active Directory,Altus 目录,云目录,等等。
• 协议选择:LDAP,SAML 或访问密钥。
大多数客户选择与企业 Active Directory 集成。用户利用现有的用户 ID、密码和组成员身份,来访问 Cloudera 资源。无论部署环境如何,都使用相同的登录,即用户不需要新帐户,大多数用户甚至无需了解正在使用哪个云(或本地)基础架构。
3) 认证方式及步骤
• Web UIs:LDAP 和 SAML 身份验证选项。
• SQL Access:LDAP/AD 和 Kerberos 身份验证选项。
• Commend Line:有两种认证方式:
Kerberos 认证
利用 Active Directory(AD),Cloudera Manager 提供的自动化功能
示例
步骤一:在 AD 上认证用户。
步骤二:认证的用户获取 Kerberos 票据。
步骤三:访问票据授权的服务,完成访问。
4) 租户集群访问流程
• 用户通过 LDAP 账户访问 Linux 系统,Linux 系统通过 SSSD 服务同步 LDAP账户提供用户访问认证。
• 用户通过接口机访问Hadoop平台,先通过Hadoop认证,如Kerberos Principal密码或 Keytab 等。
• 进入 Hadoop 平台后可以同步访问 Sentry、Ranger、HBase、HDFS ACL、YARN ACL 等做进一步的资源访问控制。
5) Apache Knox 功能
Apache Knox 是用于与 REST API 和 UI 交互的应用程序网关。Knox Gateway 为Cloudera Data Platform 集群中的所有 REST 和 HTTP 交互提供单一访问点。
安装 Knox 时,您必须在集群上启用 Kerberos。Knox 提供三组面向用户的服务:
代理服务
Apache Knox 项目的主要目标是通过 HTTP 资源代理提供对 Apache Hadoop 的访问。
• 身份验证服务
用于 REST API 访问的身份验证以及用于 UI 的 WebSSO 流。LDAP/AD,基于标题的PreAuth,Kerberos,SAML,OAuth 都是可用的选项。
• 客户端服务
客户端开发可以通过 DSL 脚本编写,也可以直接将 Knox Shell 类用作 SDK。
KnoxShell 交互式脚本环境将 groovy shell 的交互式 shell 与 Knox Shell SDK 类结合在一起,以便与已部署的 Hadoop 集群中的数据进行交互。
Knox API 网关被设计为一个反向代理,考虑到策略执行领域的可插拔性,通过供应商和它代理请求的后端服务。
策略实施的范围包括身份验证/联合、授权、审计、分发、主机映射和内容重写规则。政策是通过供应商链实施的,供应商链是在拓扑部署描述符中为由Knox 管理的每个 Apache Hadoop 集群定义的。集群定义也在拓扑部署描述符中定义,并为 Knox网关提供集群布局,用于在面向用户的 URL 和集群内部之间进行路由和转换。
每个受 Knox 保护的 Apache Hadoop 集群都有其一组 REST API,由单个集群特定的应用程序上下文路径表示。这使 Knox 网关既可以保护多个集群,又可以为 REST API 消费者提供一个端点,用于跨多个集群访问所有所需的服务。只需将拓扑部署描述符写入 Knox 安装的拓扑目录,即可处理新的 Apache Hadoop集群定义,配置策略执行提供程序,并使应用程序上下文路径可供 API 使用者使用。
虽然不安全的 Apache Hadoop 集群有很多好处,但 Knox 网关也很好地补充了kerberos 安全集群。结合 Kerberos 保护的 Apache Hadoop 集群的适当网络隔离,Knox Gateway 为企业提供了一个解决方案:
• 与企业身份管理解决方案完美集成。
• 保护集群部署的细节(主机和端口对最终用户隐藏)。
• 简化客户需要与之交互的服务数量。
《CDP企业数据云平台从入门到实践》——CDP平台的安全和治理(3) https://developer.aliyun.com/article/1228321?groupCode=ClouderaCDP