AWS EKS添加仅限于名称空间的用户

roy*_*roy 3 amazon-web-services kubernetes kubectl amazon-eks aws-eks

我创建了AWS EKS集群,因为使用我的AWS userID创建的集群已添加到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
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经了解了当用户属于system:masters组时,该用户在群集上具有管理员权限。

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

Ric*_*ico 6

我会熟悉Kubernetes RBAC概念

因此,您可以创建一个,Role因为它们仅限于特定的名称空间。

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: my-namespace
  name: full-namespace
rules:
- apiGroups: ["*"] 
  resources: ["*"]
  verbs: ["*"]
Run Code Online (Sandbox Code Playgroud)

然后创建一个RoleBinding

$ kubectl create rolebinding my-namespace-binding --role=full-namespace --group=namespacegroup --namespace=my-namespace
Run Code Online (Sandbox Code Playgroud)

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
  namespace: mynamespace
Run Code Online (Sandbox Code Playgroud)

然后在您的ConfigMap上:

mapUsers:
----
- userarn: arn:aws:iam::573504862059:user/abc-user  
  username: abc-user
  groups:
    - namespacegroup
Run Code Online (Sandbox Code Playgroud)