更新时间:2024-11-29 GMT+08:00

配置IoTDB数据传输加密

操作场景

在安全场景下,需要开启IoTDB数据传输通道加密,保证数据传输的安全性。

数据传输加密对性能有一定损耗,不建议对性能要求较高的场景下开启此功能。

前提条件

  • 各组件业务用户由系统管理员根据业务需要创建,具体操作请参见创建用户。安全模式下,“机机”用户需要下载keytab文件,具体操作请参见导出认证凭据文件。“人机”用户第一次登录时需修改密码。
  • 已安装IoTDB客户端,例如安装路径为:/opt/client。其中,在“集群 > 服务 > IoTDB > 更多 > 下载客户端”时,勾选“仅保存到如下路径”下载客户端压缩文件,文件生成后默认保存在主管理节点“/tmp/FusionInsight-Client”目录下。

操作步骤

  1. 服务端操作。

    1. 登录FusionInsight Manager界面,选择“集群 > 服务 > IoTDB > 配置”。
    2. 在配置界面修改以下两个配置项参数:
      • 在界面右上角搜索“SSL_ENABLE”,将该参数的值修改为“true”。
      • 在界面右上角搜索“iotdb_server_kerberos_qop”,将该参数的值修改为“auth-conf”。
    3. 单击“保存”,在弹出的“保存配置”界面单击“确定”。

      等待界面提示“操作成功”,单击“完成”。

    4. 单击“概览”,选择“更多 > 重启服务”,等待服务重启完成。

  2. 客户端操作。

    1. 使用root用户登录主管理节点,切换到客户端安装目录,例如:/opt/client

      cd /opt/client

    2. 执行以下命令配置环境变量。

      source bigdata_env

    3. 若当前集群开启了Kerberos认证,执行以下命令认证当前用户,若集群未开启Kerberos认证请跳过该步骤。

      kinit 组件业务用户

    4. 执行如下命令在客户端根目录中使用“ca.crt”证书文件生成客户端的“truststore.jks”。

      cd /tmp/FusionInsight-Client/FusionInsight_Cluster_*_IoTDB_ClientConfig

      keytool -noprompt -import -alias myservercert -file ca.crt -keystore truststore.jks

    5. 将生成的“truststore.jks”拷贝到客户端安装目录下,例如:/opt/client/IoTDB/iotdb/conf。

      cp truststore.jks /opt/client/IoTDB/iotdb/conf

    6. 执行以下命令,切换IoTDB客户端运行脚本所在目录。

      cd /opt/client/IoTDB/iotdb/sbin

    7. 执行 vim start-cli.sh命令编辑“start-cli.sh”脚本,将“iotdb_ssl_truststore=/opt/client/IoTDB/iotdb/conf/truststore.jks”和“iotdb_ssl_enable=true”加入到“start-cli.sh”脚本启动参数“exec "$JAVA" -cp "$JAVA_CLASSPATH" "$JAVA_MAIN_CLASS" $PARAMETERS”中,如下所示:
      exec "$JAVA" -Diotdb_ssl_truststore=/opt/client/IoTDB/iotdb/conf/truststore.jks -Diotdb_ssl_enable=true -cp "$JAVA_CLASSPATH" "$JAVA_MAIN_CLASS" $PARAMETERS
    8. 执行以下命令登录客户端,可以正常使用则表示IoTDB成功开启数据传输加密功能。

      ./start-cli.sh -h IoTDBServer实例节点的业务ip -p IoTDBServer RPC端口

      • 登录客户端也可以通过“./start-cli.sh -h IoTDBServer实例节点的业务ip -p IoTDBServer RPC端口 -u 业务用户名 -pw 业务用户密码”命令登录。
      • IoTDBServer实例节点的业务IP地址可登录FusionInsight Manager后选择“集群 > 服务 > IoTDB > 实例”查看。
      • RPC端口默认为22260,可通过“集群 > 服务 > IoTDB > 配置 > 全部配置”,搜索参数“IOTDB_SERVER_RPC_PORT”获得。