При создании кластера Amazon EKS объект IAM (пользователь или роль), который создает кластер, добавляется в таблицу авторизации RBAC Kubernetes в качестве администратора.Первоначально только тот пользователь IAM может делать вызовы на сервер API Kubernetes, используя kubectl.
eks-docs
Таким образом, чтобы добавить доступ к другим aws пользователям, сначала необходимо отредактировать ConfigMap, чтобы добавить пользователя IAM илироль в кластере Amazon EKS.
Вы можете редактировать файл ConfigMap, выполнив: kubectl edit -n kube-system configmap/aws-auth
, после чего вам будет предоставлен редактор, с которым вы сопоставляете новых пользователей.
apiVersion: v1
data:
mapRoles: |
- rolearn: arn:aws:iam::555555555555:role/devel-worker-nodes-NodeInstanceRole-74RF4UBDUKL6
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
mapUsers: |
- userarn: arn:aws:iam::111122223333:user/ops-user
username: ops-user
groups:
- system:masters
mapAccounts: |
- "111122223333"
Обратите внимание на mapUsers
, куда вы добавляете ops-user вместе с меткой mapAccounts
, которая сопоставляет учетную запись пользователя AWS с именем пользователя в кластере Kubernetes.
Однако в этом действии только разрешения не предоставляются в RBAC;вы все равно должны создать привязки ролей в вашем кластере, чтобы предоставить эти права доступа.
Как указано в документации Amazon ( iam-docs ), вам необходимо создать привязку роли в кластере kubernetes для пользователя, указанного в ConfigMap.Это можно сделать, выполнив следующую команду ( kub-docs ):
kubectl create clusterrolebinding ops-user-cluster-admin-binding --clusterrole=cluster-admin --user=ops-user
, которая предоставляет администратору кластера ClusterRole
пользователю по имени ops-user по всему кластеру.