0

不知道这是来自 AWS 的错误还是什么。我创建了一个 IAM 用户并为其提供了完整的管理策略。然后我使用这个用户使用 CLI 创建了一个 EKS 集群,但是当我使用root 用户eksctl登录到 AWS 控制台时,我在尝试访问集群节点时遇到了以下错误。

您当前的用户或角色无权访问此 EKS 集群上的 Kubernetes 对象这可能是由于当前用户或角色没有 Kubernetes RBAC 权限来描述集群资源或在集群的身份验证配置映射中没有条目。

我有这些问题

  1. root 用户是否具有从控制台查看每个资源的完全访问权限?
  2. 如果上述情况属实,这是否意味着当我从 CLI 创建资源时,我必须使用同一用户登录才能查看它?
  3. 或者有没有办法可以将策略附加到 root 用户?在控制台中没有看到类似的东西。

AWS 本身不建议为 root 用户创建访问密钥并将其用于可编程访问,所以我现在很困惑。有人帮忙

到目前为止,我看到的所有问题以及此处文档的链接都是关于在 AWS IAM 中创建的用户或角色,而不是根用户。

4

3 回答 3

1

据我了解,EKS 通过aws-auth位于kube-system命名空间中的名为 ConfigMap 来管理用户和角色权限。因此,尽管使用对所有服务具有完全管理员访问权限的 AWS 用户登录,EKS 仍将限制您在控制台中的访问,因为它无法在其身份验证配置中找到用户或角色。

当我遇到这个问题时,我通过在 mapRoles 下添加以下内容来编辑 aws-auth configmap 来解决它:

- "groups":
  - "system:masters"
  "rolearn": "arn:aws:iam::<aws-account-id>:role/<aws-role-name>"
  "username": "<aws-username>"

aws-role-name登录到右上角的 aws 控制台时显示的角色名称在哪里。

我想这也可以使用eksctl此处记录的 -utility 来完成:https ://eksctl.io/usage/iam-identity-mappings/

所以,也许是这样的:

eksctl create iamidentitymapping --cluster <clusterName> --region=<region> --arn arn:aws:iam::<aws-account-id>:role/<aws-role-name> --group system:masters --username <aws-username>

eksctl尽管我自己没有尝试过,但使用可能是一种更好的方法。

于 2022-01-20T15:33:45.957 回答
0

如果您使用 root 用户登录并收到此错误,请运行以下命令来编辑aws-authconfigMap:

kubectl edit configmap aws-auth -n kube-system

然后向下mapUsers添加以下内容(替换[account_id]为您的帐户 ID)

mapUsers: |
  - userarn: arn:aws:iam::[account_id]:root
    groups:
    - system:masters
于 2022-02-04T01:56:37.767 回答
0

我今天遇到了这个问题,并通过在这里结合答案来解决它。运行后的 aws-auth 配置如下所示:

apiVersion: v1
data:
  mapRoles: |
    - groups:
      - system:bootstrappers
      - system:nodes
      rolearn: arn:aws:iam::671177010163:role/eksctl-manu-eks-new2-nodegroup-ng-NodeInstanceRole-1NYUHVMYFP2TK
      username: system:node:{{EC2PrivateDNSName}}
  mapUsers: "- groups: \n  - system:masters\n  userarn: arn:aws:iam::671177010163:root\n"
kind: ConfigMap
metadata:
  creationTimestamp: "2022-02-13T11:03:30Z"
  name: aws-auth
  namespace: kube-system
  resourceVersion: "11362"
  uid: ac36a1d9-76bc-40dc-95f0-b1e7934357
于 2022-02-13T12:13:47.003 回答