首页 > 解决方案 > AWS EKS 添加用户受限于命名空间

问题描述

我已经创建了 AWS EKS 集群,因为我使用我的 AWS 用户 ID 创建了已添加到system:masters组。但是当检查 ConfigMap 时,aws-auth我看不到我的用户 ID。为什么 ?

我必须向其他用户授予访问权限,因此我必须为 IAM 用户分配适当的 AWS 策略,然后aws-auth使用以下映射编辑 ConfigMap

mapUsers:
----
- userarn: arn:aws:iam::573504862059:user/abc-user  
  username: abc-user
  groups:
    - system:masters

到目前为止,我已经了解当用户是system:masters组的一部分时,该用户对集群具有管理员权限。

如何添加对特定命名空间具有受限权限的新用户?我是否必须为上述用户做同样的事情?如果是这样,那么我应该将新用户添加到哪个组?

标签: amazon-web-serviceskuberneteskubectlamazon-eks

解决方案


我会熟悉Kubernetes RBAC 概念

因此,您可以创建一个Role,因为这些仅限于特定的命名空间。

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: my-namespace
  name: full-namespace
rules:
- apiGroups: ["*"] 
  resources: ["*"]
  verbs: ["*"]

然后创建一个RoleBinding

$ kubectl create rolebinding my-namespace-binding --role=full-namespace --group=namespacegroup --namespace=my-namespace

或者kubectl create -f这样:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: my-namespace-binding
  namespace: mynamespace
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: full-namespace
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: namespacegroup

然后在您的 ConfigMap 上:

mapUsers:
----
- userarn: arn:aws:iam::573504862059:user/abc-user  
  username: abc-user
  groups:
    - namespacegroup

推荐阅读