我已经使用eksctl
以下命令部署了 EKS本文档。
作为创建集群的用户,我拥有完全的访问控制权。
尝试system:masters
向特定用户授予权限不起作用方式:
kubectl edit -n kube-system configmap/aws-auth
apiVersion: v1
data:
mapAccounts: |
- "111111111111"
mapRoles: |
- groups:
- system:bootstrappers
- system:nodes
rolearn: ***
username: ***
mapUsers: |
- rolearn: arn:aws:iam::***:user/test-user
username: test-user
groups:
- system:masters
kind: ConfigMap
metadata:
...
以 身份登录test-user
并执行kubectl get pods
我收到的:
Error from server (Forbidden): pods is forbidden: User "arn:aws:iam::***:user/test-user" cannot list resource "pods" in API group "" in the namespace "default"
我读过一些mapAccounts
将用户映射到 的文章system:authenticated
,但我无法在 AWS 文档中验证这一点。
我尝试创建不同的clusterRole
并将clusterRoleBindings
它们附加到 ,test-user
但没有任何效果...
我如何向特定test-user
用户授予访问权限,或通常system:authenticated
向 IAM 中的我的组授予完全访问权限(修改)?
答案1
我看到您正在使用rolearn
而不是userarn
under mapUsers:
。
替换它,它就应该可以工作了。
要将新配置应用于 Amazon EKS 集群的 RBAC 配置,请运行以下命令:
kubectl apply -f aws-auth-cm.yml
然后您应该能够以测试用户身份登录。