亚马逊 EKS 节点 IAM 角色 - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 EKS 节点 IAM 角色

Amazon EKS 节点kubelet守护进程调用Amazon代表您访问 API。节点通过 IAM 实例配置文件和关联的策略获得这些 API 调用的权限。您必须先为节点创建 IAM 角色以在启动它们时使用,然后才能启动这些节点并在集群中注册它们。此要求适用于通过由 Amazon 提供的 Amazon EKS 优化 AMI 启动的节点,也适用于您打算使用的任何其他节点 AMI。必须先使用以下 IAM 策略创建 IAM 角色,然后才能创建节点:

检查现有节点角色

可使用以下过程检查并确定您的账户是否已有 Amazon EKS 节点角色。

检查eksNodeRoleIAM 控制台中的

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航面板中,选择角色

  3. 在角色列表中搜索 eksNodeRole。如果包含eksNodeRole或者NodeInstanceRole不存在,请参阅创建亚马逊 EKS 节点 IAM 角色创建角色。如果包含eksNodeRole或者NodeInstanceRole确实存在,然后选择角色以查看附加的策略。

  4. 选择 Permissions

  5. 确保AmazonEKSWorkerNodePolicyAmazonEC2ContainerRegistryReadOnly托管策略附加到角色。如果附加这些策略,则将正确配置 Amazon EKS 节点角色。

    注意

    如果AmazonEKS_CNI_Policy策略附加到角色,我们建议删除该角色并将其附加到映射到aws-node而不是库贝内特服务帐户。有关更多信息,请参阅 配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色

  6. 选择 Trust Relationships,然后选择 Edit Trust Relationship

  7. 验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 Cancel。如果信任关系不符合,请将策略复制到 Policy Document 窗口中并选择 Update Trust Policy

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

创建亚马逊 EKS 节点 IAM 角色

您可以使用Amazon Web Services Management Console或者Amazon CloudFormation。选择带有要用于创建角色的工具名称的选项卡。

Amazon Web Services Management Console

在 IAM 控制台中创建 Amazon EKS 节点角色

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Roles,然后选择 Create role

  3. 选择EC2从列表中的常见使用案例根据选择使用案例然后选择后续:Permissions (下一步:权限)

  4. Filter policies (筛选器策略) 框中,输入 AmazonEKSWorkerNodePolicy。选中 AmazonEKSWorkerNodePolicy左侧的复选框。

  5. Filter policies (筛选器策略) 框中,输入 AmazonEC2ContainerRegistryReadOnly。选中 AmazonEC2ContainerRegistryReadOnly 左侧的复选框。

  6. 这些区域有:AmazonEKS_CNI_Policy策略必须附加到此角色或映射到aws-node库贝内特人服务帐户。我们建议将策略分配给与 Kubernetes 服务帐户关联的角色,而不是将其分配给此角色。有关更多信息,请参阅 配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色

  7. 选择 Next:。标签

  8. (可选)通过以键值对的形式附加标签来向角色添加元数据。有关在 IAM 中使用标签的更多信息,请参阅标记 IAM 实体中的IAM 用户指南

  9. 选择 Next:。审核

  10. 适用于Role name (角色名称)中,输入您的角色的唯一名称,如 NodeInstanceRole 程序。适用于角色描述,请将当前文本替换为描述性文本,例如 Amazon EKS-节点组角色,然后选择创建角色

Amazon CloudFormation

要使用创建 Amazon EKS 节点角色,请使用Amazon CloudFormation

  1. 打开 Amazon CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation

  2. 选择 Create stack (创建堆栈),然后选择 With new resources (standard) (使用新资源(标准))

  3. 适用于指定模板中,选择Amazon S3 URL

  4. 将以下 URL 粘贴到Amazon S3 URL文本区域,然后选择下一步两次:

    https://s3.cn-north-1.amazonaws.com.cn/amazon-eks/cloudformation/2020-10-29/amazon-eks-nodegroup-role.yaml
  5. Specify stack details (指定堆栈详细信息) 页面上,对于 Stack name (堆栈名称) 输入一个名称,如 eks-node-group-instance-role ,然后选择 Next (下一步)

  6. (可选)在 Configure stack options (配置堆栈选项) 页面上,您可以选择为堆栈资源添加标签。选择 Next

  7. Review (审核) 页面上,选中 Capabilities (功能) 部分中的复选框,然后选择 Create stack (创建堆栈)

  8. 创建堆栈后,在控制台中选中它,然后选择 Outputs (输出)

  9. 记录NodeInstanceRole 程值为已创建的 IAM 角色。在您创建节点组时需要此功能。

  10. (可选,但建议)由Amazon CloudFormation模板是AmazonEKS_CNI_Policy托管策略。该策略必须附加到此角色或与 Kubernetes 关联的角色aws-node用于亚马逊 EKS VPC CNI 插件的服务帐户。我们建议将策略分配给与 Kubernetes 服务帐户关联的角色。有关更多信息,请参阅 配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色