MSK有三种认证方式
第二种方式涉及到与ACM PCA
集成,每月有300$私有证书管理费用,本节不做讨论,后面再填坑。
我们将对第三种(使用secret manager
管理帐号和密码)方式进行介绍,这种方式又叫SASL/SCRAM (Simple Authentication and Security Layer/ Salted Challenge Response Mechanism)
本节将:
进入KMS服务,创建Customer managed keys:
选择Symmetric
类型(MSK不支持Asymmetric类型的key做为认证方式):
输入CMK的名称
一路点击Next
,直到创建完成:
在控制台中搜索secret manager
并进入:
选择Store a new secret
:
创建secret时,一定要遵循以下规则:
选择Other type of secret
key/value
对一定要为username:xxx
, password:xxx
格式,如果是JSON,则为:
{
"username": "alice",
"password": "alice-secret"
}
必须使用CMK
, 不能使用default key
!这里使用上一部分创建的CMK:
secret的名称必须以 AmazonMSK_
开头:
创建完成后,记录下ARN,例如arn:aws:secretsmanager:ap-southeast-1:145197526627:secret:AmazonMSK_demo-SNElCg
这里总结下在创建secret的一些限制:
1. 必须使用customer managed key (CMK)
,且为symmetric
类型
2. secret名称必须以AmazonMSK_
开头
在MSK的控制台页面,编辑Security部分:
只勾选SASL/SCRAM
这种方式:
点击保存,集群将花差不多一个小时时间将新的安全设置应用完毕。
在更新安全设置的这段时间可以打两把王者再继续实验
完全设置更新完成后,将创建的secret绑定上去:
选择上一部分创建的secret,例如arn:aws:secretsmanager:ap-southeast-1:145197526627:secret:AmazonMSK_demo-SNElCg
:
绑定成功后的页面:
更新完成后,我们查看集群的Bootstrap server连接方式,发现此时使用了9096端口,原来的9092端口已经不显示了。
MSK Bootstrap server端口说明:
1. 9092 : 明文传输
2. 9094 : TLS传输
3. 9096 : SASL/SCRAM
方式连接
4. 9098: SASL/IAM
方式连接
此时使用原来的9092端口连接肯定不会成功,我们使用9096端口做下测试:
由于没有使用任何用户名/密码
进行验证,故报错如上。
此时达到了我们Authentication
的目的,用户必须进行登录验证才能连接。我们将在下一节介绍如何认证并连接到MSK
注意:
此时使用zookeeper进行登录,发现依然可以成功连接并执行命令:
对于zookeeper的安全,我们后面也将做介绍。