CDP-DC中部署Knox

2020-07-07 10:08:53 浏览数 (1)

文档编写目的

Apache Knox网关(“ Knox”)是一种在不降低Hadoop安全性的情况下将Apache™Hadoop®服务的覆盖范围扩展到Hadoop群集之外的用户的系统。Knox还为访问群集数据和执行作业的用户简化了Hadoop安全性。Knox网关被设计为反向代理。

本文主要介绍如何在CDP-DC集群上安装部署Knox。

内容概述

1) Knox功能概述

2) CDP-DC集群上部署Knox

3) Knox功能演示

测试环境

1) CM和Cloudera Runtime版本为7.1.1

2) Redhat7.7

3) 拥有Cloudera Manager的管理员账号

4) 集群已启用Kerberos,CM和Ranger已经配置了LDAP认证

Knox功能概述

CDP数据中心群集的防御层

身份验证:Kerberos

CDP使用Kerberos进行身份验证。Kerberos是一种行业标准,用于对Hadoop集群中的用户和资源进行身份验证。CDP还包括Cloudera Manager,可简化Kerberos的设置、配置和维护。

外围层级安全性:Apache Knox

Apache Knox网关用于帮助确保CDP客户的外围安全。使用Knox,企业可以放心地将Hadoop REST API扩展到没有Kerberos复杂性的新用户,同时还可以保持对企业安全策略的遵从性。Knox为Hadoop REST API提供了一个中央网关,这些API具有不同程度的授权,身份验证,SSL和SSO功能,以为Hadoop提供单个访问点。

授权:Ranger

操作系统安全性:数据加密和HDFS

Apache Knox网关概述

Apache Knox网关(反向代理)的概念概述。

总览

Knox与企业中使用的身份管理和SSO系统集成,并允许将这些系统中的身份用于访问Hadoop集群。

Knox网关为多个Hadoop集群提供安全性,具有以下优点:

• 简化访问:通过将Kerberos封装到集群中来扩展Hadoop的REST / HTTP服务。

• 增强安全性:在不公开网络细节的情况下公开Hadoop的REST / HTTP服务,提供现成的SSL。

• 集中控制:集中实施REST API安全,将请求路由到多个Hadoop集群。

• 企业集成:支持LDAP、Active Directory、SSO、SAML和其他身份验证系统。

典型的安全流程:防火墙,通过Knox网关路由

Knox可以与不安全的Hadoop群集和Kerberos安全的群集一起使用。在采用Kerberos安全群集的企业解决方案中,Apache Knox网关提供了企业安全解决方案,该解决方案:

• 与企业身份管理解决方案完美集成

• 保护Hadoop群集部署的详细信息(主机和端口对最终用户隐藏)

• 简化客户端需要与之交互的服务数量

Knox网关部署架构

外部访问Hadoop的用户可以通过Knox,Apache REST API或Hadoop CLI工具进行访问。

Knox支持的服务矩阵

一个支持矩阵,显示Apache Knox对Kerberized和Non-Kerberized集群支持的代理和SSO服务。

Table 1. Knox Supported Components

Component

SSO

Proxy (API)

Proxy (UI)

Cloudera Manager

Ambari Metrics/Grafana

Atlas

HBase

✓1

HDFS

Hive (via JDBC)

Hive (via WebHCat)

Livy

Log Search

MapReduce2

Oozie

Ranger

✓2

✓3

SmartSense

Spark 2/Spark History Server

WebHCat/Templeton

WebHDFS

YARN

Zeppelin

Apache Knox

本文档提供有关如何使用Cloudera Data Platform数据中心安装过程部署Apache Knox的说明。

Apache Knox是用于与REST API和UI进行交互的应用程序网关。Knox网关为Cloudera Data Platform集群中的所有REST和HTTP交互提供了单个访问点。

安装Knox时,必须在群集上启用Kerberos。

安装步骤

1)添加服务

从您的Cloudera Manager主页,转到状态选项卡> 群集名称> ... > 添加服务

2) 添加Knox服务

从服务列表中,选择“ knox”,然后单击“ 继续”。

3) 添加依赖项

在“选择依赖项”页面上,选择要Knox设置的依赖项:

