上云无忧 > 文档中心 > 百度智能云MapReduce - 集群安全模式
百度智能云MapReduce - 集群安全模式

文档简介:
BMR从1.0.0版本开始支持创建安全类型的集群,即集群中的开源组件以Kerberos的安全模式启动,在这种安全环境下只有经过认证的客户端才能访问集群中的服务(如HDFS,HIVE 等)。 注:目前BMR版本中支持Kerberos的组件有HDFS、YARN、SPARK、HIVE、HBase。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概述

BMR从1.0.0版本开始支持创建安全类型的集群,即集群中的开源组件以Kerberos的安全模式启动,在这种安全环境下只有经过认证的客户端才能访问集群中的服务(如HDFS,HIVE 等)。

注:目前BMR版本中支持Kerberos的组件有HDFS、YARN、SPARK、HIVE、HBase。

创建安全集群

在集群创建页面的配置选项下打开安全模式即可,如下所示: 

Kerberos身份认证原理

Kerberos是一种基于对称密钥技术的身份认证协议,它作为一个独立的第三方的身份认证服务,可以为其它服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务如HBase/HDFS等)。

Kerberos协议过程主要有两个阶段,第一个阶段是KDC完成对Client的身份认证,第二个阶段是Service对Client的身份认证。

KDC 对 Client 的身份认证

当客户端用户(principal)访问一个集成了Kerberos的服务之前,首先需要通过KDC(kerberos的服务端程序)的身份认证。客户端用户通过 KDC 服务的身份认证后,会拿到一个TGT凭证(Ticket Granting Ticket,默认时效为24小时),后续访问集成了 kerberos 的服务时会使用该凭证。

Service 对 Client 的身份认证

当客户端用户访问集成 kerberos 的 Service服务时,它会使用TGT以及需要访问的服务名称(如HDFS)去KDC换取TGS(Ticket Granting Service),然后使用TGS去访问Service,Service会利用相关信息对Client进行身份认证,认证通过后便可以正常访问Service服务了。

Kerberos 常用命令指南

管理员登录

登录到管理员账户: 如果在BMR集群节点上,root 账户可以直接通过kadmin.local命令登录。

$ kadmin -p admin/admin    
Password for admin/admin@BAIDU.COM: (BMR集群默认密码为:hadoop)

增删改查账户

在管理员的状态下使用addprinc/delprinc/modprinc/listprincs 命令管理用户。使用?可以列出所有的命令。

# 增加 allen 用户
kadmin: addprinc allen
Enter password for principal "allen@BAIDU.COM":
Re-enter password for principal "allen@BAIDU.COM":
Principal "allen@BAIDU.COM" created.

# 为用户 allen 生成 keytab: 使用xst命令或者ktadd命令
kadmin: ktadd -k /etc/security/keytabs/allen.keytab allen
Entry for principal allen with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/security/keytabs/allen.keytab.
Entry for principal allen with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/security/keytabs/allen.keytab.

查看当前认证的用户

$ klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin/admin@BAIDU.COM

Valid starting       Expires              Service principal
2018-09-27T12:06:07  2018-09-28T12:06:07  krbtgt/BAIDU.COM@BAIDU.COM

通过 keytab 文件的方式认证用户

kinit -kt /etc/security/keytabs/allen.keytab allen

删除当前认证用户的缓存

kdestroy

BMR安全集群实践

初次使用 KDC 服务时,需要集群管理员登录 master 机器,执行 kadmin.local 命令创建客户端用户的 principal及密码(或者生成 keytab 文件,且注意该文件的属主及访问权限)。

因为 BMR 集群使用的 KDC 类型为 MIT KDC,创建的客户端用户 principal 最好与 UNIX 账户存在一一映射关系(尤其在部署有 Ranger 组件的 BMR 集群中,这源于 BMR 中的 Ranger UserSync 使用的是 UNIX 账户同步机制)。

例如,管理员首先在 BMR 集群各节点中创建 UNIX 用户 allen:

$ useradd allen

然后,管理员新增一个名为 allen/_HOST@BAIDU.COM 的 principal,如下所示:

登录 allen 账户(allen 为 UNIX 账户,如果有向集群YARN队列资源提交作业的需求,在启动安全模式下,还需要保障集群中各个节点已存在该账户,否则提交的 yarn 任务会提示用户不存在而运行失败),执行 kinit 指令获取初始有效凭证 TGT(默认有效期为24h)。

完成 kerberos 认证之后,接下来就可以正常访问集群中的服务了(比如 HDFS、YARN、HIVE等)。

相似文档
  • 实际业务处理场景中,经常遇到需要将BMR集群资源及集群中的数据、服务等在多个组织及部门间共享的场景,需要能够做到集群中细粒度的计算资源及访问权限管控。 对于云上资源(集群、作业)粒度的管理,请参见多用户访问控制。
  • BMR中的监控运维主要包含两部分: 监控查看 监控查看是在BMR侧查看各种类型(用户/集群/主机/服务/组件/Topic)监控指标趋势。 报警配置 报警配置是在BCM侧配置BMR中的事件报警和指标报警规则,以及查看报警历史。
  • 在通过相应的端口登录和访问BMR集群前,您需要将访问的IP地址或IP段加到安全组中,进行相应的安全组配置,BMR产品为用户提供了默认的BMR安全组:BaiduMapReduce-Default,用户可以选择默认的安全组进行使用无需单独配置,如果有其他端口和IP访问的需求,可以在创建集群完成后,在VPC安全组中BMR的安全组中进行配置。
  • BMR集群中使用EIP: 弹性公网IP EIP (Elastic IP) 作为一个独立的商品为用户提供公网带宽服务。 EIP的主要用途包括: 通过EIP实例,用户可以获取公网带宽服务。 用户可灵活配置EIP实例的计费模式,包括按需按带宽付费、按需按流量付费和包年包月按带宽付费三种。
  • 应用场景: 在集群运行期间与主节点交互。例如,登录主节点运行交互式查询,检查日志文件,使用在主节点上运行的应用程序监控性能,调试集群问题等。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部