将 IRSA 与 AWS SDK 结合使用 - Amazon EKS

将 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使用 AWS 负载均衡器控制器路由互联网流量使用 AWS Load Balancer Controller 路由互联网流量和 配置 Amazon VPC CNI 插件以使用 IRSA适用于 Kubernetes 的 Amazon VPC CNI 插件)支持服务账户的 IAM 角色。

为了确保您使用的是受支持的 SDK,请在构建容器时按照用于在 AWS 上进行构建的工具中针对您的首选 SDK 的安装说明操作。