Bootstrap

[AWS]MSK调用,报错Access denied

背景:首先MSK就是配置一个AWS的托管 kafka,创建完成之后就交给开发进行使用,开发通常是从代码中,编写AWS的access_key 和secret_key进行调用。


但是开发在进行调用的时候,一直报错连接失败,其实问题很简单!

一、首先你要保证你的Key拥有足够的权限,在IAM账户配置:

配置一个AmazonMSKFullAccess 最为方便。

二、如果你的集群启用了安全性设置-访问控制方法,还需要添加新的权限:

启用安全性防护之后(公网模式默认启动),启动之后,你必须对集群内部的cluster要由权限,权限分为cluster、topic、group,傻逼得要死,直接写*,你要分开写的话参考: IAM access control - Amazon Managed Streaming for Apache Kafka

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "VisualEditor0",
			"Effect": "Allow",
			"Action": "kafka-cluster:*",
			"Resource": "*"
		}
	]
}


三、观察你的MSK集群是不是启用了加密:

如果启用了加密,代码在调用的时候,必须拥有KMS的权限 :

这个权限是迷惑的,权限根本不足,要自己写:

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "VisualEditor0",
			"Effect": "Allow",
			"Action": "kms:*",
			"Resource": "*"
		}
	]
}



加上这两个权限之后,搞定。 

;