View a markdown version of this page

搭配 AWS SDK 使用 IRSA - Amazon EKS

協助改進此頁面

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

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

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

搭配 AWS SDK 使用 IRSA

使用憑證

若要針對服務帳戶 (IRSA) 使用來自 IAM 角色的登入資料,您的程式碼可以使用任何 AWS SDK 來透過 SDK 為 AWS 服務建立用戶端,並根據預設,軟體開發套件會在位置鏈中搜尋要使用的 AWS Identity and Access Management 登入資料。如果您在建立用戶端或初始化 SDK 時未指定登入資料提供者,則會使用服務帳戶登入資料的 IAM 角色。

這樣是有效的,因為服務帳戶的 IAM 角色已新增為預設憑證鏈中的一個步驟。如果您的工作負載目前使用登入資料鏈中較早的登入資料,即使您為相同工作負載的服務帳戶設定 IAM 角色,這些登入資料仍會繼續使用。

軟體開發套件會使用 AssumeRoleWithWebIdentity動作,自動交換服務帳戶 OIDC 字符,以取得來自 AWS Security Token Service 的臨時憑證。Amazon EKS 和此 SDK 動作會繼續輪換臨時憑證,方法是在臨時憑證到期前進行更新。

將 IAM 角色用於服務帳戶時,Pod 中的容器必須使用支援透過 OpenID Connect Web 身分字符檔案擔任 IAM 角色的 AWS SDK 版本。請確定您使用 SDK 的下列版本 或更新版本 AWS :

許多熱門的 Kubernetes 附加元件,例如 Cluster Autoscaler、Route Internet traffic with AWS Load Balancer Controller 和 Amazon VPC CNI plugin for Kubernetes 支援服務帳戶的 IAM 角色。

為了確保您使用支援的 SDK,在建立您的容器時,請遵循在 AWS上建立的工具中您偏好之 SDK 的安裝指示。

考量事項

Java

使用 Java 時,您必須在類別路徑上包含 sts 模組。如需詳細資訊,請參閱 Java SDK 文件中的 WebIdentityTokenFileCredentialsProvider。