使用 rbac 错误地更新了 configmap aws-auth 并失去了对集群的访问权限

San*_*ndy 6 rbac amazon-web-services kubernetes configmap amazon-eks

试图使用 AWS EKS 集群的 rbac 限制 IAM 用户。错误地从 kube-system 命名空间更新了配置映射“aws-auth”。这删除了对 EKS 集群的完全访问权限。

错过添加组:在用户的配置图中。

尝试提供对配置图中最后提到的用户/角色的完全管理员访问权限,但没有运气。

任何恢复对集群的访问的想法都非常值得赞赏。

config-map.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
Run Code Online (Sandbox Code Playgroud)

San*_*ndy 13

针对这个问题做了一个解决方法:

由于默认情况下创建 EKS 集群的 IAM 用户拥有对集群的完全访问权限,尽管有 aws-auth configmap。由于创建的 IAM 用户已被删除,我们重新创建了 IAM 用户,因为它将具有相同的 arn(如果使用与之前相同的名称创建 IAM 用户)。

为用户创建用户凭证(访问权限和密钥)后,我们就可以重新访问 EKS 集群。接下来,我们根据需要修改了配置映射。


wei*_*eld 0

我要尝试的第一件事是恢复原始的ConfigMap(你可以在这里aws-auth找到它):

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
Run Code Online (Sandbox Code Playgroud)

将占位符 替换为rolearn与您的工作线程节点关联的 IAM 角色的 ARN,如EKS 文档中所述。

当集群再次工作时,您可以再次将 IAM 用户添加到 ConfigMap,这在EKS 文档中也有描述。

  • 当我首先失去对集群的访问时,如何修改 configMap?面临同样的问题。请建议。 (5认同)