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

通常,身份认证和加密传输是两项不相关的安全配置,在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. 无认证,无加密

AWS MSK集群认证和加密传输的属性与配置_第1张图片

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

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

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

2. 无认证,TLS加密

AWS MSK集群认证和加密传输的属性与配置_第2张图片

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

3. IAM认证

AWS MSK集群认证和加密传输的属性与配置_第3张图片

使用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

你可能感兴趣的:(大数据专题,kafka,msk,认证,tls,iam)