1.使用控制台创建即可
根据实例类型创建需要至少15分以上,可以提前创建好ec2实例和Secrets Manager,一会会使用到
2. 创建Secrets Manager (使用无认证时请跳过)
官方文档:https://docs.aws.amazon.com/zh_cn/msk/latest/developerguide/msk-password.html
必须以AmazonMSK_前缀,并且不能使用默认加密方式,需要去kms创建一个新的
kms 详情 截图
注意授权给当前用户,否则不能选择
3.修改初始的验证方式
确认等待完成
4.登录ec2测试
按照文档准备环境
https://docs.aws.amazon.com/zh_cn/msk/latest/developerguide/mkc-create-topic.html
以下是我个人总结的,实际参数按自己情况修改
sudo yum -y install java-11
wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.13-2.8.1.tgz
tar -xzf kafka_2.13-2.8.1.tgz
cd ./kafka_2.13-2.8.1/libs/
wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.1/aws-msk-iam-auth-1.1.1-all.jar
sasl认证相关
https://docs.aws.amazon.com/zh_cn/msk/latest/developerguide/msk-password.html
##配置认证文件
touch /data/users_jaas.conf
vim /data/users_jaas.conf
KafkaClient {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="alice"
password="alice-secret";
};
cp /usr/lib/jvm/java-11-amazon-corretto.x86_64/lib/security/cacerts /tmp/kafka.client.truststore.jks
cd /root/kafka_2.13-2.8.1/bin
touch client_sasl.properties
vim client_sasl.properties
security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-512
ssl.truststore.location=/tmp/kafka.client.truststore.jks
##配置用户密钥文件环境变量(新加的ssh窗口 需要再次申明)
export KAFKA_OPTS=-Djava.security.auth.login.config=/data/users_jaas.conf
##配置地址方便使用(不同的认证方式端点不同,可能需要添加多个变量)
export KAFKA1=b-3.democlusterht.xa7css.c2.kafka.ap-northeast-1.amazonaws.com:9092,b-2.democlusterht.xa7css.c2.kafka.ap-northeast-1.amazonaws.com:9092,b-1.democlusterht.xa7css.c2.kafka.ap-northeast-1.amazonaws.com:9092
export KAFKA2=b-3.democlusterht.xa7css.c2.kafka.ap-northeast-1.amazonaws.com:9096,b-2.democlusterht.xa7css.c2.kafka.ap-northeast-1.amazonaws.com:9096,b-1.democlusterht.xa7css.c2.kafka.ap-northeast-1.amazonaws.com:9096
上述的端点地址:在控制台客户端信息查看
测试连接集群和操作集群
(以下命令明文传输时,直接不带 ‘--command-config client_sasl.properties’ 即可)
##列出topic
./kafka-topics.sh --bootstrap-server $KAFKA1 --list --command-config client_sasl.properties
##创建topic
./kafka-topics.sh --bootstrap-server $KAFKA2 --create --topic <topic-name> --command-config client_sasl.properties --replication-factor 2 --partitions 1
##发送消息
./kafka-console-producer.sh --broker-list $KAFKA2 --topic topic-ht --producer.config client_sasl.properties
##接收消息
./kafka-console-consumer.sh --bootstrap-server $KAFKA2 --topic topic-ht --from-beginning --consumer.config client_sasl.properties
测试效果打开2个会话(新会话需要重新声明环境变量)
1.创建topic 2.生产 3.消费
可以看到我1会话使用的无验证方式,产生消息(只支持vpc下开启)
2会话窗口使用sasl验证连接集群,消费消息