EKS 无法使用 Kubectl 向 Kubernetes 进行身份验证 - “用户:无权执行:sts:AssumeRole”
Posted
技术标签:
【中文标题】EKS 无法使用 Kubectl 向 Kubernetes 进行身份验证 - “用户:无权执行:sts:AssumeRole”【英文标题】:EKS not able to authenticate to Kubernetes with Kubectl - "User: is not authorized to perform: sts:AssumeRole" 【发布时间】:2020-02-14 13:05:39 【问题描述】:我最初运行 aws --region eu-west-1 eks update-kubeconfig --name prod-1234 --role-arn arn:aws:iam::1234:user/chris-devops
以访问 EKS 集群。
当执行以下操作时:kubectl get ...
我收到以下错误:
调用 AssumeRole 时发生错误 (AccessDenied) 操作:用户:arn:aws:iam::1234:user/chris-devops 未授权 执行: sts:AssumeRole 在资源上: arn:aws:iam::1234:user/chris-devops
为什么会出现此错误?我如何获得访问权限?
我已向用户添加以下内容:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "arn:aws:iam::1234:user/chris-devops"
]
此外,我还拥有完整的管理员权限:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": "*",
"Resource": "*"
]
我已阅读:https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_cant-assume-role
我的理解是我符合所有标准。
【问题讨论】:
尝试将"Resource": "arn:aws:iam::1234:user/chris-devops
改为"Resource":*
谢谢 - 我最初确实有,但没有区别。
也许这可以帮助eksworkshop.com/irsa
【参考方案1】:
你的政策是错误的。用户不能假设另一个 IAM 用户。应该是这样的:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "arn:aws:iam::1234:role/prod-Eks-1234-admins"
]
【讨论】:
你是如何创建这个角色的?如果我理解正确,这个角色的含义应该是 eks 访问您的帐户。这个角色有什么政策? Prod-Eks-1234-admins 谢谢!【参考方案2】:aws eks --region eu-west-1 update-kubeconfig --name prod-eks-3flXvI2r --role-arn http://arn:aws:iam::1234:role/prod-eks-1234-admins
我必须指定正确的角色...哇哦
【讨论】:
是的,要添加更多详细信息,您需要指定配置 EKS 集群的角色。与您的用户的策略相同,使用配置角色。 你是如何创建这个角色的?如果我理解正确,这个角色的含义应该是可以访问您的帐户。以上是关于EKS 无法使用 Kubectl 向 Kubernetes 进行身份验证 - “用户:无权执行:sts:AssumeRole”的主要内容,如果未能解决你的问题,请参考以下文章
kubectl 等待 AWS EKS 上的服务公开 .status.loadBalancer.ingress 字段中报告的 Elastic Load Balancer (ELB) 地址