Amazon EKS 容器执行 IAM 角色 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon EKS 容器执行 IAM 角色

要在 Amazon Fargate 基础设施上运行 Pod,需要有 Amazon EKS Pod 执行角色。

当您的集群在 Amazon Fargate 基础设施上创建 Pod 时,Fargate 基础设施上运行的组件需要代表您调用 Amazon API,以执行诸如从 Amazon ECR 提取容器镜像或将日志路由到其他Amazon服务之类的操作。Amazon EKS Pod 执行角色提供执行此操作的 IAM 权限。

创建 Fargate 配置文件时,必须使用配置文件为在 Fargate 基础设施上运行的 Amazon EKS 组件指定 Pod 执行角色。将此角色添加到集群的 Kubernetes 基于角色的访问控制 (RBAC) 以进行授权,以使在 Fargate 基础设施上运行的 kubelet 可以向您的 Amazon EKS 集群注册。这是为了让 Fargate 基础设施作为节点显示在集群中。

注意

Fargate 配置文件的的 IAM 角色必须与 Amazon EC2 节点组的 IAM 角色不同。

在 Fargate Pod 中运行的容器不能承担与 Pod 执行角色相关联的 IAM 权限。要授予 Fargate Pod(一组容器)中的容器访问其他 Amazon 服务的权限,您必须使用 服务账户的 IAM 角色

在创建 Fargate 配置文件之前,必须使用以下 IAM 策略创建 IAM 角色:

检查现有的 Pod 执行角色

可以使用以下程序检查并查看您的账户是否已有 Amazon EKS Pod 执行角色。

在 IAM 控制台中检查 AmazonEKSFargatePodExecutionRole

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

  2. 在左侧导航窗格中,选择 Roles (角色)

  3. 在角色列表中搜索 AmazonEKSFargatePodExecutionRole。如果该角色不存在,请参阅 创建 Amazon EKS Pod 执行角色以创建该角色。如果角色存在,请选择角色以查看附加的策略。

  4. 选择权限

  5. 确保将 AmazonEKSFargatePodExecutionRolePolicy Amazon 托管策略附加到该角色。如果附加该策略,则将正确配置 Amazon EKS Pod 执行角色。

  6. 选择 Trust relationships(信任关系),然后选择 Edit trust policy(编辑信任策略)。

  7. 验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 Cancel。如果信任关系不匹配,请将策略复制到 Edit trust policy(编辑信任策略)窗口并选择 Update policy(更新策略)。

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

创建 Amazon EKS Pod 执行角色

可以使用以下过程为您的账户创建一个 Amazon EKS Pod 执行角色(如果尚不具有此角色)。

使用 Amazon Web Services Management Console 创建 Amazon Fargate Pod 执行角色

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

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

  3. Use case(使用案例)下,从 Use cases for other Amazon services(其他 Amazon 服务的使用案例)下的服务列表中选择 EKS

  4. 为您的使用案例选择 EKS - Fargate pod(EKS - Fargate 容器),然后选择 Next(下一步)。

  5. Add permissions(添加权限)选项卡上,选择 Next(下一步)。

  6. 对于 Role name (角色名称),为角色输入唯一名称,例如 AmazonEKSFargatePodExecutionRole

  7. 对于 Description(说明),请将当前文本替换为描述性文本,例如 Amazon EKS - Pod execution role

  8. 选择 Create role (创建角色)