ZooKeeper SASL支持

默认情况下,ZooKeeper集群未强制进行身份认证,导致集群数据在网络中暴露,任何客户端都可访问其中的数据,存在较大安全隐患。MSE支持配置ZooKeeper的SASL认证信息和强制开关,以提升集群数据的安全性。目前,MSE ZooKeeper支持Digest-5机制的SASL身份认证,通过用户名和密码对客户端进行身份认证。您可以通过配置服务端客户端将要使用的身份信息,开启服务端对客户端的身份认证能力。

前提条件

创建ZooKeeper引擎且ZooKeeper引擎版本为3.8.0.7及以上。如需升级引擎版本,请参见升级引擎版本

操作步骤

  1. 登录MSE注册中心控制台

  2. 在左侧导航栏,选择注册配置中心 > 实例列表。单击目标实例名称。

  3. 在左侧导航栏,选择鉴权管理

  4. 鉴权管理页面,单击创建用户。在创建用户面板,输入用户名密码确认密码,然后单击确认并重启实例

    重启集群后,会应用新的用户身份信息配置。

  5. 单击对应用户操作列下的复制配置,密码需要手动在配置中补充,然后保存在客户端的任意文件。

  6. 对于Java使用ZooKeeper原生SDK或者CuratorFramework的应用需要进行以下操作:

    1. 假设之前已经保存的配置文件路径为/path,在Java应用启动的时候,指定系统属性。

      -Djava.security.auth.login.config=/path  // 等号后面填写配置保存的文件的路径
    2. 重启应用后,客户端会自动读取配置并进行认证。

      说明
      • Java客户端请确保依赖的ZooKeeper版本为3.4及以上。

      • 其他语言客户端,请参考对应的SDK文档进行设置。

  7. 所有客户端配置完成之后,在控制台左侧导航栏,选择参数设置。在参数设置页面,设置AuthEnabled值为true,即可开启服务端强制校验客户端使用SASL身份认证。

    说明

    将"AuthEnabled"设置为true将会导致未通过SASL身份认证的客户端无法请求Server。