将现有 aws-auth ConfigMap 条目迁移至访问条目 - Amazon EKS

将现有 aws-auth ConfigMap 条目迁移至访问条目

如果您已向集群的 aws-auth ConfigMap 中添加了条目,我们建议您为 aws-auth ConfigMap 中的现有条目创建访问条目。创建访问条目后,您可以从 ConfigMap 中移除这些条目。您无法将将访问策略与访问条目关联起来访问策略与 aws-auth ConfigMap 中的条目关联起来。如果您想将访问策略与您的 IAM 主体相关联,请创建访问条目。

重要

不要移除在您向集群添加使用托管式节点组简化节点生命周期托管节点组或 定义启动时将使用 AWS Fargate 的PodsFargate 配置文件时由 Amazon EKS 创建的现有 aws-auth ConfigMap 条目。如果您移除 Amazon EKS 在 ConfigMap 中创建的条目,您的集群将无法正常运行。但是,您可以在为使用自行管理型节点来自行维护节点自行管理的节点组创建访问条目后移除这些节点组对应的任何条目。

  • 熟悉访问条目和访问策略。有关更多信息,请参阅使用 EKS 访问条目向 IAM 用户授予对 Kubernetes 的访问权限将访问策略与访问条目关联起来

  • 一个现有集群,其平台版本等于或高于使用 EKS 访问条目向 IAM 用户授予对 Kubernetes 的访问权限“允许 IAM 角色或用户访问您的 Amazon EKS 集群上的 Kubernetes 对象”主题的“先决条件”中列出的版本。

  • 您的设备或 AWS CloudShell 上安装 0.194.0 版或更高版本的 eksctl 命令行工具。要安装或更新 eksctl,请参阅 eksctl 文档中的 Installation

  • 用于修改 kube-system 命名空间中的 aws-auth ConfigMap 的 Kubernetes 权限。

  • 具有以下权限的 AWS Identity and Access Management 角色或用户:CreateAccessEntryListAccessEntries。有关更多信息,请参阅《服务授权参考》中的 Amazon Elastic Kubernetes Service 定义的操作

    1. 查看您的 aws-auth ConfigMap 中的现有条目。将 my-cluster 替换为您的集群的名称。

      eksctl get iamidentitymapping --cluster my-cluster

      示例输出如下。

      ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/EKS-my-cluster-Admins Admins system:masters arn:aws:iam::111122223333:role/EKS-my-cluster-my-namespace-Viewers my-namespace-Viewers Viewers arn:aws:iam::111122223333:role/EKS-my-cluster-self-managed-ng-1 system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes arn:aws:iam::111122223333:user/my-user my-user arn:aws:iam::111122223333:role/EKS-my-cluster-fargateprofile1 system:node:{{SessionName}} system:bootstrappers,system:nodes,system:node-proxier arn:aws:iam::111122223333:role/EKS-my-cluster-managed-ng system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
    2. 创建访问条目为您创建的并在上一个输出中返回的任何 ConfigMap 条目创建访问条目。创建访问条目时,请确保为输出中返回的 ARNUSERNAMEGROUPSACCOUNT 指定相同的值。在此示例输出中,您将为除最后两个条目外的其他所有条目创建访问条目,因为最后两个条目是由 Amazon EKS 为 Fargate 配置文件和托管节点组创建的。

    3. ConfigMap 中删除您创建的任何访问条目对应的条目。如果您不从 ConfigMap 中删除条目,则 IAM 主体 ARN 的访问条目设置将覆盖 ConfigMap 条目。将 111122223333 替换为您的 AWS 账户 ID,将 EKS-my-cluster-my-namespace-Viewers 替换为您的 ConfigMap 中相应条目的角色名称。如果您要移除的条目是用于 IAM 用户而不是 IAM 角色的,请将 role 替换为 user,将 EKS-my-cluster-my-namespace-Viewers 替换为用户名。

      eksctl delete iamidentitymapping --arn arn:aws:iam::111122223333:role/EKS-my-cluster-my-namespace-Viewers --cluster my-cluster