HDFS,Ranger,Solr,Zookeeper

对于需要Apache Ranger进行授权的用户。带Ranger的HDFS。HDFS取决于Zookeeper,而Ranger取决于Solr。

HDFS,Zookeeper

HDFS取决于Zookeeper。

没有可选的依赖

对于不希望将Knox与HDFS或Ranger集成的用户。

这里选择对HDFS/Ranger/Solr/Zookeeper的依赖项。

4) 分配角色

在“分配角色”页面上,选择依赖项的角色分配,然后单击“继续”:

Knox服务角色

描述

是否必须?

Knox Gateway

如果安装了Knox,则应至少安装此角色的一个实例。该角色代表Knox网关,该网关为与Apache Hadoop集群的所有REST和HTTP交互提供单个访问点。

必须

KnoxIDBroker *

强烈建议将此角色安装在其自己的专用主机上。顾名思义,该角色将使您能够利用Knox的Identity Broker功能,这是一种身份联合解决方案,可以将群集身份验证交换为临时云凭据。*

可选的*

网关

此角色随CSD框架一起提供。网关结构用于描述安装了网关角色的每个主机上服务的客户端配置。

可选的

*注意:KnoxIDBroker显示在“分配角色”页面中,但CDP-DC当前不支持它。

我们这里先只选择Knox Gateway角色。

5) 参数配置

在“查看更改”页面上,大多数默认值都是可接受的,但是您必须启用Kerberos身份验证并提供Knox主密钥。在“ Knox安装角色参数”中列出了可以指定或更改的其他参数。

a) 单击启用Kerberos身份验证

启用Knox时需要Kerberos。

b) 提供Knox admin的密码,例如BadPass#1

c) 点击继续。

6)查看命令详细信息

“命令详细信息”页面显示了操作状态。完成后,系统管理员可以在stdout下查看安装日志。

回到Cloudera Manager主页,查看Knox服务

使用Apache Knox Gateway UI

可以通过Knox网关UI配置Knox代理。要设置代理,您将首先定义提供者配置和描述符,然后将基于这些设置自动生成拓扑。

登录到网关UI时,Knox期望可以登录操作系统的用户。

Cloudera Manager创建您需要的大多数拓扑。您可以使用Knox Gateway UI创建其他拓扑或修改现有拓扑。

以下步骤显示了如何设置Knox代理的基本工作流程。它涉及到定义提供程序配置和描述符,这些配置程序和描述符用于生成拓扑,可以定义代理(除其他事项外)。您还可以通过手动配置各个拓扑文件来手动设置Knox代理。

步骤

从Cloudera Manager导航到Knox Gateway UI:Cloudera Manager > 集群> Knox > Knox Gateway UI。

将打开Knox Gateway UI,例如 https://ip-10-0-0-214.ap-southeast-1.compute.internal:8443/gateway/homepage/home

登录到网关UI。

使用前面配置页面中设置的密码,提升密码错误。

这是因为开启了LDAP的缘故。

使用admin的LDAP账户登录成功。

可以展开cdp-proxy,看到已经默认配置的proxy

点击配置的proxy,会SSO登录到对应的页面,例如Yarn ResourceManager Web UI V2和Cloudera Manager Admin Console

接着我们使用另外一个LDAP用户superuser登录Knox

从Knox页面上,目前看不到是哪个用户登录的。

点击配置的proxy,会SSO登录到对应的页面,例如Cloudera Manager Admin Console和Ranger。

Ranger退出当前superuser,使用admin用户登录,查看ranger的登录审计记录:

可以看到有Proxy方式登陆的,有用户密码方式登陆的。

如果需要通过API方式使用SSO,可以展开cdp-proxy-api

如果需要去knox的管理员页面配置信息,则通过Admin UI URL挑战到对应的admin UI页面:

在admin UI中可以配置Provider/Descriptors/Service Definitions等信息。

总结

1.通过Knox设置的SSO,可以对外只保留一个端口,减少了网络端口暴露带来的风险。

2.如果CDP-DC集群已经启用LDAP,则Knox需要使用LDAP的用户登录。

3.Knox依赖Kerberos,在部署Knox时需先启用Kerberos。

0 人点赞