AWS MSK集群认证和加密传输的属性与配置

请添加图片描述 《大数据平台架构与原型实现:数据中台建设实战》一书由博主历时三年精心创作,现已通过知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维码进入京东手机购书页面。

通常,身份认证和加密传输是两项不相关的安全配置,在Kafka/MSK上,身份认证和加密传输是有一些耦合关系的,重点是:对于MSK来说,当启用IAM, SASL/SCRAM以及TLS三种认证方式时,TLS加密传输是必须的!只有设置为Unauthenticated(无认证)时,TLS加密才是可选的,但如果不显示配置PLAINTEXT的话,默认也是启用TLS加密的。

此外,还有一个非常有用的知识点,可以帮助我们快速确定MSK集群使用的认证和加密方式:

MSK认证方式 MSK加密方式 Bootstrap Server 端口
Unauthenticated(无认证) PLAINTEXT 9092
Unauthenticated(无认证) TLS 9094
IAM TLS 9098

也就是说:通过端口号可以判断出MSK使用的认证和加密方式!

本文地址:https://laurence.blog.csdn.net/article/details/131696373,转载请注明出处!
在这里插入图片描述
我们再换一种描述方法:

1. 在MSK中,不管使用使用什么认证,如果不配置加密传输,则默认总是TLS加密传输的
2. 在MSK中,IAM, SASL/SCRAM和TLS三种认证方式必须配置为TLS加密传输
3. 在MSK中,只有Unauthenticated(无认证)可以自由选择PLAINTEXT传输和TLS加密传输,但是,如果不明确配置使用PLAINTEXT传输,默认还是使用TLS加密传输

我们来看3组典型配置,其中黑色命令行是使用aws kafka describe-cluster命令输出的集群信息,白色页面是AWS MSK控制台的信息。

1. 无认证,无加密

在这里插入图片描述

在这份配置中,有一个重要的细节:PLAINTEXT的加密形式必须显示地配置!在使用aws kafka create-cluster-v2 --cli-input-json file://xxx创建集群时,必须在Json文件中显式地配置:

"EncryptionInfo": {
    
    
    "EncryptionInTransit": {
    
    
        "ClientBroker": "PLAINTEXT",
        "InCluster": false
    }
}

如果没有这份显示配置,默认就会变成使用TLS加密了,也就是下面这种配置了:

2. 无认证,TLS加密

在这里插入图片描述

呼应第1种情形,实际上,在使用aws kafka create-cluster-v2 --cli-input-json file://xxx创建集群时,这里的TLS是不需要配置的,默认总是启用TLS的。

3. IAM认证

在这里插入图片描述

使用IAM认证时,必须启用TLS加密传输!在使用aws kafka create-cluster-v2 --cli-input-json file://xxx创建集群时,也是不需要显式配置TLS加密的,因为默认TLS加密总是启用的。

关于如何配置MSK的TLS加密传输,请参考官方文档:

https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html

猜你喜欢

转载自blog.csdn.net/bluishglc/article/details/131696373
AWS