我有一个角色,该角色具有访问附加到Ec2实例的EKS、Ec2、IAM的完全权限。
我正试图从此Ec2实例访问我的EKS群集。我确实将Ec2实例arn添加到了该实例所承担角色的受信任关系中,如下所示。然而,当我尝试在Ec2实例内使用cli中的kubectl
访问集群时,仍然会出现如下错误。
我在下面尝试获得写在执行这些命令的实例hoe目录中的kube-config。
aws sts get-caller-identity
$ aws eks update-kubeconfig --name eks-cluster-name --region aws-region --role-arn arn:aws:iam::XXXXXXXXXXXX:role/testrole
我得到的错误:
error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:sts::769379794363:assumed-role/dev-server-role/i-016d7738c9cb84b96 is not authorized to perform: sts:AssumeRole on resource xxx
社区wiki答案,以获得更好的可见性。
这个问题是通过从评论中得到一个很好的提示来解决的:
如果希望
role-arn
使用实例配置文件,请不要指定它。
OP已确认:
感谢@jordanm帮助
您需要建立信任关系,转到I AM角色并单击信任关系,然后添加以下JSON
将XXXXXXXXXXXXX替换为您的帐户id
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::XXXXXXXXXXXX:root",
]
},
"Action": "sts:AssumeRole"
}
]
}