Amazon EKS 叢集 IAM 角色 - Amazon EKS

協助改進此頁面

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

Amazon EKS 叢集 IAM 角色

每個叢集都需要一個 Amazon EKS 叢集 IAM 角色。受 Amazon EKS 管理的 Kubernetes 叢集使用此角色來管理節點,而舊式雲端供應商則使用此角色為服務建立具有 Elastic Load Balancing 的負載平衡器。

建立 Amazon EKS 叢集之前,您必須先建立具有以下任一 IAM 政策的 IAM 角色:

  • AmazonEKSClusterPolicy

  • 自訂 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 角色都必須使用 AmazonEKSClusterPolicy

在 2020 年 4 月 16 日之前,也必須使用 AmazonEKSServicePolicyAmazonEKSClusterPolicy,且角色的建議名稱為 eksServiceRole。使用 AWSServiceRoleForAmazonEKS 服務連結角色時,AmazonEKSServicePolicy 政策不再需要針對 2020 年 4 月 16 日或之後建立的叢集。

檢查現有的叢集角色

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

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

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

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

  4. 選擇許可

  5. 確定 AmazonEKSClusterPolicy 受管政策已附加到該角色。如果已連接政策,則您的 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 管理主控台 或 AWS CLI 建立叢集角色。

AWS 管理主控台
  1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

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

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

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

  5. 針對您的使用案例選擇 EKS - Cluster (EKS - 叢集),然後選擇 Next (下一步)。

  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