Amazon EKS 叢集 IAM 角色 - Amazon EKS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EKS 叢集 IAM 角色

每個叢集都需要 Amazon EKS 叢集 IAM 角色。Kubernetes 由 Amazon EKS 管理的 叢集使用此角色來管理節點,而舊版雲端提供者使用此角色建立具有 Elastic Load Balancing 的 服務負載平衡器。

在建立 Amazon EKS 叢集之前,您必須使用下列任一 IAM 政策來建立 IAM 角色:

  • AmazonEKSCluster 政策

  • 自訂 IAM 政策。以下的最低許可允許 Kubernetes 叢集來管理節點,但不允許舊版雲端提供者使用 Elastic Load Balancing 建立負載平衡器。您的自訂 IAM 政策必須至少具有下列許可:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws: ec2:*:*:instance/*", "Condition": { "ForAnyValue:StringLike": { "aws:TagKeys": "kubernetes.io/cluster/*" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTopology", "kms:DescribeKey" ], "Resource": "*" } ] }
注意

在 2023 年 10 月 3 日之前,每個叢集的 IAM 角色都需要 AmazonEKSCluster 政策

在 2020 年 4 月 16 日之前,需要 AmazonEKSService 政策和 AmazonEKSCluster 政策,該角色的建議名稱為 eksServiceRole。對於AWSServiceRoleForAmazonEKS服務連結角色,在 2020 年 4 月 16 日當天或之後建立的叢集不再需要 AmazonEKSService 政策

檢查現有的叢集角色

您可以使用下列程序來檢查您的帳戶是否已具有 Amazon EKS 叢集角色。

  1. 在 IAM 開啟 https://console.aws.amazon.com/iam/ 主控台。

  2. 在左側導覽窗格中,選擇 Roles (角色)。

  3. 搜尋 eksClusterRole 的角色清單。如果eksClusterRole包含 的角色不存在,請參閱 建立 Amazon EKS 叢集角色 以建立角色。如果包含 eksClusterRole 的角色存在,請選取角色以檢視連接的政策。

  4. 選擇許可

  5. 確定 AmazonEKSCluster 政策受管政策已連接至角色。如果已連接政策,則會正確設定 Amazon EKS 叢集角色。

  6. 選擇 Trust Relationships (信任關係),然後選擇 Edit trust policy (編輯信任政策)。

  7. 確認信任關係包含下列政策。如果信任關係符合下列政策,請選擇 Cancel (取消)。如果信任關係不相符,請將政策複製到編輯信任政策視窗中,然後選擇更新政策

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

建立 Amazon EKS 叢集角色

您可以使用 AWS Management Console 或 AWS CLI 來建立叢集角色。

AWS Management Console
  1. 在 IAM 開啟 https://console.aws.amazon.com/iam/ 主控台。

  2. 選擇 Roles (角色),然後選擇 Create role (建立角色)

  3. 信任的實體類型下,選取 AWS 服務

  4. AWS 其他服務的使用案例下拉式清單中,選擇 EKS

  5. 為您的使用案例選擇 EKS - 叢集,然後選擇下一步

  6. Add permissions (新增許可) 標籤上,選擇 Next (下一步)。

  7. 針對 Role name (角色名稱),為您的角色輸入唯一名稱 (例如 eksClusterRole)。

  8. 針對 Description (描述),輸入描述性文字,如 Amazon EKS - Cluster role

  9. 選擇建立角色

AWS CLI
  1. 將下列內容複製到名為 的檔案 cluster-trust-policy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 建立角色。您可以取代 eksClusterRole 任何您選擇的名稱。

    aws iam create-role \ --role-name eksClusterRole \ --assume-role-policy-document file://"cluster-trust-policy.json"
  3. 將必要的 IAM 政策連接至角色。

    aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy \ --role-name eksClusterRole