如何与团队共享.env

问题描述 投票:0回答:2

我对

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

提前感谢您的帮助:)

git version-control environment-variables file-sharing secret-key
2个回答
6
投票

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

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

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

请注意,

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


0
投票

您尝试过像 envchest.com 这样的工具吗?

© www.soinside.com 2019 - 2024. All rights reserved.