AWS EKS update-kubeconfig 不遵守 --role-arn 标志

Kur*_*ler 5 amazon-web-services aws-cli kubernetes

每当我使用用于创建 eks 集群的角色运行以下命令时...

aws eks update-kubeconfig --name eks-cluster --role-arn arn:aws:iam::999999999999:role/eksServiceRole
Run Code Online (Sandbox Code Playgroud)

...我收到以下错误:

An error occurred (AccessDeniedException) when calling the DescribeCluster operation: User: arn:aws:iam::111111111111:user/username is not authorized to perform: eks:DescribeCluster on resource: arn:aws:eks:us-east-1:561353845098:cluster/eks-cluster
Run Code Online (Sandbox Code Playgroud)

有人对如何诊断和纠正此错误有任何建议吗?

小智 5

一些可能有帮助,也可能无济于事的建议:

  • 您可以--verbose在您的命令中加入,以获得关于它在哪里失败的更好的细节。在这种情况下,您通过身份验证的用户是否无法承担指定的角色?

  • 在手册中 aws-cli--role-arn作为字符串传递,您应该尝试用双引号将其封装:

aws eks update-kubeconfig --name eks-cluster --role-arn "arn:aws:iam::999999999999:role/eksServiceRole"

  • 尝试通过 aws-cli 手动承担角色。

    1. 验证您当前的身份验证会话: aws sts get-caller-identity

    2. 尝试承担角色: aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/eksServiceRole" --role-session-name test-eks-role


小智 5

--role-arnaws-iam-authenticator是当您运行以获取令牌时将使用的角色kubectl,并且仅注入到生成的配置中;该命令不使用它以任何方式获取 EKS 资源。

您遇到的错误是因为您用于运行命令的 AWS 凭证update-kubeconfig没有描述该集群的权限。


MLu*_*MLu 2

我对 EKS 不太熟悉,但我猜您运行该命令的用户aws eks需要描述集群的权限。

这样运行成功吗?

~ $ aws eks describe-cluster --name eks-cluster
Run Code Online (Sandbox Code Playgroud)

如果没有,您需要检查您的aws-cli 权限并首先使其工作。

这只是一个猜测,但希望有帮助:)