AWS MSK的连接

2024-03-01 09:36
文章标签 连接 aws msk

本文主要是介绍AWS MSK的连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

kafka客户端需要Java依赖,所以先安装Java11,

sudo yum install java-11

https://docs.aws.amazon.com/zh_cn/msk/latest/developerguide/port-info.html

匿名连接

# 匿名使用9092端口
BootstrapServerString=b-2.xxxx.kafka.cn-north-1.amazonaws.com.cn:9092,b-1.xxxx.c4.kafka.cn-north-1.amazonaws.com.cn:9092# 创建topic
./kafka-topics.sh --create --bootstrap-server $BootstrapServerString --replication-factor 2 --partitions 1 --topic MSKTutorialTopic# 生产者
./kafka-console-producer.sh --broker-list $BootstrapServerString --topic MSKTutorialTopic# 消费者
./kafka-console-consumer.sh --bootstrap-server $BootstrapServerString --topic MSKTutorialTopic --from-beginning

TLS

匿名TLS传输和mTLS认证都使用9094端口。

匿名TLS和匿名纯文本只能二选一

client_tls.properties

security.protocol=SSL
./kafka-console-producer.sh --broker-list $BootstrapServerString --topic MSKTutorialTopic --producer.config  client_tls.properties./kafka-console-consumer.sh --bootstrap-server $BootstrapServerString --topic MSKTutorialTopic --from-beginning --from-beginning --consumer.config client_tls.properties

中国区目前不支持TLS双向认证。

IAM 连接

IAM认证是Amazon自己加的功能,所以需要下载额外的包,https://github.com/aws/aws-msk-iam-auth

cp aws-msk-iam-auth-1.1.1-all.jar kafka_2.13-2.8.1/libs/

IAM 创建topic命令:

BootstrapServerString=b-1.xxxx.c4.kafka.cn-north-1.amazonaws.com.cn:9098,b-2.xxxx.c4.kafka.cn-north-1.amazonaws.com.cn:9098
./kafka-topics.sh --create --bootstrap-server $BootstrapServerString --command-config client.properties --replication-factor 2 --partitions 1 --topic MSKTutorialTopic

client.properties

security.protocol=SASL_SSL 
sasl.mechanism=AWS_MSK_IAM 
sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; 
sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler

要使用您为 AWS 凭证创建的命名配置文件,请将 awsProfileName="`your profile name`"
https://docs.aws.amazon.com/zh_cn/msk/latest/developerguide/iam-access-control.html

SASL

这个需要关联Secrets Manager,而且Secrets Manager必须以AmazonMSK_开头,多租户的话需要关联多个Secrets Manager,如果在Secrets Manage中修改用户密码,那么需要重新绑定,否则新旧密码都能使用,这显然不符合预期。

创建users_jaas.conf文件,这个是用户名密码:

KafkaClient {org.apache.kafka.common.security.scram.ScramLoginModule requiredusername="alice"password="alice-secret";
};

然后导出到环境变量:

export KAFKA_OPTS=-Djava.security.auth.login.config=$PWD/users_jaas.conf

配置信息:

security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-512

连接:

BootstrapBrokerStringSaslScram=b-1.xxxx.c4.kafka.cn-north-1.amazonaws.com.cn:9096,b-2.xxxx.kafka.cn-north-1.amazonaws.com.cn:9096[ec2-user@ip-10-0-10-91 bin]$ ./kafka-console-producer.sh --broker-list $BootstrapServerString --topic MSKTutorialTopic --producer.config client_sasl.properties./kafka-console-consumer.sh --bootstrap-server $BootstrapBrokerStringSaslScram --topic MSKTutorialTopic --from-beginning --consumer.config client_sasl.properties

https://repost.aws/zh-Hans/knowledge-ceneccccvfubhkhugdueicbcbvubnlrgefkkldbeurkjfenter/msk-sasl-scram-issues

公有访问

  1. 集群必须是公有子网
  2. 关闭匿名访问
  3. 必须开启集群间加密,关闭纯文本连接
  4. 如果是SASL/SCRAM 或者 mTLS,那么需要配置Apache Kafka ACL(allow.everyone.if.no.acl.found=false),这时候用其他认证去连接。

kafka ACL:https://docs.aws.amazon.com/zh_cn/msk/latest/developerguide/msk-acls.html
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Authorization+Command+Line+Interface

多VPC连接

待测试

这篇关于AWS MSK的连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761997

相关文章

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys