【问题标题】:secure nodejs production environment that use dotenv使用 dotenv 的安全 nodejs 生产环境
【发布时间】:2017-11-04 15:53:51
【问题描述】:

通过使用dotenv,我可以在将开发.env 文件推送到git 存储库之前忽略它,它符合The Twelve-Factor App config factor。它可以防止配置暴露给其他人,尤其是开源项目。

但是我在将其部署到生产环境时遇到了困难,无论是使用云部署还是使用 docker。

如何包含此文件?我应该将文件保存到Vault 还是什么?

请帮助我了解如何保护我的部署环境。

【问题讨论】:

    标签: node.js hashicorp-vault dotenv


    【解决方案1】:

    你没有。服务器环境(docker 或其他)需要配置自己的环境变量,而不是开发环境变量。在您配置为应用程序的默认值时,任何相同的值,即使未设置变量,它们也具有该值。

    【讨论】:

    • 但这被认为是安全的吗?只是将您的身份验证/授权凭据保存为服务器上的环境变量?
    • @aerovistae 这取决于很多其他因素,例如您如何构建机器等等。一般来说,是的,如果您将机器锁定得足够好,使用非特权帐户充当服务用户等。通常在较大的部署中,您实际上会将它们保存在秘密保险库中,并让系统在构建时注入它们厨师的时间,ansible,无论如何。但是,从应用程序的角度来看,它们仍然只是环境变量。
    【解决方案2】:

    您可以使用文件传输协议(例如 filezilla 或 cyberduck)将文件传输到您的生产服务器环境。确保您发送到服务器的 .env 文件包含生产数据库的凭据,而不是开发数据库的凭据,依此类推。您也可以将环境变量添加到远程服务器的 .env 或 .bashrc 文件中,但与 .env 文件相比,这可能是不可取的。只要除了您之外没有人可以访问远程服务器(docker、heroku、aws 等),您的凭据就应该是安全的。永远不要共享您的 .pem 文件。

    【讨论】:

      猜你喜欢
      • 2018-10-28
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      相关资源
      最近更新 更多