MRS集群Kerberos认证介绍
Hadoop社区版本提供两种认证方式Kerberos认证(安全模式)和Simple认证(普通模式),在创建集群时,MRS支持配置是否启用Kerberos认证,集群创建完成后不支持修改。
安全模式(启用Kerberos认证)
安全模式的MRS集群统一使用Kerberos认证协议进行安全认证。Kerberos协议支持客户端与服务端进行相互认证,提高了安全性,可有效消除使用网络发送用户凭据进行模拟认证的安全风险。集群中由KrbServer服务提供Kerberos认证支持。
Kerberos用户对象
Kerberos协议中,每个用户对象即一个principal。一个完整的用户对象包含两个部分信息:用户名和域名。在运维管理或应用开发的场景中,需要在客户端认证用户身份后才能连接到集群服务端。系统操作运维与业务场景中主要使用的用户分为“人机”用户和“机机”用户。二者主要区别在于“机机”用户密码由系统随机生成。
Kerberos认证
Kerberos认证支持两种方式:密码认证及keytab认证,认证有效时间默认为24小时。
- 密码认证:通过输入用户正确的密码完成身份认证。主要在运维管理场景中使用“人机”用户进行认证,客户端命令为kinit 用户名。
- keytab认证:keytab文件包含了用户principal和用户凭据的加密信息。使用keytab文件认证时,系统自动使用加密的凭据信息进行认证无需输入用户密码。主要在组件应用开发场景中使用“机机”用户进行认证。keytab文件也支持在kinit命令中使用。
普通模式(不启用Kerberos认证)
普通模式集群,MRS集群各组件使用原生开源的认证机制,一般为Simple认证方式。而Simple认证,在客户端连接服务端的过程中,默认以客户端执行用户(例如操作系统用户“root”等)自动完成认证,管理员或业务用户不显示感知认证。而且客户端在运行时,甚至可以通过注入UserGroupInformation来伪装成任意用户(包括superuser),集群资源管理接口和数据控制接口在服务端无认证和鉴权控制,很容易被黑客利用和攻击。
所以在普通模式下,建议单用户场景下使用,必须通过严格限定网络访问权限来保障集群的安全。
- 尽量将业务应用程序部署在同VPC和子网下的ECS中,避免通过外网访问MRS集群。
- 配置严格限制访问范围的安全组规则,禁止对MRS集群的入方向端口配置允许Any或0.0.0.0的访问规则。