我通过一个IAM用户部署了一个EKS集群,需要给予完全的集群权限给其他aws sso用户。我按照这个指令https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html操作,但仍然不能使它工作。
我得到下面的错误时,运行此命令由sso用户:
$ kubectl get pods
error: You must be logged in to the server (Unauthorized)
字符串
在文档中,他们说创建aws-auth
ConfigMap来Map角色,如下所示。但我不确定我应该指定什么角色。我使用EKS + Fargate,所以我的集群中没有node group
或node instance
。那么我应该在下面的配置中指定什么样的角色>
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapRoles: |
- rolearn: <ARN of instance role (not instance profile)>
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
型
2条答案
按热度按时间xuo3flqw1#
您应指定:
字符串
请注意,
<aws_account_id>
是创建EKS集群的AWS账户ID,<federated_user>
是您访问该账户的SSO用户。此策略将为您的k8s集群添加管理员访问权限。您可以通过使用该用户登录账户来获取<federated_user>
,并在右上角展开,您会看到Federated user。复制它,它看起来就像这个AWSReservedSSO_AdministratorAccess_9999bb9bbbbfff/administrator
。只取正斜杠前的第一部分。mv1qrgav2#
有一篇很棒的文章解释了你的场景
https://medium.com/swlh/secure-an-amazon-eks-cluster-with-iam-rbac-b78be0cd95c9