将 IRSA 与 AWS SDK 结合使用
使用凭证
要使用服务账户的 IAM 角色凭证,您的代码可以使用任何 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 角色 IAM 角色时,Pods 中的容器必须使用支持通过 OpenID Connect Web 身份令牌文件分派 IAM 角色的 AWS SDK 版本。请确保为您的 AWS SDK 使用以下版本或更高版本:
许多流行的 Kubernetes 附加组件(如 Cluster Autoscaler
为了确保您使用的是受支持的 SDK,请在构建容器时按照用于在 AWS 上进行构建的工具