如何配置凭证以从 EKS 内部使用 AWS 服务。我无法将 AWS SDK 用于此特定目的。我在 yaml 文件中提到了一个具有所需权限的角色,但它似乎并没有选择该角色。
谢谢你 如有任何帮助,我们将不胜感激。
通常您希望应用某种级别的逻辑来允许 Pod 本身从 STS 获取 IAM 凭证。 AWS 目前(现在是 re:Invent,所以你永远不知道)不提供本地方法来执行此操作。我们实施的两个社区解决方案是:
kube2IAM:https://github.com/jtblin/kube2iam
kIAM:https://github.com/uswitch/kiam
根据我的经验,两者都在生产/大型环境中运行良好。我更喜欢 kIAM 的安全模型,但两者都能完成工作。
基本上工作方式相同...拦截(由于没有更好的词)容器和 STS 中的 SDK 库的通信,将 pod 的身份与内部角色字典进行匹配,然后获取 STS 凭据该角色并将这些信用交还给容器。 SDK 本质上并不知道它在容器中,它只是在任何地方做它所做的事情......遍历其访问树,直到它看到需要从 STS 获取凭据并接收这些凭据。
根据AWS官方文档,AWS新功能不再需要
kiam
或kube2iam
等第三方解决方案。
您可以将以下 AWS IAM 角色用于服务账户。只需按照下面链接中提到的所有分步指南即可为服务账户启用 IAM 角色:
https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html