協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
想要為此使用者指南做出貢獻? 選擇 GitHub 上的編輯此頁面連結,該連結位於每個頁面的右窗格中。您的貢獻將幫助我們的使用者指南更適合每個人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EKS 節點 IAM 角色
Amazon EKS kubelet
節點協助程式會代表您呼叫 AWS APIs。節點透過 IAM 執行個體描述檔和關聯的政策,取得這些 API 呼叫的許可。啟動節點並在叢集中註冊之前,您必須先為那些節點建立啟動時要使用的 IAM 角色。這項要求會套用到運用 Amazon 提供的 Amazon EKS 最佳化 AMI,或是任何其他您打算使用的節點 AMI 來啟動的節點。此外,此要求皆適用於受管節點群組和自我管理節點。
注意
您不能使用用來建立任何叢集的相同角色。
建立節點之前,您必須先建立具有以下許可的 IAM 角色:
-
kubelet
描述 VPC 中 Amazon EC2 資源的許可,例如 AmazonEKSWorkerNodePolicy 政策提供的許可。此政策也為 Amazon EKS Pod 身分識別代理程式提供許可。 -
kubelet
使用來自 Amazon Elastic Container Registry (Amazon ECR) 的容器映像的許可,例如 AmazonEC2ContainerRegistryPullOnly 政策所提供。由於用於聯網的內建附加元件會執行使用 Amazon ECR 容器映像的 Pod,因此需要 Amazon Elastic Container Registry (Amazon ECR) 容器映像的使用許可。 -
(選用) Amazon EKS Pod 身分識別代理程式使用
eks-auth:AssumeRoleForPodIdentity
動作擷取 Pod 憑證的許可。如果您不使用 AmazonEKSWorkerNodePolicy,除了 EC2 許可之外,還必須提供此許可才能使用 EKS Pod Identity。` -
(選用) 如果您未使用 IRSA 或 EKS Pod Identity 來授予 VPC CNI Pod 許可,則必須在執行個體角色上提供 VPC CNI 的許可。您可以使用 ` AmazonEKS_CNI_Policy` 受管政策 (如果您使用 IPv4` 系列建立叢集) 或您建立的 IPv6 政策 (如果您使用
IPv6
系列建立叢集)。但是,我們建議您將政策連接至專門用於 Amazon VPC CNI 附加元件的單獨角色,而不是將政策連接至此角色。如需為 Amazon VPC CNI 附加元件建立單獨角色的更多資訊,請參閱 設定 Amazon VPC CNI 外掛程式以使用 IRSA。
注意
Amazon EC2 節點群組的 IAM 角色必須與 Fargate 設定檔不同。如需詳細資訊,請參閱Amazon EKS Pod 執行 IAM 角色。
檢查現有的節點角色
您可使用以下程序,檢查您的帳戶是否已有 Amazon EKS 節點角色。
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在左側導覽窗格中,選擇 Roles (角色)。
-
搜尋
eksNodeRole
、AmazonEKSNodeRole
或NodeInstanceRole
的角色清單。如果具有這些名稱之一的角色不存在,請參閱 建立 Amazon EKS 節點 IAM 角色 以建立角色。如果包含eksNodeRole
、AmazonEKSNodeRole
或NodeInstanceRole
的角色存在,請選取角色以檢視連接的政策。 -
選擇許可。
-
確定 AmazonEKSWorkerNodePolicy 和 AmazonEC2ContainerRegistryPullOnly 受管政策已連接至角色,或自訂政策已附加最少的許可。
注意
若 AmazonEKS_CNI_Policy 政策已連接至角色,我們建議將其移除,並轉而將其連接到映射至
aws-node
Kubernetes 服務帳戶的 IAM 角色。如需詳細資訊,請參閱設定 Amazon VPC CNI 外掛程式以使用 IRSA。 -
選擇 Trust Relationships (信任關係),然後選擇 Edit trust policy (編輯信任政策)。
-
確認信任關係包含下列政策。如果信任關係符合下列政策,請選擇 Cancel (取消)。如果信任關係不相符,請將政策複製到編輯信任政策視窗,然後選擇更新政策。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] }
建立 Amazon EKS 節點 IAM 角色
您可以使用 AWS Management Console 或 CLI 建立節點 IAM AWS 角色。
- AWS Management Console
-
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在左側導覽窗格中,選擇 Roles (角色)。
-
在 Roles (角色) 頁面上,選擇 Create role (建立角色)。
-
在 Select trusted entity (選取信任的實體) 頁面上,執行以下作業:
-
在信任的實體類型區段中,選擇 AWS 服務。
-
在 Use case (使用案例) 下,選擇 EC2。
-
選擇 Next (下一步)。
-
-
在新增許可頁面上,連接自訂政策或執行下列動作:
-
在 Filter policies (篩選政策) 方塊中,輸入
AmazonEKSWorkerNodePolicy
。 -
勾選搜尋結果中 AmazonEKSWorkerNodePolicy 左側的核取方塊。
-
選擇 Clear filters (清除篩選條件)。
-
在 Filter policies (篩選政策) 方塊中,輸入
AmazonEC2ContainerRegistryPullOnly
。 -
在搜尋結果中選取 AmazonEC2ContainerRegistryPullOnly 左側的核取方塊。
AmazonEKS_CNI_Policy 受管政策或您建立的 IPv6 政策也必須連接至此角色,或連接至對應至
aws-node
Kubernetes服務帳戶的不同角色。建議您將政策指派給與 Kubernetes 服務帳戶相關聯的角色,而不要將政策指派給此角色。如需詳細資訊,請參閱設定 Amazon VPC CNI 外掛程式以使用 IRSA。 -
選擇 Next (下一步)。
-
-
在 Name, review, and create (命名、檢閱和建立) 頁面上,執行以下作業:
-
針對 Role name (角色名稱),為您的角色輸入唯一名稱 (例如
AmazonEKSNodeRole
)。 -
針對 Description (描述),請以描述性文字 (例如
Amazon EKS - Node role
) 取代目前的文字。 -
藉由連接標籤做為鍵值對,在新增標籤 (選用) 下將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊,請參閱《IAM 使用者指南》中的標記 IAM 資源。
-
選擇建立角色。
-
-
- AWS CLI
-
-
執行下列命令以建立
node-role-trust-relationship.json
檔案。cat >node-role-trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] } EOF
-
建立 IAM 角色。
aws iam create-role \ --role-name AmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-relationship.json"
-
將兩個所需的受管 IAM 政策連接到角色。
aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name AmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryPullOnly \ --role-name AmazonEKSNodeRole
-
根據您建立叢集所使用的 IP 系列,將以下 IAM 政策之一連接至 IAM 角色。政策必須連接到此角色,或與用於 Kubernetes
aws-node
的服務帳戶相關聯的角色Amazon VPC CNI plugin for Kubernetes。建議您將政策指派給與 Kubernetes 服務帳戶相關聯的角色。如要將政策指派給與 Kubernetes 服務帳戶相關聯的角色,請參閱 設定 Amazon VPC CNI 外掛程式以使用 IRSA。-
IPv4
aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSNodeRole
-
IPv6
-
複製下列文字並將它儲存至名為
vpc-cni-ipv6-policy.json
的檔案。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws: ec2:*:*:network-interface/*" ] } ] }
-
建立 IAM 政策。
aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
-
將 IAM 政策連接至 IAM 角色。使用您的帳戶 ID 取代
111122223333
。aws iam attach-role-policy \ --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSNodeRole
-
-
-