如何在 Fargate 上的 AWS ECS 环境中存储 GOOGLE_APPLICATION_CREDENTIALS?

How to store GOOGLE_APPLICATION_CREDENTIALS in an AWS ECS environment on Fargate?

我们有一个 API 应用程序使用 Firebase Admin 向设备发送消息。 早些时候,我们曾经使用 GOOGLE_APPLICATION_CREDENTIALS="path_to_file.json" 等环境变量来指定服务帐户密钥。 但是现在,由于我们正在转移到 Fargate 上的 AWS Elastic Container Service,我无法弄清楚如何将这个文件放入 AWS ECS 的容器中。

非常感谢任何建议。

谢谢

甚至比使用拥有自己 downsides 的环境变量更好,您可以利用 AWS Parameter Store,这是一种在 AWS 环境中管理机密的安全方式(其中机密在传输和静止时都被加密) ).

您需要为 Amazon ECS 创建一个 IAM 角色,您的代码才能访问 Parameter Store。

您可能想查看这篇文章:https://aws.amazon.com/blogs/compute/managing-secrets-for-amazon-ecs-applications-using-parameter-store-and-iam-roles-for-tasks/

我建议改为 purpose-built 用于存储机密的 AWS Secrets Manager。看看他的博客 post:

https://aws.amazon.com/blogs/compute/securing-credentials-using-aws-secrets-manager-with-aws-fargate/

通过将服务密钥存储为 JSON 字符串化环境变量并使用 admin.credential.cert() 而不是 defaultAppCredentials 解决了这个问题。 参考:https://firebase.google.com/docs/reference/admin/node/admin.credential#cert