更新时间:2023-03-17 GMT+08:00

认证策略

大数据平台用户需要对用户进行身份认证,防止不合法用户访问集群。安全模式或者普通模式的集群均提供认证能力。

安全模式

安全模式的集群统一使用Kerberos认证协议进行安全认证。Kerberos协议支持客户端与服务端进行相互认证,提高了安全性,可有效消除使用网络发送用户凭据进行模拟认证的安全风险。集群中由KrbServer服务提供Kerberos认证支持。

Kerberos用户对象

Kerberos协议中,每个用户对象即一个principal。一个完整的用户对象包含两个部分信息:用户名和域名。在运维管理或应用开发的场景中,需要在客户端认证用户身份后才能连接到集群服务端。系统操作运维与业务场景中主要使用的用户分为“人机”用户和“机机”用户。二者主要区别在于“机机”用户密码由系统随机生成。

Kerberos认证

Kerberos认证支持两种方式:密码认证及keytab认证。认证有效时间默认为24小时。

  • 密码认证:通过输入用户正确的密码完成身份认证。主要在运维管理场景中使用“人机”用户进行认证,命令为kinit 用户名
  • keytab认证:keytab文件包含了用户principal和用户凭据的加密信息。使用keytab文件认证时,系统自动使用加密的凭据信息进行认证无需输入用户密码。主要在组件应用开发场景中使用“机机”用户进行认证。keytab文件也支持在kinit命令中使用。

普通模式

普通模式的集群不同组件使用原生开源的认证机制,不支持kinit认证命令。FusionInsight Manager(含DBService、KrbServer和LdapServer)使用的认证方式为用户名密码方式。组件使用的认证机制如表1所示。

表1 组件认证方式一览表

服务

认证方式

ClickHouse

simple认证

Flume

无认证

HBase

  • WebUI:无认证
  • 客户端:simple认证

HDFS

  • WebUI:无认证
  • 客户端:simple认证

Hive

simple认证

Hue

用户名密码认证

Kafka

无认证

Loader

  • WebUI:用户名密码认证
  • 客户端:无认证

Mapreduce

  • WebUI:无认证
  • 客户端:无认证

Oozie

  • WebUI:用户名密码认证
  • 客户端:simple认证

Spark2x

  • WebUI:无认证
  • 客户端:simple认证

Storm

无认证

Yarn

  • WebUI:无认证
  • 客户端:simple认证

ZooKeeper

simple认证

认证方式解释如下:

  • “simple认证”:在客户端连接服务端的过程中,默认以客户端执行用户(例如操作系统用户“root”或“omm”)自动进行认证,MRS集群管理员或业务用户不显式感知认证,不需要kinit完成认证过程。
  • “用户名密码认证”:使用集群中“人机”用户的用户名与密码进行认证。
  • “无认证”:默认任意的用户都可以访问服务端。