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

时间:2019-11-28 09:35:14

标签: amazon-web-services kubernetes rbac amazon-eks configmap

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

缺少为用户添加configmap中的组:

试图对configmap中最后提到的用户/角色提供完全的管理员访问权限,但不走运。

任何恢复群集访问权限的想法都是很有意义的。

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

2 个答案:

答案 0 :(得分:1)

我要尝试的第一件事是还原原始的aws-auth ConfigMap(您可以找到它here):

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

按照EKS documentation中的说明,将rolearn的占位符替换为与您的工作节点相关联的IAM角色的ARN。

当群集再次工作时,您可以再次将IAM用户添加到ConfigMap,这在EKS docs中也有介绍。

答案 1 :(得分:0)

为此问题找到了解决方法:

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

一旦为用户创建了用户凭证(访问和密钥),我们便可以重新访问EKS集群。接下来,我们根据需要修改了config-map。