【问题标题】:Where to store db credentials in a productive app?在生产应用程序中将数据库凭据存储在哪里?
【发布时间】:2022-01-24 10:31:31
【问题描述】:

有一个nestJS后端应用程序,它连接到一个mongoDB:

const user = process.env.USER
const pwd = process.env.PWD
const uri = 'mongodb://' + user + ':' + pwd + '@mongodb:27017

如您所见,访问数据库的凭据存储在.env 文件中。在本地,它完美无缺。但是要在生产应用(它是 kubernetes 集群中的一个 pod)中访问此文件,该文件必须转到 git 存储库。

这样好吗?我认为不应将凭据存储在存储库中。我怎样才能避免这种情况?

【问题讨论】:

    标签: node.js environment-variables password-protection


    【解决方案1】:

    凭据不需要存储在 .env 文件中。 process.env会给你进程的环境。

    查看节点文档here

    您可以在 Kubernetes 中为您的容器设置环境,请参阅here

    【讨论】:

    • 是的,但是我的 pod 是在动态 CI 中创建的。 CI 必须从某个地方获取数据才能在 Kubernetes 环境中实现它。所以数据必须来自某个地方,因为我不会手动创建每个应用程序。
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    相关资源
    最近更新 更多