我想允许用户在Kubernetes集群中为EKS做一些事情:例如:应用部署,创建机密,创建卷等。我不确定使用哪个角色。我不想允许用户:创建集群,删除集群,列表集群只执行集群内的Kubernetes操作。
据我所知,群集的权限是使用Heptio身份验证器执行的。我相信我在这里遗漏了一些东西,但无法弄清楚是什么。
此link是将AWS IAM用户或AWS角色添加到给定K8S角色的正确选项。
假设你想要创建一个新的K8S角色,只有读取权限,称为pod-reader
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授权here的更多信息
看起来你必须在'mapUsers'项下的配置图中手动添加用户,然后根据第3节中的aws文档运行kubectl apply config-map.yml
。“将你的IAM用户,角色或AWS账户添加到configMap。”
https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html