協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
搭配 AWS SDK 使用 IRSA
使用憑證
若要使用來自服務帳戶的 IAM 角色 (IRSA) 的憑證,您的程式碼可以使用任何 AWS SDK 來為具有 SDK 的 AWS 服務建立用戶端,並且根據預設,SDK 會在位置鏈中搜尋要使用的 AWS Identity and Access Management 憑證。如果您在建立用戶端或以其他方式初始化 SDK 時未指定憑證提供者,則系統會使用服務帳戶憑證的 IAM 角色。
這樣是有效的,因為服務帳戶的 IAM 角色已新增為預設憑證鏈中的一個步驟。如果您的工作負載目前使用憑證鏈中較早的憑證,那麼即使您為相同工作負載設定服務帳戶的 IAM 角色,系統仍會繼續使用這些憑證。
SDK 會透過使用 AssumeRoleWithWebIdentity 動作,自動將服務帳戶 OIDC 權杖更換為來自 AWS Security Token Service 的臨時憑證。Amazon EKS 和此 SDK 動作會繼續輪換臨時憑證,方法是在臨時憑證到期前進行更新。
使用服務帳戶的 IAM 角色時,Pod 中的容器使用的 AWS SDK 版本,必須支援透過 OpenID Connect Web 身分權杖檔案擔任 IAM 角色。請確保您的 AWS SDK 使用以下版本或更新版本:
許多熱門的 Kubernetes 附加元件,例如 Cluster Autoscaler
為了確保您使用支援的 SDK,在建立您的容器時,請遵循在 AWS 上建立的工具
考量事項
Java
使用 Java 時,您必須在類別路徑上包含 sts 模組。如需詳細資訊,請參閱 Java SDK 文件中的 WebIdentityTokenFileCredentialsProvider