试图使用 AWS EKS 集群的 rbac 限制 IAM 用户。错误地从 kube-system 命名空间更新了配置映射"aws-auth"。这删除了对 EKS 集群的完全访问权限。
错过添加组:在用户的配置映射中。
尝试为配置图中最后提到的用户/角色提供完全管理员访问权限,但没有运气。
任何恢复对群集的访问的想法都将是非常可观的。
配置映射.yaml:
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapUsers: |
- userarn: arn:aws:iam::1234567:user/test-user
username: test-user
为此问题做了一个变通办法:
由于默认情况下创建 EKS 集群的 IAM 用户拥有对集群的完全访问权限,尽管使用 aws-auth 配置映射。由于创建的 IAM 用户已被删除,因此我们重新创建了 IAM 用户,因为它将具有相同的 arn(如果 IAM 用户创建的同名与之前相同(。
为用户创建用户凭据(访问和密钥(后,我们重新获得了对 EKS 集群的访问权限。之后,我们根据需要修改了配置映射。
我要尝试的第一件事是恢复原始aws-auth
ConfigMap(你可以在这里找到它(:
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapRoles: |
- rolearn: <ARN of instance role (not instance profile)>
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
将rolearn
的占位符替换为与您的工作线程节点关联的 IAM 角色的 ARN,如 EKS 文档中所述。
当集群再次工作时,您可以再次将 IAM 用户添加到配置映射,EKS 文档中也有说明。