Amazon EKS Pod 執行 IAM 角色 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

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

Amazon EKS Pod 執行 IAM 角色

需要 Amazon EKS Pod 執行角色才能Pods在 AWS Fargate 基礎設施上執行。

當您的叢集Pods在 AWS Fargate 基礎結構上建立時,在 Fargate 基礎架構上執行的元件必須代表您呼叫 AWS API。這樣他們就可以執行動作,例如從 Amazon ECR 提取容器映像或將日誌路由到其他 AWS 服務。Amazon EKS Pod 執行角色提供進行此類工作的 IAM 許可。

建立 Fargate 設定檔時,您必須使用設定檔為在 Fargate 基礎設施上執行的 Amazon EKS 元件指定 Pod 執行角色。此角色會新增至叢集的 Kubernetes 角色型存取控制 (RBAC),以進行授權。這可讓在 Fargate 基礎設施上執行的 kubelet 向您的 Amazon EKS 叢集註冊,以便它可以在該叢集中作為節點出現。

注意

Fargate 設定檔的 IAM 角色必須與 Amazon EC2 節點群組不同。

重要

在 Fargate Pod 中執行的容器,無法採用與 Pod 執行角色相關聯的 IAM 許可。若要授予 Fargate 中的容器存取其他 AWS 服務的Pod權限,您必須使用服務帳戶的 IAM 角色

建立 Fargate 描述檔之前,您必須建立具有 AmazonEKSFargatePodExecutionRolePolicy 的 IAM 角色。

檢查是否有正確設定的現有 Pod 執行角色

您可使用以下程序,檢查您的帳戶是否已有正確設定的 Amazon EKS Pod 執行角色。為了避免出現混淆代理人安全問題,根據 SourceArn 的角色限制存取是非常重要的一環。您可以視需要修改執行角色,以納入對其他叢集上的 Fargate 描述檔的支援。

若要在 IAM 主控台中檢查 Amazon EKS Pod 執行角色
  1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

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

  3. 在「角色」頁面上,搜尋 AmazonE FargatePodExecutionRole ks 的角色清單。如果該角色不存在,請參閱「建立 Amazon EKS Pod 執行角色」以建立角色。如果該角色存在,請選取角色。

  4. AmazonEKS FargatePodExecutionRole 頁上,執行以下操作:

    1. 選擇許可

    2. 確保將 AmazonEks FargatePodExecutionRolePolicy Amazon 託管政策附加到該角色上。

    3. 選擇 Trust relationships (信任關係)

    4. 選擇 Edit trust policy (編輯信任政策)。

  5. Edit trust policy (編輯信任政策)頁面上,確認信任關係包含以下政策,並且在叢集上具有 Fargate 描述檔的行。若是如此,請選擇 Cancel (取消)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    如果政策相符,但沒有指定叢集上的 Fargate 描述檔的行,您可以在 ArnLike 物件頂端新增以下行。使用叢集所在的 AWS 區域 取代 region-code,用帳戶 ID 取代 111122223333,再以您的叢集名稱取代 my-cluster

    "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",

    如果政策不相符,請將完整前一個政策複製到表單中,然後選擇 Update policy (更新政策)。使用叢集所在的 AWS 區域 取代 region-code。如果您想在帳戶中使用相同的 AWS 區域 角色,請將區域代碼 us-iso-east us-isob-east 取代為. * 使用您的帳戶 ID 取代 111122223333,再以您的叢集名稱取代 my-cluster。若要在您的帳戶中的所有叢集使用相同角色,請使用 * 取代 my-cluster

建立 Amazon EKS Pod 執行角色

如果您還沒有叢集的 Amazon EKS Pod 執行角色,可以使用 AWS Management Console 或 AWS CLI 來建立它。

AWS Management Console
使用 AWS Management Console建立 AWS FargatePod 執行角色
  1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

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

  3. Roles (角色) 頁面上,選擇 Create role (建立角色)。

  4. Select trusted entity (選取信任的實體) 頁面上,執行以下作業:

    1. Trusted entity type (信任的實體類型) 區段中,選擇 AWS service ( 服務)。

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

    3. 選擇 EKS – Fargate Pod

    4. 選擇下一步

  5. Add permissions (新增許可) 頁面上,選擇 Next (下一步)。

  6. Name, review, and create (命名、檢閱和建立) 頁面上,執行以下作業:

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

    2. 藉由連接標籤做為鍵值對,在新增標籤 (選用) 下將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊,請參閱《IAM 使用者指南》中的標記 IAM 資源

    3. 選擇建立角色

  7. 在「角色」頁面上,搜尋 AmazonE FargatePodExecutionRole ks 的角色清單。選擇角色。

  8. AmazonEKS FargatePodExecutionRole 頁上,執行以下操作:

    1. 選擇 Trust relationships (信任關係)

    2. 選擇 Edit trust policy (編輯信任政策)。

  9. Edit trust policy (編輯信任政策) 頁面上,執行下列動作:

    1. 請複製以下內容,並在 Edit trust policy (編輯信任政策) 表單貼上。將區域代碼 us-iso-east us-isob-east 替換為叢集所在 AWS 區域 的位置。如果您想在帳戶中使用相同的 AWS 區域 角色,請將區域代碼 us-iso-east us-isob-east 取代為. * 使用您的帳戶 ID 取代 111122223333,再以您的叢集名稱取代 my-cluster。若要在您的帳戶中的所有叢集使用相同角色,請使用 * 取代 my-cluster

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 選擇更新政策

AWS CLI
若要建立 AWS FargatePod執行角色 AWS CLI
  1. 複製以下內容並在名為 pod-execution-role-trust-policy.json 的檔案貼上。將區域代碼 us-iso-east us-isob-east 替換為叢集所在 AWS 區域 的位置。如果您想在帳戶中使用相同的 AWS 區域 角色,請將區域代碼 us-iso-east us-isob-east 取代為. * 使用您的帳戶 ID 取代 111122223333,再以您的叢集名稱取代 my-cluster。若要在您的帳戶中的所有叢集使用相同角色,請使用 * 取代 my-cluster

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 建立 Pod 執行 IAM 角色。

    aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
  3. 將必要的 Amazon EKS 受管 IAM 政策連接到角色。

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole