Я хочу разрешить пользователю делать что-то в кластере Kubernetes для EKS, например: применять развертывание, создавать секреты, создавать тома и т. д. Я не уверен, какую роль использовать для этого. Я не хочу позволять пользователям: чтобы создавать кластеры, удалять кластеры, кластер списка выполнять только операции Kubernetes внутри кластера.
Насколько мне известно, разрешения на кластер выполняются с помощью аутентификатора Heptio. Я считаю, что здесь чего-то не хватает, но не могу понять, что именно.
Похоже, вам нужно вручную добавить пользователей в конфигурационную карту в разделе 'mapUsers', а затем запустить kubectl apply config-map.yml
в соответствии с документацией aws в разделе 3. «Добавьте своих пользователей IAM, роли или учетные записи AWS в configMap».
https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html
Этот ссылка является правильным для добавления пользователя AWS IAM или роли AWS к данной роли K8S.
Предположим, вы хотите создать новую роль K8S только с разрешением на чтение, которая называется читалка.
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
После создания роли вам необходимо разрешить своему пользователю IAM принять эту роль. Это легко сделать:
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapUsers: |
- userarn: arn:aws:iam::270870090353:user/franziska_adler
username: iam_user_name
groups:
- pod-reader
Подробнее о авторизации K8S RBAC здесь