帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
Amazon EKS 混合节点功能使用由 AWS SSM 混合激活或 AWS IAM Roles Anywhere 预置的临时 IAM 凭证,来进行 Amazon EKS 集群身份验证。您必须使用 AWS SSM 混合激活,或将 AWS IAM Roles Anywhere 与 Amazon EKS 混合节点功能 CLI (nodeadm
) 配合使用。您不应同时使用 AWS SSM 混合激活和 AWS IAM Roles Anywhere。如果您没有具有证书颁发机构(CA)的现有公钥基础设施(PKI)和本地环境的证书,则建议使用 AWS SSM 混合激活。如果您在确实具有现有的 PKI 和本地证书,请使用 AWS IAM Roles Anywhere。
混合节点 IAM 角色
您必须首先为您的混合节点凭证创建一个将与 AWS SSM 混合激活或 AWS IAM Roles Anywhere 结合使用的 IAM 角色,然后才能将混合节点连接到 Amazon EKS 集群。创建集群后,您将使用此角色和某个 Amazon EKS 访问条目或 aws-auth
ConfigMap 条目,来将该 IAM 角色映射到 Kubernetes 基于角色的访问控制(RBAC)。有关将混合节点 IAM 角色与 Kubernetes RBAC 关联的更多信息,请参阅准备混合节点的集群访问权限。
混合节点 IAM 角色必须具有以下权限。
-
nodeadm
使用eks:DescribeCluster
操作收集集群的相关信息,以便用于将混合节点连接到集群的权限。如果您未启用eks:DescribeCluster
操作,则必须在运行nodeadm
init 时传递给nodeadm
的节点配置中传递 Kubernetes API 端点、集群 CA 绑定和服务 IPv4 CIDR 等信息。 -
如 AmazonEC2ContainerRegistryPullOnly 策略所定义,kubelet 使用来自 Amazon Elastic Container Registry(Amazon ECR)的容器映像的权限。
-
如果使用 AWS SSM,则为 aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html 策略中所定义的,允许
nodeadm
init 使用 AWS SSM 混合激活的权限。 -
如果使用 AWS SSM,则为使用
nodeadm uninstall
的ssm:DeregisterManagedInstance
操作和ssm:DescribeInstanceInformation
操作注销实例的权限。 -
(可选)Amazon EKS 容器组身份代理使用
eks-auth:AssumeRoleForPodIdentity
操作检索容器组凭证的权限。
设置 AWS SSM 混合激活
必须首先创建并配置一个混合节点 IAM 角色,然后才能设置 AWS SSM 混合激活。有关更多信息,请参阅 创建混合节点 IAM 角色。按照《AWS Systems Manager 用户指南》中创建混合激活以将节点注册到 Systems Manager 部分的说明,为您的混合节点创建一个 AWS SSM 混合激活。将主机作为混合节点注册到 Amazon EKS 集群时,您收到的激活码和 ID 将与 nodeadm
结合使用。在为混合节点创建并准备好了 Amazon EKS 集群后,您可以稍后再回到此步骤。
重要
根据您创建激活的方式,Systems Manager 立即将激活码和 ID 返回到控制台或命令窗口。复制此信息并将其存储在安全位置。如果您离开该控制台或关闭命令窗口,可能会丢失此信息。如果您丢失对应信息,则必须创建一个新激活。
默认情况下,AWS SSM 混合激活会处于活动状态 24 小时。您也可以用时间戳格式(例如 2024-08-01T00:00:00
)来指定 --expiration-date
何时创建混合激活。当凭证提供者为 AWS SSM 时,混合节点的节点名称将不可配置,而是由 AWS SSM 自动生成的。您可以在 AWS Systems Manager 控制台中的 Fleet Manager 下查看和管理 AWS SSM 托管式实例。每个账户在每个 AWS 区域最多可以免费注册 1000 个标准混合激活节点。但是,注册超过 1000 个混合节点需要激活高级实例套餐。使用高级实例套餐将会产生费用,并且该费用未包含在 Amazon EKS 混合节点功能
请参阅以下示例,了解如何使用混合节点 IAM 角色创建 AWS SSM 混合激活。将 AWS SSM 混合激活作为混合节点凭证使用时,混合节点名称的格式将为 mi-012345678abcdefgh
,AWS SSM 预置的临时凭证有效期为 1 小时。当凭证提供者为 AWS SSM 时,您无法更改节点名称或凭证有效期。临时凭证将由 AWS SSM 自动轮换,但此轮换不会影响节点或应用程序的状态。
建议为每个 EKS 集群使用一个 AWS SSM 混合激活来限制混合节点 IAM 角色的 AWS SSM ssm:DeregisterManagedInstance
权限,使其只能注销与您的 AWS SSM 混合激活关联的实例。本页中的示例使用了一个具有 EKS 集群 ARN 的标签,该标签可用于将您的 AWS SSM 混合激活映射到该 EKS 集群。您也可以根据自己的权限边界和要求,使用自己偏好的标签和方法来确定 AWS SSM 权限的范围。以下命令中的 REGISTRATION_LIMIT
选项是一个整型,用于限制可以使用 AWS SSM 混合激活的计算机数量(例如 10
)
aws ssm create-activation \
--region AWS_REGION \
--default-instance-name eks-hybrid-nodes \
--description "Activation for EKS hybrid nodes" \
--iam-role AmazonEKSHybridNodesRole \
--tags Key=EKSClusterARN,Value=arn:aws:eks:AWS_REGION:AWS_ACCOUNT_ID:cluster/CLUSTER_NAME \
--registration-limit REGISTRATION_LIMIT
请参阅创建混合激活以将节点注册到 Systems Manager 部分的说明,以详细了解有关 AWS SSM 混合激活的可用配置设置。
设置 AWS IAM Roles Anywhere
按照《IAM Roles Anywhere 用户指南》中 Getting started with IAM Roles Anywhere 部分的说明,设置将用作混合节点 IAM 角色的临时 IAM 凭证的信任锚和配置文件。创建配置文件时,您可以仅创建配置文件而不添加任何角色。您可以首先创建此配置文件,然后返回这些步骤来创建混合节点 IAM 角色,最后再将创建的角色添加到您的配置文件。您也可以使用本页后面的 AWS CloudFormation 步骤来完成混合节点的 IAM Roles Anywhere 设置。
将混合节点 IAM 角色添加到配置文件时,请在 AWS IAM Roles Anywhere 控制台中编辑配置文件页面底部的自定义角色会话名称面板中,选择接受自定义角色会话名称。这对应于 CreateProfile
API 的 acceptRoleSessionName 字段。选择此选项后,您可以在引导阶段传递到 nodeadm
的配置中为混合节点提供自定义节点名称。在 nodeadm init
过程中必须传递一个自定义节点名称。创建配置文件后,您可以通过更新配置文件来接受自定义角色会话名称。
您可以通过 AWS IAM Roles Anywhere 配置文件的 durationSeconds 字段,来配置 AWS IAM Roles Anywhere 的凭证有效期。默认有效期为 1 小时,最长可为 12 小时。混合节点 IAM 角色的 MaxSessionDuration
设置必须大于 AWS IAM Roles Anywhere 配置文件中的 durationSeconds
设置。有关 MaxSessionDuration
的更多信息,请参阅 UpdateRole API 文档。
您通过证书颁发机构(CA)为每台计算机生成的证书和密钥必须放置在每个混合节点的 /etc/iam/pki
目录中,并且证书的文件名必须为 server.pem
,密钥的文件名必须为 server.key
。
创建混合节点 IAM 角色
要运行本节中的步骤,使用 AWS 控制台或 AWS CLI 的 IAM 主体必须具有以下权限。
-
iam:CreatePolicy
-
iam:CreateRole
-
iam:AttachRolePolicy
-
如果使用的是 AWS IAM Roles Anywhere
-
rolesanywhere:CreateTrustAnchor
-
rolesanywhere:CreateProfile
-
iam:PassRole
-
AWS CloudFormation
安装并配置 AWS CLI(如果尚未执行此操作)。请参阅安装或更新到最新版本的 AWS CLI。
AWS SSM 混合激活的步骤
CloudFormation 堆栈将创建具有上述权限的混合节点 IAM 角色。CloudFormation 模板不会创建 AWS SSM 混合激活。
-
下载适用于混合节点的 AWS SSM CloudFormation 模板:
curl -OL 'https://raw.githubusercontent.com/aws/eks-hybrid/refs/heads/main/example/hybrid-ssm-cfn.yaml'
-
使用以下选项创建
cfn-ssm-parameters.json
:-
将
ROLE_NAME
替换为混合节点 IAM 角色的名称。如果您未指定名称,则默认情况下 CloudFormation 模板将使用AmazonEKSHybridNodesRole
作为其创建的角色的名称。 -
请将
TAG_KEY
替换为您在创建 AWS SSM 混合激活时使用的 AWS SSM 资源标签键。在条件中使用标签键和标签值组合,从而让ssm:DeregisterManagedInstance
仅允许混合节点 IAM 角色注销与您的 AWS SSM 混合激活关联的 AWS SSM 托管式实例。在 CloudFormation 模板中,TAG_KEY
默认为EKSClusterARN
。 -
请将
TAG_VALUE
替换为您在创建 AWS SSM 混合激活时使用的 AWS SSM 资源标签值。在条件中使用标签键和标签值组合,从而让ssm:DeregisterManagedInstance
仅允许混合节点 IAM 角色注销与您的 AWS SSM 混合激活关联的 AWS SSM 托管式实例。如果您使用EKSClusterARN
的默认值TAG_KEY
,则请将 EKS 集群 ARN 传递为TAG_VALUE
。EKS 集群 ARN 的格式为arn:aws:eks:AWS_REGION:AWS_ACCOUNT_ID:cluster/CLUSTER_NAME
。{ "Parameters": { "RoleName": "ROLE_NAME", "SSMDeregisterConditionTagKey": "TAG_KEY", "SSMDeregisterConditionTagValue": "TAG_VALUE" } }
-
-
部署 CloudFormation 堆栈。请将
STACK_NAME
替换 CloudFormation 堆栈的名称。aws cloudformation deploy \ --stack-name STACK_NAME \ --template-file hybrid-ssm-cfn.yaml \ --parameter-overrides file://cfn-ssm-parameters.json \ --capabilities CAPABILITY_NAMED_IAM
AWS IAM Roles Anywhere 的步骤
CloudFormation 堆栈会使用您配置的证书颁发机构(CA)来创建 AWS IAM Roles Anywhere 信任锚,创建 AWS IAM Roles Anywhere 配置文件,并创建具有前文所述权限的混合节点 IAM 角色。
-
设置证书颁发机构(CA)
-
要使用 AWS 私有 CA 资源,请打开 AWS Private Certificate Authority 控制台
。按照 AWS Private CA 用户指南中的说明进行操作。 -
要使用外部 CA,请按照相关 CA 提供的说明进行操作。您需要在后续步骤中提供证书正文。
-
公有 CA 颁发的证书不能用作信任锚。
-
-
下载适用于混合节点的 AWS IAM Roles Anywhere CloudFormation 模板
curl -OL 'https://raw.githubusercontent.com/aws/eks-hybrid/refs/heads/main/example/hybrid-ira-cfn.yaml'
-
使用以下选项创建
cfn-iamra-parameters.json
:-
将
ROLE_NAME
替换为混合节点 IAM 角色的名称。如果您未指定名称,则默认情况下 CloudFormation 模板将使用AmazonEKSHybridNodesRole
作为其创建的角色的名称。 -
请将
CERT_ATTRIBUTE
替换为用于唯一标识主机的每台计算机的证书属性。使用的证书属性必须与您在将混合节点连接到集群时用于nodeadm
配置的 nodeName 一致。有关更多信息,请参阅 混合节点 nodeadm 参考。默认情况下,CloudFormation 模板将${aws:PrincipalTag/x509Subject/CN}
作为CERT_ATTRIBUTE
,这将对应于每台计算机的证书的 CN 字段。您也可以将$(aws:PrincipalTag/x509SAN/Name/CN}
传递为您的CERT_ATTRIBUTE
。 -
请将
CA_CERT_BODY
替换为 CA 的证书正文,不带换行符。CA_CERT_BODY
必须采用隐私增强邮件(PEM)格式。如果您具有 PEM 格式的 CA 证书,请在将 CA 证书正文放入cfn-iamra-parameters.json
文件之前移除换行符和 BEGIN CERTIFICATE 和 END CERTIFICATE 行。{ "Parameters": { "RoleName": "ROLE_NAME", "CertAttributeTrustPolicy": "CERT_ATTRIBUTE", "CABundleCert": "CA_CERT_BODY" } }
-
-
部署 CloudFormation 模板。请将
STACK_NAME
替换 CloudFormation 堆栈的名称。aws cloudformation deploy \ --stack-name STACK_NAME \ --template-file hybrid-ira-cfn.yaml \ --parameter-overrides file://cfn-iamra-parameters.json --capabilities CAPABILITY_NAMED_IAM
AWS CLI
安装并配置 AWS CLI(如果尚未执行此操作)。请参阅安装或更新到最新版本的 AWS CLI。
创建 EKS 描述集群策略
-
使用以下内容创建名为
eks-describe-cluster-policy.json
的文件:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "*" } ] }
-
使用以下命令创建此策略:
aws iam create-policy \ --policy-name EKSDescribeClusterPolicy \ --policy-document file://eks-describe-cluster-policy.json
AWS SSM 混合激活的步骤
-
使用以下内容创建名为
eks-hybrid-ssm-policy.json
的文件。此策略将授予对ssm:DescribeInstanceInformation
和ssm:DeregisterManagedInstance
这两个操作的权限。此策略将根据您在信任策略中指定的资源标签,将ssm:DeregisterManagedInstance
权限范围限定为与您的 AWS SSM 混合激活关联的 AWS SSM 托管式实例。-
请将
AWS_REGION
替换为您的 AWS SSM 混合激活的 AWS 区域。 -
将
AWS_ACCOUNT_ID
替换为您的AWS账户 ID。 -
请将
TAG_KEY
替换为您在创建 AWS SSM 混合激活时使用的 AWS SSM 资源标签键。在条件中使用标签键和标签值组合,从而让ssm:DeregisterManagedInstance
仅允许混合节点 IAM 角色注销与您的 AWS SSM 混合激活关联的 AWS SSM 托管式实例。在 CloudFormation 模板中,TAG_KEY
默认为EKSClusterARN
。 -
请将
TAG_VALUE
替换为您在创建 AWS SSM 混合激活时使用的 AWS SSM 资源标签值。在条件中使用标签键和标签值组合,从而让ssm:DeregisterManagedInstance
仅允许混合节点 IAM 角色注销与您的 AWS SSM 混合激活关联的 AWS SSM 托管式实例。如果您使用EKSClusterARN
的默认值TAG_KEY
,则请将 EKS 集群 ARN 传递为TAG_VALUE
。EKS 集群 ARN 的格式为arn:aws:eks:AWS_REGION:AWS_ACCOUNT_ID:cluster/CLUSTER_NAME
。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:DescribeInstanceInformation", "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:DeregisterManagedInstance", "Resource": "arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:managed-instance/*", "Condition": { "StringEquals": { "ssm:resourceTag/TAG_KEY": "TAG_VALUE" } } } ] }
-
-
使用以下命令创建此策略
aws iam create-policy \ --policy-name EKSHybridSSMPolicy \ --policy-document file://eks-hybrid-ssm-policy.json
-
创建一个名为
eks-hybrid-ssm-trust.json
的文件。请将AWS_REGION
替换为您的 AWS SSM 混合激活所在的 AWS 区域,将AWS_ACCOUNT_ID
替换为您的 AWS 账户 ID。{ "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"AWS_ACCOUNT_ID" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:*" } } } ] }
-
使用以下命令创建此角色。
aws iam create-role \ --role-name AmazonEKSHybridNodesRole \ --assume-role-policy-document file://eks-hybrid-ssm-trust.json
-
附加您在之前步骤中创建的
EKSDescribeClusterPolicy
和EKSHybridSSMPolicy
。将AWS_ACCOUNT_ID
替换为您的AWS账户 ID。aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::AWS_ACCOUNT_ID:policy/EKSDescribeClusterPolicy
aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::AWS_ACCOUNT_ID:policy/EKSHybridSSMPolicy
-
附加
AmazonEC2ContainerRegistryPullOnly
和AmazonSSMManagedInstanceCore
AWS 托管式策略。aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
AWS IAM Roles Anywhere 的步骤
要使用 AWS IAM Roles Anywhere,您必须在创建混合节点 IAM 角色之前设置 AWS IAM Roles Anywhere信任锚。有关说明,请参阅设置 AWS IAM Roles Anywhere:
-
创建一个名为
eks-hybrid-iamra-trust.json
的文件。请将TRUST_ANCHOR ARN
替换为您在“设置 AWS IAM Roles Anywhere”步骤中创建的信任锚的 ARN。只有当角色会话名称与混合节点上安装的 x509 证书中的 CN 一致时,此信任策略中的条件才会将 AWS IAM Roles Anywhere 代入混合节点 IAM 角色的权限范围限定为仅交换临时 IAM 凭证。您也可以使用其他证书属性来唯一标识节点。您在信任策略中使用的证书属性必须与您在nodeadm
配置中设置的nodeName
对应。有关更多信息,请参阅 混合节点 nodeadm 参考。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": [ "sts:TagSession", "sts:SetSourceIdentity" ], "Condition": { "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } }, { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}" }, "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } } ] }
-
使用以下命令创建此角色。
aws iam create-role \ --role-name AmazonEKSHybridNodesRole \ --assume-role-policy-document file://eks-hybrid-iamra-trust.json
-
附加您在之前步骤中创建的
EKSDescribeClusterPolicy
。将AWS_ACCOUNT_ID
替换为您的AWS账户 ID。aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::AWS_ACCOUNT_ID:policy/EKSDescribeClusterPolicy
-
附加
AmazonEC2ContainerRegistryPullOnly
AWS 托管式策略aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
AWS Management Console
创建 EKS 描述集群策略
-
在左侧导航窗格中,选择 Policies(策略)。
-
在策略页面上,选择创建策略。
-
在“指定权限”页面的“选择服务”面板中,选择 EKS。
-
筛选 DescribeCluster 的操作,然后选择 DescribeCluster 读取操作。
-
选择下一步。
-
-
在检查并创建页面上
-
输入策略的策略名称,如
EKSDescribeClusterPolicy
。 -
选择 创建策略。
-
AWS SSM 混合激活的步骤
-
在左侧导航窗格中,选择 Policies(策略)。
-
在策略页面上,选择创建策略。
-
在指定权限页面右上角的策略编辑器导航中,选择 JSON。粘贴以下代码段。请将
AWS_REGION
替换为您的 AWS SSM 混合激活所在的 AWS 区域,并将AWS_ACCOUNT_ID
替换为您的 AWS 账户 ID。请将TAG_KEY
和TAG_VALUE
替换为您在创建 AWS SSM 混合激活时使用的 AWS SSM 资源标签键。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:DescribeInstanceInformation", "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:DeregisterManagedInstance", "Resource": "arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:managed-instance/*", "Condition": { "StringEquals": { "ssm:resourceTag/TAG_KEY": "TAG_VALUE" } } } ] }
-
选择下一步。
-
-
在检查并创建页面上,
-
输入策略的策略名称,如
EKSHybridSSMPolicy
-
请选择创建策略。
-
-
在左侧导航窗格中,选择 Roles(角色)。
-
在 Roles(角色)页面上,选择 Create role(创建角色)。
-
在 Select trusted entity(选择受信任的实体)页面上,请执行以下操作:
-
在可信实体类型部分中,选择自定义信任策略。将以下策略复制粘贴到自定义信任策略编辑器中。请将
AWS_REGION
替换为您的 AWS SSM 混合激活所在的 AWS 区域,将AWS_ACCOUNT_ID
替换为您的 AWS 账户 ID。{ "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"AWS_ACCOUNT_ID" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:*" } } } ] }
-
选择下一步。
-
-
在添加权限页面上,附加自定义策略或执行以下操作:
-
在筛选策略对话框中,输入
EKSDescribeClusterPolicy
或您上面创建的策略的名称。选中搜索结果中您的策略左侧的复选框。 -
在筛选策略对话框中,输入
EKSHybridSSMPolicy
或您上面创建的策略的名称。选中搜索结果中您的策略左侧的复选框。 -
在 Filter policies (筛选器策略) 框中,输入
AmazonEC2ContainerRegistryPullOnly
。选中搜索结果中AmazonEC2ContainerRegistryPullOnly
左侧的复选框。 -
在 Filter policies (筛选器策略) 框中,输入
AmazonSSMManagedInstanceCore
。选中搜索结果中AmazonSSMManagedInstanceCore
左侧的复选框。 -
选择下一步。
-
-
在 Name, review, and create(命名、查看和创建)页面中,请执行以下操作:
-
对于 Role name(角色名称),请为角色输入唯一名称,例如
AmazonEKSHybridNodesRole
。 -
对于 Description(说明),请将当前文本替换为描述性文本,例如
Amazon EKS - Hybrid Nodes role
。 -
选择 Create role(创建角色)。
-
AWS IAM Roles Anywhere 的步骤
要使用 AWS IAM Roles Anywhere,您必须在创建混合节点 IAM 角色之前设置 AWS IAM Roles Anywhere信任锚。有关说明,请参阅设置 AWS IAM Roles Anywhere:
-
在左侧导航窗格中,选择 Roles(角色)。
-
在 Roles(角色)页面上,选择 Create role(创建角色)。
-
在 Select trusted entity(选择受信任的实体)页面上,请执行以下操作:
-
在可信实体类型部分中,选择自定义信任策略。将以下策略复制粘贴到自定义信任策略编辑器中。请将
TRUST_ANCHOR ARN
替换为您在“设置 AWS IAM Roles Anywhere”步骤中创建的信任锚的 ARN。只有当角色会话名称与混合节点上安装的 x509 证书中的 CN 一致时,此信任策略中的条件才会将 AWS IAM Roles Anywhere 代入混合节点 IAM 角色的权限范围限定为仅交换临时 IAM 凭证。您也可以使用其他证书属性来唯一标识节点。您在信任策略中使用的证书属性必须与您在 nodeadm 配置中设置的 nodeName 对应。有关更多信息,请参阅 混合节点 nodeadm 参考。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": [ "sts:TagSession", "sts:SetSourceIdentity" ], "Condition": { "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } }, { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}" }, "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } } ] }
-
选择下一步。
-
-
在添加权限页面上,附加自定义策略或执行以下操作:
-
在筛选策略对话框中,输入
EKSDescribeClusterPolicy
或您上面创建的策略的名称。选中搜索结果中您的策略左侧的复选框。 -
在 Filter policies (筛选器策略) 框中,输入
AmazonEC2ContainerRegistryPullOnly
。选中搜索结果中AmazonEC2ContainerRegistryPullOnly
左侧的复选框。 -
选择下一步。
-
-
在 Name, review, and create(命名、查看和创建)页面中,请执行以下操作:
-
对于 Role name(角色名称),请为角色输入唯一名称,例如
AmazonEKSHybridNodesRole
。 -
对于 Description(说明),请将当前文本替换为描述性文本,例如
Amazon EKS - Hybrid Nodes role
。 -
选择 Create role(创建角色)。
-