首页 > 解决方案 > 将 AWS SecretManager 与 Fargate 一起使用:无法找到凭证

问题描述

场景

我们在 EKS 上有一个使用 Fargate 节点的 K8s 集群。我将我们的凭证/机密存储在 AWS SecretManager 中,并希望我们部署在 AWS Fargate 上的工作人员直接访问这些机密。

问题

容器内的 python 代码会引发以下错误,因为它找不到任何 aws 凭据):
botocore.exceptions.NoCredentialsError: Unable to locate credentials

这与此处提出的问题非常相似,我已经按照该问题的答案中的建议添加了一个服务帐户。

具体来说,我按照这里的指南进行操作。

但是,最后一步不会为我返回预期的输出。没有将 AWS 环境变量注入任何 pod。

我还尝试在这里关注研讨会:https://www.eksworkshop.com/beginner/110_irsa/deploy/ 但仍然没有得到预期的输出。

如果有人能在这里指出正确的方向,我将不胜感激。提前致谢!

标签: amazon-web-serviceskubernetesaws-fargateaws-secrets-manager

解决方案


我相信您缺少此处所述的集群创建步骤。具体来说:

  • 在 AWS 中设置 OIDC ID 提供商 (IdP)。

如果您想自动将东西注入您的 Pod,请考虑创建一个MutatingAdmissionWebhook,它基本上响应JSONPatchK8s 适用于您指定的任何对象。

这是有关如何创建一个的详细演练。


推荐阅读