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

问题描述

我们有一个使用Firebase Admin将消息发送到设备的API应用。 之前,我们曾经使用环境变量(例如GOOGLE_APPLICATION_CREDENTIALS =“ path_to_file.json”)来指定服务帐户密钥。 但是现在,由于我们要转移到Fargate上的AWS Elastic Container Service,我无法弄清楚如何将该文件放入AWS ECS的容器中。

任何建议都值得赞赏。

谢谢

解决方法

我建议使用专门为存储机密而构建的AWS Secrets Manager。看看他的博客文章:

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

,

比使用具有自己的downsides的环境变量更好,您可以利用AWS Parameter Store,这是一种安全的方法来管理AWS环境中的机密(机密在传输和静态时都被加密)。

您需要为Amazon ECS创建一个IAM角色,以便您的代码可以访问参数存储。

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

,

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...