我已经创建了一个EKS集群。目前只有我可以通过kubectl
访问它。我想让我所有的大学都可以使用它。我们都有相同的AWS帐户中的用户。
如果我正确理解了https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html中的文档,则必须分别添加每个用户。
有没有更简单的方法?
答案 0 :(得分:0)
最简单的方法是在mapAccounts
配置映射中使用aws-auth
。
请参阅aws-iam-authenticator上的文档。
https://github.com/kubernetes-sigs/aws-iam-authenticator/blob/master/README.md
通过使用mapAccounts,您可以将所有IAM用户映射到eks集群;如果用户具有正确的IAM权限进行连接,则他们应该能够进行身份验证。
答案 1 :(得分:0)
通过将帐户添加到 mapAccounts
配置映射中的 aws-auth
部分,您只能获得身份验证。
这意味着 kubernetes 会将您的 IAM 用户的 arn - 类似于:arn:aws:iam::111111111111:user/myIAMUser- 分配给 kubernete 的 username
,但您没有任何权利做任何事情,甚至没有列出豆荚。
此外,您还必须创建(集群)RoleBindings 以授予用户权限。
例如,为了给之前的用户对所有命名空间的只读访问权限,我们创建了一个包含以下内容的 ClusterRoleBinding
:
# This role binding allows the user to read in all namespaces.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: myIAMUser-readOnly
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: arn:aws:iam::111111111111:user/myIAMUser
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
有关 kubernetes 中定义的面向用户的角色的更多信息可以在 documentation 中找到。
另一种可能的解决方案是编辑 mapUsers
配置映射中的 aws-auth
部分。我不喜欢这种方法,因为每次要添加用户时都必须修改 aws-auth
配置映射,并且可能会错误地修改文件的其他部分或损坏内容。此外,添加或删除角色绑定比编辑现有文件更容易自动化。
有关 aws-auth
配置映射格式的更多信息,请参见 here。