1

我有一个角色,它拥有访问附加到 Ec2 实例的 EKS、Ec2、IAM 的完全权限。

我正在尝试从此 Ec2 实例访问我的 EKS 集群。我确实将如下所示的 Ec2 实例 arn 添加到该实例所承担的角色的受信任关系中。但是,当尝试使用kubectlEc2 实例中的 cli 访问集群时,我仍然收到如下错误。

我在下面尝试获取写入执行这些命令的实例 hoe 目录的 kube 配置。

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
4

2 回答 2

1

社区 wiki 回答以获得更好的可见性。

通过从评论中获取一个好的提示来解决问题:

不要指定role-arn是否希望它使用实例配置文件。

OP已确认:

感谢@jordanm 的帮助

于 2021-10-04T08:36:45.500 回答
0

您需要建立信任关系,进入我是角色并单击信任关系并添加以下JSON

将 XXXXXXXXXXXX 替换为您的帐户 ID

            {
              "Version": "2012-10-17",
              "Statement": [
                {
                  "Effect": "Allow",
                  "Principal": {
                    "AWS": [
                      "arn:aws:iam::XXXXXXXXXXXX:root",
                    ]
                  },
                  "Action": "sts:AssumeRole"
                }
              ]
            }
于 2021-10-01T18:32:01.663 回答