了解如何EKS Pod Identity授予網繭存取 AWS 服務 - Amazon EKS

協助改善此頁面

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

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

了解如何EKS Pod Identity授予網繭存取 AWS 服務

容器中Pod的應用程式可以使用 AWS SDK或 AWS CLI 來發出 AWS 服務 使用 AWS Identity and Access Management (IAM) 權限的API要求。應用程式必須使用 AWS 認證簽署其 AWS API要求。

EKS網繭身分提供管理應用程式登入資料的功能,類似於 Amazon 執行個體設定檔為 Amazon EC2 EC2 執行個體提供登入資料的方式。您可以將角色與服務帳戶建立關聯,並將其設定為使用Kubernetes服務帳戶,而不是建立 AWS 登入資料並將其分發Pods到容器或使用 Amazon EC2 執行個體的IAM角色。

每個EKS網繭身分關聯會將角色對應至指定叢集中命名空間中的服務帳戶。如果您在多個叢集中具有相同的應用程式,則可以在每個叢集中建立相同的關聯,而不必修改角色的信任政策。

如果網繭使用具有關聯的服務帳戶,Amazon 會在網繭的容器中EKS設定環境變數。環境變數會 AWS SDKs將 (包括) 設定為使用EKS網繭身分認證。 AWS CLI

EKS網繭身分識別的好處

EKS網繭身分提供下列優點:

EKSPod 身分識別是比較簡單的方法服務帳戶的 IAM 角色,因為此方法不使用OIDC身分識別提供者。EKS網繭識別具有下列增強功能:

  • 獨立操作 – 在許多組織中,建立 OIDC 身分識別提供者和管理 Kubernetes 叢集是不同團隊的責任。EKS網繭身分具有完整的職責分離,其中 EKS Pod 身分識別關聯的所有組態都在 Amazon 中完成,EKS而且所有IAM許可組態都在中完成IAM。

  • 可重複使用性 — EKS 網繭識別會針對服務帳戶的IAM角色使用的每個叢集使用單一主IAM體,而不是個別的主體。您的IAM系統管理員會將下列主體新增至任何角色的信任原則,以使其可供EKS網繭識別使用。

    "Principal": { "Service": "pods.eks.amazonaws.com" }
  • 延展性 — 每組臨時登入資料都由EKS網繭身分中的EKS Auth服務承擔,而不是您在每個 AWS SDK網繭中執行的每一組暫時認證。然後,在每個節點上執行的 Amazon EKS Pod 身分代理程式會將登入資料發出給SDKs. 因此,每個節點的負載會減少為一次,而且不會在每個 Pod 中重複。如需該程序的詳細資訊,請參閱 了解EKS Pod Identity工作原理

如需比較兩種替代方案的詳細資訊,請參閱 使用服務帳戶授予 Kubernetes 工作負載存取 AWS 權 Kubernetes

設定網EKS繭身分的概觀

完成下列程序以開啟EKS網繭識別:

  1. 設定 Amazon EKS 網繭身分識別代理程式 – 對每個叢集只完成此程序一次。

  2. 將IAM角色指派給Kubernetes服務帳戶 – 對您希望應用程式擁有的每種非重複可組合完成此程序。

  3. 設定pods使用 AWS 服務帳戶存取服務— 針對每個需要存取Pod的項目完成此程序 AWS 服務。

  4. 搭配使用網繭身分識別 AWS SDK— 確認工作負載使用支援 AWS SDK的版本,並確認工作負載使用預設認證鏈結。

EKS網繭身分考量

  • 您可以將一個IAM角色與每個叢集中的每個Kubernetes服務帳戶相關聯。您可以透過編輯EKS網繭識別關聯來變更對應至服務帳戶的角色。

  • 您只能關聯與叢集位於相 AWS 帳戶 同的角色。您可以將存取權從其他帳戶委派給您設定讓EKS網繭身分使用的此帳戶中的角色。如需委派存取權的教學課程AssumeRole,請參閱使用指南》中的〈使用IAM角色在 AWS 帳戶間委派存取權限〉。IAM

  • 需要EKS網繭身分識別代理程式。它會在節點上以 Kubernetes DaemonSet 的形式執行,並且僅提供憑證給其執行所在節點上的 Pod。如需EKS網繭識別代理程式相容性的相關資訊,請參閱下節EKS網繭識別碼限制

  • EKS網繭身分識別代理程式會使用節點hostNetwork的,並使用節點上連結本機位址2703上的連接埠80和連接埠。此地址對於 IPv4 為 169.254.170.23,對於 IPv6 叢集則為 [fd00:ec2::23]

    如果您停用位IPv6址或以其他方式阻止本機主機 IPv6 IP 位址,則代理程式無法啟動。若要在無法使用的節點上啟動代理程式IPv6,請遵循中IPv6在EKS網繭識別代理程式中停用的步驟停用IPv6組態。

EKS網繭識別碼叢集版本

若要使用「EKS網繭識別」,叢集的平台版本必須與下表所列版本相同或更新,或是Kubernetes版本低於表格中列出的版本。

Kubernetes 版本 平台版本
1.30 eks.2
1.29 eks.1
1.28 eks.4
1.27 eks.8
1.26 eks.9
1.25 eks.10
1.24 eks.13

與 EKS Pod 身分相容的附加版本

重要

若要將EKS網繭識別與EKS附加元件搭配使用,您必須手動建立EKS網繭識別關聯。請勿在中的附加元件設定中選擇IAM角色 AWS Management Console,該角色只能與IRSA.

需要IAM登入資料的 Amazon EKS 附加元件和自我管理附加元件可以使用 EKS Pod 身分IRSA或執行個體角色。使用支援 EKS Pod 身分識別之IAM認證的附加元件清單如下:

  • Amazon VPC CNI plugin for Kubernetes1.15.5-eksbuild.1或更新版本

  • AWS Load Balancer Controller2.7.0或更高版本。請注意,AWS Load Balancer Controller無法以EKS附加元件的形式提供,但它可以作為自我管理的附加元件提供。

EKS網繭識別碼限制

EKS網繭身分可在下列位置使用:

  • 上一個主題中列出的 Amazon EKS 叢集版本EKS網繭識別碼叢集版本

  • 叢集中為 Linux Amazon EC2 執行個體的工作者節點。

EKS下列項目無法使用網繭身分識別:

  • AWS Outposts.

  • Amazon EKS 隨地。

  • Kubernetes您在 Amazon 上創建和運行的集群EC2。EKS網繭身分識別元件僅可在 Amazon 上使用EKS。

您無法搭配下列項目使用 EKS Pod 身分:

  • 可在 Linux Amazon 執行個體以外的任何地方EC2執行 AWS Fargate (Fargate) 不支援在上執行的 Linux 和視窗網繭。不支援在 Windows Amazon EC2 執行個體上執行的網繭。

  • 需要IAM登入資料的 Amazon EKS 附加元件。EKS附加元件只能改為使用服務帳戶的IAM角色。使用IAM認證的EKS附加元件清單包括:

    • CSI存儲驅動程序:EBSCSIEFSCSI,Amazon FSx 的 Lustre 驅動程序,Amazon CSI 驅動程序,Amazon FSx 打開 NetApp ONTAPCSI驅動程序,Amazon FSx 文件緩CSI存ZFSCSI驅動程序, AWS 秘密和配置提供商(ASCP)的秘Kubernetes密存儲驅動程序 CSI

    注意

    如果這些控制器、驅動程式和外掛程式安裝為自我管理的附加元件而非EKS附加元件,只要它們更新為使用最 AWS SDKs新版本,它們就會支援 EKS Pod 識別。