使用 dotenv 的安全 nodejs 生产环境
secure nodejs production environment that use dotenv
通过使用 dotenv I can ignore development .env file before pushing it to the git repository, it comply with The Twelve-Factor App config factor。它可以防止配置暴露给其他人,尤其是开源项目。
但是我在将它部署到生产环境时卡住了,无论是使用云部署还是使用 docker。
如何包含此文件?我应该将文件保存到 Vault 还是什么?
请帮助我了解如何保护我的部署环境。
你不知道。服务器环境(docker 或其他)需要配置自己的环境变量,而不是开发环境变量。任何在您配置为应用程序的默认值时相同的值,以便即使未设置变量,它们也具有该值。
您可以使用filezilla 或cyberduck 等文件传输协议将文件传输到您的生产服务器环境。确保发送到服务器的 .env 文件包含生产数据库的凭证,而不是开发数据库的凭证,等等。您也可以只将环境变量添加到远程服务器的 .env 或 .bashrc 文件中,但与 .env 文件相比,这可能是不可取的。只要除了您之外没有人可以访问远程服务器(docker、heroku、aws 等),您的凭据就应该是安全的。切勿共享您的 .pem 文件。
通过使用 dotenv I can ignore development .env file before pushing it to the git repository, it comply with The Twelve-Factor App config factor。它可以防止配置暴露给其他人,尤其是开源项目。
但是我在将它部署到生产环境时卡住了,无论是使用云部署还是使用 docker。
如何包含此文件?我应该将文件保存到 Vault 还是什么?
请帮助我了解如何保护我的部署环境。
你不知道。服务器环境(docker 或其他)需要配置自己的环境变量,而不是开发环境变量。任何在您配置为应用程序的默认值时相同的值,以便即使未设置变量,它们也具有该值。
您可以使用filezilla 或cyberduck 等文件传输协议将文件传输到您的生产服务器环境。确保发送到服务器的 .env 文件包含生产数据库的凭证,而不是开发数据库的凭证,等等。您也可以只将环境变量添加到远程服务器的 .env 或 .bashrc 文件中,但与 .env 文件相比,这可能是不可取的。只要除了您之外没有人可以访问远程服务器(docker、heroku、aws 等),您的凭据就应该是安全的。切勿共享您的 .pem 文件。