1

使用 Terraform 在 Digital Ocean 上创建液滴时,创建的机器的密码通过邮件发送。如果我获得了有关 Digital Ocean 提供商的文档,您还可以指定要使用的密钥的 SSH ID。

如果我使用 Terraform 引导数据中心,我应该选择哪个选项?

不知何故,为每台机器使用不同的密码感觉不对(不知何故,使用密码本身感觉不对),但如果每台机器都链接到我用户的 SSH 密钥,也会感觉不对。

你是怎样做的?有没有一种方法可以被认为是好的(最好的?)实践?我应该只为此创建一个 SSH 密钥对并将其与 Terraform 文件一起提交到 Git 吗?……?

4

1 回答 1

2

正如您所提到的,一旦您拥有相当数量的实例,在实例上使用密码绝对是一件痛苦的事。它还不如妥善管理(保密)的 SSH 密钥安全。显然,将自动化的其余部分链接到带外传递到自动化工具的某些凭据时,您将遇到一些麻烦,因此,如果您需要实际配置这些服务器以执行某些操作,那么通过电子邮件输入密码的选项几乎没有了。

我倾向于为每个应用程序和开发阶段(例如,开发、测试/登台、生产)使用不同的 SSH 密钥,但是为了便于管理,该组合中的所有内容都会获得相同的公钥。以这种方式分离它意味着如果您有一个密钥被泄露,您不需要在任何地方替换公钥,因此可以最大限度地减少此事件的爆炸半径。这也意味着您可以独立旋转它们,尤其是在某些环境可能比其他环境移动得更快的情况下。

最后提醒一句,不要将您的私有 SSH 密钥与您的其余代码放在同一个 git 存储库中,并且绝对不要将私有 SSH 密钥发布到公共存储库。如果您在一个大型团队中,您可能需要研究一些秘密管理,例如 Hashicorp 的Vault,或者如果需要多人使用,至少将这些共享私钥带外分发。

于 2016-07-21T07:08:54.943 回答