原创|大数据产品动态|编辑:况鱼杰|2020-06-23 13:35:16.777|阅读 381 次
概述:有线加密可保护移动中的数据,而传输层安全性(TLS)是有线加密中使用最广泛的安全协议。 TLS通过对端点之间传输的数据包进行加密,在通过网络进行通信的应用程序之间提供身份验证,隐私和数据完整性。 用户通过浏览器或命令行工具与Hadoop集群进行交互,而应用程序则使用REST API或Thrift。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
有线加密可保护移动中的数据,而传输层安全性(TLS)是有线加密中使用最广泛的安全协议。 TLS通过对端点之间传输的数据包进行加密,在通过网络进行通信的应用程序之间提供身份验证,隐私和数据完整性。 用户通过浏览器或命令行工具与Hadoop集群进行交互,而应用程序则使用REST API或Thrift。
手动启用TLS的步骤
下面介绍了在Hortonworks Data Platform(HDP)或Cloudera Enterprise(CDH)群集上启用有线加密的典型过程。
取得证书
在每个主机上生成一个公共/私有密钥对
为所有主机生成证书签名请求(CSR)。
获取由公司内部证书颁发机构(CA)签署的CSR。
生成密钥库和信任库,并将其部署在所有群集主机上。
集群配置
持续维护
使用Ambari,可以在Hortonworks数据平台(HDP)中使用以下步骤启用TLS。 在Cloudera Manager(CM)中,可以使用以下步骤手动启用TLS。 从历史上看,这一直是在CDH分发上实施TLS的标准过程。
Cloudera Manager中的自动TLS功能
在大型部署中,上述过程可能是一项巨大的工作,通常会导致部署时间长和操作困难。 自动TLS功能自动执行在群集级别启用TLS加密所需的所有步骤。 使用自动TLS,您可以让Cloudera管理群集中所有证书的证书颁发机构(CA)或使用公司现有的CA。 在大多数情况下,可以通过Cloudera Manager UI轻松启用所有必需的步骤。 此功能可自动执行以下过程:
自动TLS功能类似于kube master现在如何在香草Kubernetes群集上对节点证书进行自签名,而CM的好处是它在保护群集服务方面也迈出了第一步。
选项1 –使用Cloudera Manager生成内部证书颁发机构和相应的证书
最简单的选择是让Cloudera Manager创建和管理自己的证书颁发机构。 要选择此选项,请从Cloudera Manager中转到管理>安全性>启用自动TLS并完成向导。
系统将提示您启动Cloudera Manager,然后启动Cloudera管理服务和所有受影响的群集。启动Cloudera Manager服务器时,默认情况下应该在TLS端口7183上看到UI。浏览器将显示来自SCM本地CA机构的自签名证书,如下所示。浏览器显示警告,因为它不知道CM生成的根CA。将根CA导入客户端浏览器的信任库后,浏览器将不会显示此警告。
设置群集时,应该看到一条消息,说明已启用自动TLS。继续安装所需的服务。整个群集均经过TLS加密。任何新的主机或服务都将自动配置。这是默认情况下启用TLS加密的HDFS服务的示例(在信任Cloudera Manager生成的根证书之后)。
尽管此选项是最简单的,但它可能不适用于某些公司部署,这些公司的TLS证书由公司现有的证书颁发机构(CA)颁发,以维护集中的信任链。
选项2 –使用现有的证书颁发机构
您可以将Cloudera Manager CA设置为现有Root CA的中间CA,也可以手动生成由现有Root CA签名的证书并将其上载到Cloudera Manager。以下将这两个选项描述为2a和2b。
选项2a –使用现有的根CA启用自动TLS
仅对于新安装,您可以使Cloudera Manager成为一个中间CA,该CA为所有群集主机和服务签署证书。这是一个三步过程。首先,使Cloudera Manager生成证书签名请求(CSR)。其次,由公司的证书颁发机构(CA)签署CSR。第三,提供签名证书链以继续自动TLS设置。下面的示例演示了这三个步骤。
在启动Cloudera Manager之前,使用–stop-at-csr 选项初始化证书管理器。
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk; /opt/cloudera/cm-agent/bin/certmanager --location /var/lib/cloudera-scm-server/certmanager setup --configure-services --stop-at-csr
这将在/var/lib/cloudera-scm-server/certmanager/CMCA/private/ca_csr.pem中生成证书签名请求(CSR)文件。如果仔细检查CSR,您将看到CSR请求必要的扩展名X509v3密钥用法:关键证书签名,用于自行签署证书。
获得签名证书后,请确保该证书具有所需的扩展名– X509v3基本约束:CA:TRUE和X509v3密钥用法:密钥证书签名。 使用以下命令继续安装。
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk; /opt/cloudera/cm-agent/bin/certmanager --location /var/lib/cloudera-scm-server/certmanager setup --configure-services --signed-ca-cert=cm_cert_chain.pem
启动Cloudera Manager,它应该从TLS端口7183上的UI开始。如果已将签名的中间证书已导入到客户端浏览器的信任库中,那么您应该不会看到任何警告。 在下面的屏幕截图中,“ Vkarthikeyan内部根CA”是根证书。 该证书已被系统信任,并已签署Cloudera中间CA。
选项2b –使用现有证书启用自动TLS
如果您有一个需要启用自动TLS的现有群集,或者需要获得由该公司现有CA单独签名的主机证书,请使用以下方法。 此选项增加了为任何新主机生成证书并通过API请求上传到Cloudera Manager的操作开销。 在此选项中,将暂存由CA签名的证书,并通过调用Cloudera Manager API启用自动TLS。
在Cloudera Manager服务器中创建Auto-TLS目录/ opt / cloudera / AutoTLS。 该目录必须由cloudera-scm用户拥有。
为每个主机创建一个公用/专用密钥,并生成相应的证书签名请求(CSR)。 由公司的证书颁发机构(CA)签署这些CSR。
在CM服务器上准备公司CA签署的所有证书。 在此示例中,所有证书都位于/ tmp / auto-tls目录下。 用于密钥库和信任库的密码分别存在于key.pwd和truststore.pwd文件中。
如下运行Cloudera Manager API
curl -i -v -uadmin:admin -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ "location" : "/opt/cloudera/AutoTLS", "customCA" : true, "interpretAsFilenames" : true, "cmHostCert" : "/tmp/auto-tls/certs/ccycloud-7.vcdp71.root.hwx.site.pem", "cmHostKey" : "/tmp/auto-tls/keys/ccycloud-7.vcdp71.root.hwx.site-key.pem", "caCert" : "/tmp/auto-tls/ca-certs/cfssl-chain-truststore.pem", "keystorePasswd" : "/tmp/auto-tls/keys/key.pwd", "truststorePasswd" : "/tmp/auto-tls/ca-certs/truststore.pwd", "hostCerts" : [ { "hostname" : "ccycloud-7.vcdp71.root.hwx.site", "certificate" : "/tmp/auto-tls/certs/ccycloud-7.vcdp71.root.hwx.site.pem", "key" : "/tmp/auto-tls/keys/ccycloud-7.vcdp71.root.hwx.site-key.pem" }, { "hostname" : "ccycloud-3.vcdp71.root.hwx.site", "certificate" : "/tmp/auto-tls/certs/ccycloud-3.vcdp71.root.hwx.site.pem", "key" : "/tmp/auto-tls/keys/ccycloud-3.vcdp71.root.hwx.site-key.pem" }, { "hostname" : "ccycloud-2.vcdp71.root.hwx.site", "certificate" : "/tmp/auto-tls/certs/ccycloud-3.vcdp71.root.hwx.site.pem", "key" : "/tmp/auto-tls/keys/ccycloud-3.vcdp71.root.hwx.site-key.pem" }, { "hostname" : "ccycloud-1.vcdp71.root.hwx.site", "certificate" : "/tmp/auto-tls/certs/ccycloud-1.vcdp71.root.hwx.site.pem", "key" : "/tmp/auto-tls/keys/ccycloud-1.vcdp71.root.hwx.site-key.pem" } ], "configureAllServices" : "true", "sshPort" : 22, "userName" : "root", "password" : "cloudera" }' '//ccycloud-7.vcdp71.root.hwx.site:7180/api/v41/cm/commands/generateCmca'
此API成功返回后,您应该看到最近运行的命令如下。
“添加主机”向导将提示以下屏幕,其中包含有关上载证书的说明。
使用以下命令将证书上载到CM。
curl -uadmin:admin -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ "location": "/opt/cloudera/AutoTLS", "interpretAsFilenames": true, "hostCerts": [ { "hostname": "ccycloud-10.vcdp71.root.hwx.site", "Certificate": "/tmp/auto-tls/certs/ccycloud-10.vcdp71.root.hwx.site.pem", "Key": "/tmp/auto-tls/certs/ccycloud-10.vcdp71.root.hwx.site.pemm" } ] }' '//ccycloud-7.vcdp71.root.hwx.site:7183/api/v41/cm/commands/addCustomCerts'
照常继续添加主机。
在此示例中,用于签署所有证书的CA是“安全实验室中间CA”,可以在下面的屏幕快照中找到–Cloudera Manager用户界面
新集群部署
使用以上任何选项,在启用了自动TLS的CM上创建新群集时,您可以重用现有TLS设置。当启动向导创建新群集时,应该看到以下消息。现在,当您部署群集时,所有服务都将通过有线加密自动配置。
摘要
自动TLS功能不仅可以加快有线加密的初始设置,还可以自动执行群集的将来TLS配置步骤。下表总结了此博客中描述的选项之间的差异。
步骤
HDP / EDH(手动)
CDP DC
CDP DC
CDP DC
选项1
选项2a
选项2b
产生企业社会责任
手动
自动
自动
手动
CA签署的CSR
手动
自动
一次
手动
将证书部署到所有主机
手动
自动
自动
自动
每个服务的配置
手动
自动
自动
自动
集群重启
多种
一次
一次
一次
配置步骤
手动
自动
自动
自动
新服务步骤
手动
自动
自动
自动
新的主机证书生成
手动
自动
自动
手动
自动TLS功能极大地减少了群集TLS管理的开销,从而提供了增强的安全性并减少了操作开销,并帮助您专注于客户及其工作负载。 喜欢你看到的吗? 立即试用新的Cloudera数据平台数据中心!
关于Cloudera
在 Cloudera,我们相信数据可以使今天的不可能,在明天成为可能。我们使人们能够将复杂的数据转换为清晰而可行的洞察力。Cloudera为任何地方的任何数据从边缘到人工智能提供企业数据云平台服务。在开源社区不懈创新的支持下,Cloudera推动了全球最大型企业的数字化转型历程。
慧都大数据专业团队为企业提供Cloudera大数据平台搭建,免费业务咨询,定制开发等完整服务,快速、轻松、低成本将任何Hadoop集群从试用阶段转移到生产阶段。
欢迎拨打慧都热线023-68661681或咨询慧都在线客服,我们有专业的大数据团队,为您提供免费大数据相关业务咨询!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn