如何与团队共享 .env

use*_*308 3 git version-control file-sharing environment-variables secret-key

我有一个关于文件的问题.env。我知道这是一个包含 API 密钥和密码等机密的文件。我还读到您不应该将其提交到像 GitHub 这样的 VCS。如果我一个人工作,这很好,但当然,我有团队成员。那么,我应该如何与团队中的其他人共享该文件呢?如果有新开发人员加入,我是否必须.env向他/她发送电子邮件?

提前谢谢你的帮助 :)

bk2*_*204 6

正如您所提到的,将机密存储在存储库中并不是一个好主意。如果您正在讨论生产秘密,那么通常您根本不希望这些秘密出现在开发人员计算机上,并且您可以使用某种秘密存储。例如,您的 CI 系统(例如 Travis CI 或 GitHub Actions)通常有一种方法来存储您在部署代码时可以使用的机密。这将使它们保持加密状态,除非您进行部署,否则它们不会被暴露。

其他一些环境还使用更通用的秘密存储,例如 Vault。这不仅有利于生产,而且还可以用于存储开发秘密(应该不同并且访问权限有限)。如果您有在生产中使用的堡垒或 shell 主机,您可以授予开发人员访问该系统上的开发机密的权限,并在设置存储库时使用存储库中的脚本自动获取它们。然后它们将被存储在安全的位置,如果需要轮换它们,开发人员只需运行脚本即可获取新的。

一般来说,您应该尽可能使用某种秘密存储来存储这些内容,并确保用户在获得访问权限之前经过完全身份验证(最好使用强密码和某种 2FA 机制)。如果您这样做,那么共享秘密就会变得不那么麻烦,因为这只是提供对秘密存储的访问权限的问题。

请注意,.env文件还可以包含非机密内容,例如运行所需的其他环境变量,例如环境类型(开发或生产)。这些可以很好地存储在存储库中,如果您需要混合秘密和非秘密数据,您可以创建一个脚本,该脚本从模板文件中获取开发值并合并到开发秘密中以创建.env. 请务必将.env文件标记为忽略,.gitignore以免用户意外签入。