认证策略 本章节主要介绍认证策略。 大数据平台用户需要对用户进行身份认证,防止不合法用户访问集群。安全模式或者普通模式的集群均提供认证能力。 安全模式 安全模式的集群统一使用Kerberos认证协议进行安全认证。Kerberos协议支持客户端与服务端进行相互认证,提高了安全性,可有效消除使用网络发送用户凭据进行模拟认证的安全风险。集群中由KrbServer服务提供Kerberos认证支持。 Kerberos用户对象 Kerberos协议中,每个用户对象即一个principal。一个完整的用户对象包含两个部分信息:用户名和域名。在运维管理或应用开发的场景中,需要在客户端认证用户身份后才能连接到集群服务端。系统操作运维与业务场景中主要使用的用户分为“人机”用户和“机机”用户。二者主要区别在于“机机”用户密码由系统随机生成。 Kerberos认证 Kerberos认证支持两种方式:密码认证及keytab认证。认证有效时间默认为24小时。 密码认证:通过输入用户正确的密码完成身份认证。主要在运维管理场景中使用“人机”用户进行认证,命令为kinit 用户名 。 keytab认证:keytab文件包含了用户principal和用户凭据的加密信息。使用keytab文件认证时,系统自动使用加密的凭据信息进行认证无需输入用户密码。主要在组件应用开发场景中使用“机机”用户进行认证。keytab文件也支持在kinit命令中使用。 普通模式 普通模式的集群不同组件使用原生开源的认证机制,不支持kinit认证命令。FusionInsight Manager(含DBService、KrbServer和LdapServer)使用的认证方式为用户名密码方式。组件使用的认证机制如下表所示。 表 组件认证方式一览表 服务 认证方式 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”)自动进行认证,管理员或业务用户不显式感知认证,不需要kinit完成认证过程。 “用户名密码认证”:使用集群中“人机”用户的用户名与密码进行认证。 “无认证”:默认任意的用户都可以访问服务端。