Amazon EKS Connector IAM 角色
您可以连接 Kubernetes 集群以便在 AWS Management Console 中查看。要连接 Kubernetes 集群,创建 IAM 角色。
检查现有 EKS connector 角色
您可以使用以下过程检查并查看您的账户是否已有 Amazon EKS connector 角色。
-
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在左侧导航窗格中,选择 Roles(角色)。
-
在角色列表中搜索
AmazonEKSConnectorAgentRole
。如果不存在包含AmazonEKSConnectorAgentRole
的角色,请参阅 创建 Amazon EKS Connector 代理角色 来创建角色。如果包含AmazonEKSConnectorAgentRole
的角色确实存在,则选择角色以查看附加的策略。 -
选择权限。
-
确保将 AmazonEKSConnectorAgentPolicy 托管策略附加到此角色。如果附加该策略,则将正确配置 Amazon EKS connector 角色。
-
选择 Trust relationships(信任关系),然后选择 Edit trust policy(编辑信任策略)。
-
验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 Cancel(取消)。如果信任关系不匹配,请将策略复制到编辑信任策略窗口并选择更新策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
创建 Amazon EKS Connector 代理角色
您可以使用 AWS Management Console 或 AWS CloudFormation 创建 connector 代理角色。
- AWS CLI
-
-
创建一个名为
eks-connector-agent-trust-policy.json
的文件,其中包含要用于 IAM 角色的以下 JSON。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
创建一个名为
eks-connector-agent-policy.json
的文件,其中包含要用于 IAM 角色的以下 JSON。{ "Version": "2012-10-17", "Statement": [ { "Sid": "SsmControlChannel", "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel" ], "Resource": "arn:aws:eks:*:*:cluster/*" }, { "Sid": "ssmDataplaneOperations", "Effect": "Allow", "Action": [ "ssmmessages:CreateDataChannel", "ssmmessages:OpenDataChannel", "ssmmessages:OpenControlChannel" ], "Resource": "*" } ] }
-
使用您在之前列表项中创建的信任策略和策略创建 Amazon EKS Connector 代理角色。
aws iam create-role \ --role-name AmazonEKSConnectorAgentRole \ --assume-role-policy-document file://eks-connector-agent-trust-policy.json
-
将该策略附加到 Amazon EKS Connector 代理角色。
aws iam put-role-policy \ --role-name AmazonEKSConnectorAgentRole \ --policy-name AmazonEKSConnectorAgentPolicy \ --policy-document file://eks-connector-agent-policy.json
-
- AWS CloudFormation
-
-
将以下 AWS CloudFormation 模板保存到本地系统中的文本文件。
注意
此模板还创建服务相关角色,否则调用
registerCluster
API 时将创建。有关详细信息,请参阅使用角色将 Kubernetes 集群连接到 Amazon EKS。--- AWSTemplateFormatVersion: '2010-09-09' Description: 'Provisions necessary resources needed to register clusters in EKS' Parameters: {} Resources: EKSConnectorSLR: Type: AWS::IAM::ServiceLinkedRole Properties: AWSServiceName: eks-connector.amazonaws.com EKSConnectorAgentRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: [ 'sts:AssumeRole' ] Principal: Service: 'ssm.amazonaws.com' EKSConnectorAgentPolicy: Type: AWS::IAM::Policy Properties: PolicyName: EKSConnectorAgentPolicy Roles: - {Ref: 'EKSConnectorAgentRole'} PolicyDocument: Version: '2012-10-17' Statement: - Effect: 'Allow' Action: [ 'ssmmessages:CreateControlChannel' ] Resource: - Fn::Sub: 'arn:${AWS::Partition}:eks:*:*:cluster/*' - Effect: 'Allow' Action: [ 'ssmmessages:CreateDataChannel', 'ssmmessages:OpenDataChannel', 'ssmmessages:OpenControlChannel' ] Resource: "*" Outputs: EKSConnectorAgentRoleArn: Description: The agent role that EKS connector uses to communicate with AWS services. Value: !GetAtt EKSConnectorAgentRole.Arn
-
选择使用新资源创建堆栈(标准)。
-
对于指定模板,选择上传模板文件,然后选择选择文件。
-
选择您之前创建的文件,然后选择下一步。
-
对于 Stack name (堆栈名称),输入角色的名称,如
eksConnectorAgentRole
,然后选择 Next (下一步)。 -
在配置堆栈选项页面上,请选择下一步。
-
在 Review(审核)页面上审核您的信息,确认堆栈可创建 IAM 资源,然后选择 Create stack(创建堆栈)。
-