本文为您介绍如何配置E-MapReduce Kafka集群的SSL(Secure Sockets Layer)功能,并通过SSL加密Kafka数据链接。
前提条件
已在E-MapReduce控制台创建DataFlow集群(即后面说的Kafka集群),并选择了Kafka服务,详情请参见创建DataFlow Kafka集群。
配置SSL功能
E-MapReduce Kafka集群提供以下两种配置SSL的方式:
- 使用默认证书配置SSL:使用E-MapReduce默认创建的证书和默认配置方式快速启用SSL功能。
- 自定义配置SSL:使用自定义证书和配置值启用SSL功能。
E-MapReduce通过server.properties配置文件的kafka.ssl.config.type配置项来管理配置SSL的策略。
使用默认证书配置SSL
说明 Kafka集群的SSL功能默认关闭,您可以执行以下步骤快速开启SSL功能。
- 进入服务的配置页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 单击目标集群操作列的集群服务。
- 在集群服务页面,单击Kafka服务区域的配置。
- 修改配置项。
- 在配置页面,单击server.properties页签。
- 修改kafka.ssl.config.type的参数值为DEFAULT。
- 保存配置。
- 单击保存。
- 在弹出的对话框中,输入执行原因。
- 单击确定。
- 重启Kafka服务。
- 在Kafka服务的配置页面,选择 。
- 在弹出的对话框中,输入执行原因,单击确定。
- 在确认对话框中,单击确定。
自定义配置SSL
说明 Kafka集群的SSL功能默认关闭,您可以通过自定义配置开启SSL功能。
- 进入服务的配置页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 单击目标集群操作列的集群服务。
- 在集群服务页面,单击Kafka服务区域的配置。
- 修改配置项。
- 在配置页面,单击server.properties页签。
- 修改kafka.ssl.config.type的参数值为CUSTOM。
- 保存配置。
- 修改SSL其他配置。您需要根据业务需求,自行配置除listeners之外的SSL相关配置。例如,ssl.keystore.location,ssl.keystore.password,ssl.truststore.location,ssl.truststore.password,ssl.key.password,ssl.keystore.type和ssl.truststore.type等。
- 重启Kafka服务。
- 在Kafka服务的配置页面,选择 。
- 在弹出的对话框中,输入执行原因,单击确定。
- 在确认对话框中,单击确定。
使用SSL连接Kafka
使用SSL连接Kafka时,需要客户端配置参数security.protocol、ssl.truststore.password和ssl.truststore.location。
例如,在已开启SSL的Kafka集群中,使用Kafka自带的Producer和Consumer执行作业,操作步骤如下:
- 使用SSH方式登录Kafka集群,详情请参见登录集群。
- 创建配置文件。
- 执行以下命令,创建Topic。
kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic test --create
- 执行以下命令,使用SSL配置文件产生数据。
export IP=<your_InnerIP> kafka-producer-perf-test.sh --topic test --num-records 123456 --throughput 10000 --record-size 1024 --producer-props bootstrap.servers=${IP}:9092 --producer.config ssl.properties
说明 本文代码示例中的your_InnerIP
为master-1-1节点的内网IP地址。 - 执行以下命令,使用SSL配置文件消费数据。
export IP=<your_InnerIP> kafka-consumer-perf-test.sh --broker-list ${IP}:9092 --messages 100000000 --topic test --consumer.config ssl.properties