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

Amazon EKS 集群 IAM 角色

Amazon EKS 托管的 Kubernetes 集群会代表您调用其他Amazon服务,以管理您用于该服务的资源。必须先使用以下 IAM 策略创建 IAM 角色,然后才能创建 Amazon EKS 集群:

注意

在 2020 年 4 月 16 日之前,AmazonEKSServicePolicy 也是必需的,建议的名称是 eksServiceRole。有了 AWSServiceRoleForAmazonEKS 服务相关角色后,在 2020 年 4 月 16 日或之后创建的集群将不再需要该策略。

检查现有集群角色

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

在 IAM 控制台中检查 eksClusterRole

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

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

  3. 在角色列表中搜索 eksClusterRole。如果不存在包含 eksClusterRole 的角色,请参阅 创建 Amazon EKS 集群角色 来创建角色。如果包含 eksClusterRole 的角色确实存在,则选择角色以查看附加的策略。

  4. 选择权限

  5. 确保将 AmazonEKSClusterPolicy 托管策略附加到此角色。如果附加该策略,则将正确配置 Amazon EKS 集群角色。

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

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

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

创建 Amazon 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. Use case(使用案例)下,从 Use cases for other Amazon services(其他 Amazon 服务的使用案例)下的服务列表中选择 EKS

  4. 为您的使用案例选择 EKS - Cluster(EKS - 集群),然后选择 Next(下一步)。

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

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

  7. 对于 Description(说明),输入描述性文本,例如 Amazon EKS - Cluster role

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

Amazon CloudFormation

要使用 Amazon CloudFormation 创建 Amazon EKS 集群角色

  1. 将以下 Amazon CloudFormation 模板保存到本地系统中的文本文件。

    --- AWSTemplateFormatVersion: '2010-09-09' Description: 'Amazon EKS Cluster Role' Resources: eksClusterRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - eks.amazonaws.com Action: - sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonEKSClusterPolicy Outputs: RoleArn: Description: The role that Amazon EKS will use to create Amazon resources for Kubernetes clusters Value: !GetAtt eksClusterRole.Arn Export: Name: !Sub "${AWS::StackName}-RoleArn"
    注意

    在 2020 年 4 月 16 日之前,ManagedPolicyArnsarn:aws:iam::aws:policy/AmazonEKSServicePolicy 的一个条目。对于 AWSServiceRoleForAmazonEKS 服务相关角色,不再需要该策略。

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

  3. 选择创建堆栈

  4. 对于指定模板,选择上传模板文件,然后选择选择文件

  5. 选择您之前创建的文件,然后选择下一步

  6. 对于 Stack name (堆栈名称),输入角色的名称,如 eksClusterRole,然后选择 Next (下一步)

  7. Configure stack options (配置堆栈选项) 页面上,选择 Next (下一步)

  8. Review(审核)页面上审核您的信息,确认堆栈可创建 IAM 资源,然后选择 Create stack(创建堆栈)