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
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。
-
在左侧导航窗格中,选择 Roles (角色)。
-
在角色列表中搜索 eksClusterRole
。如果不存在包含 eksClusterRole
的角色,请参阅 创建 Amazon EKS 集群角色 来创建角色。如果包含 eksClusterRole
的角色确实存在,则选择角色以查看附加的策略。
-
选择权限。
-
确保将 AmazonEKSClusterPolicy 托管策略附加到此角色。如果附加该策略,则将正确配置 Amazon EKS 集群角色。
-
选择 Trust relationships(信任关系),然后选择 Edit trust policy(编辑信任策略)。
-
验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 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 集群角色
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。
-
选择 Roles,然后选择 Create role。
-
在 Use case(使用案例)下,从 Use cases for other Amazon services(其他 Amazon 服务的使用案例)下的服务列表中选择 EKS。
-
为您的使用案例选择 EKS - Cluster(EKS - 集群),然后选择 Next(下一步)。
-
在 Add permissions(添加权限)选项卡上,选择 Next(下一步)。
-
对于 Role name (角色名称),为角色输入唯一名称,例如 eksClusterRole
。
-
对于 Description(说明),输入描述性文本,例如 Amazon EKS -
Cluster role
。
-
选择 Create role (创建角色)。
- Amazon CloudFormation
-
要使用 Amazon CloudFormation 创建 Amazon EKS 集群角色
-
将以下 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 日之前,ManagedPolicyArns
有 arn:aws:iam::aws:policy/AmazonEKSServicePolicy
的一个条目。对于 AWSServiceRoleForAmazonEKS
服务相关角色,不再需要该策略。
打开 Amazon CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation。
-
选择创建堆栈。
-
对于指定模板,选择上传模板文件,然后选择选择文件。
-
选择您之前创建的文件,然后选择下一步。
-
对于 Stack name (堆栈名称),输入角色的名称,如 eksClusterRole
,然后选择 Next (下一步)。
-
在 Configure stack options (配置堆栈选项) 页面上,选择 Next (下一步)。
-
在 Review(审核)页面上审核您的信息,确认堆栈可创建 IAM 资源,然后选择 Create stack(创建堆栈)。