【问题标题】:Ansible vault password fileAnsible 保险库密码文件
【发布时间】:2016-06-02 16:25:39
【问题描述】:

我在想,既然我们已经有一个用于访问服务器的秘密文件(ssh 私钥),那么使用这个文件作为保管库的密钥文件会有多大的安全风险?

这样做的好处是我们只需要保护 ssh 私钥,而不必为保管库使用另一个密钥。

【问题讨论】:

    标签: security ansible


    【解决方案1】:

    我喜欢你减少秘密的想法,但我对使用 ansible 私钥有些担心。

    场景

    理想情况下,您提到的私钥仅存在于您的管理计算机上,您可以从中运行您的剧本。我的看法是,这个密钥在其他机器/系统中分布得越多,它就越有可能被泄露。 ansible 私钥通常可以访问系统中任何已配置机器上的 root,这使其成为一个非常有价值的秘密。我从不使用 ansible 本身提供 ansible 私钥(无论如何,这将是一种鸡蛋,至少在第一台管理机器上)。

    问题

    我看到这种方法的一个潜在问题是在本地开发角色时,例如,使用 vagrant。 您需要使用本地管理系统中的私钥来解密秘密并针对您的 vagrant box 运行您的剧本。 此外,从事同一个 ansible 项目的任何其他开发人员都需要在本地使用该私钥进行开发。

    可能的解决方法

    我的前提是私钥不离开管理服务器。为了实现这一点,您可以以一种不需要任何秘密解密的方式来开发您的角色,例如本地开发。为每个仅使用非加密假数据的生产组创建一个本地开发dev 对应项。这样你只需要在你的管理机器上解密秘密,而不需要本地的私钥,但这当然会导致你的 ansible 项目的开发工作量更大。

    我总是尽可能地尝试使用这种方法,但有时你可能会发现自己仍然需要为你的 vagrant box 解密一些有效的 api 密钥。在某些项目中,您可能不仅希望将您的 ansible playbook 用于生产服务器,还希望在本地为开发人员提供 vagrant box,这通常是您需要解密一定数量的有效机密时。

    另外值得一提的是,通过这种方法,生产机密的更改只能使用私钥直接在管理服务器上进行。

    结论

    总而言之,我认为虽然理论上可以将私钥用作保险库密码,但与额外安全问题带来的开销相比,减少一个秘密的好处太小了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-17
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 2021-03-04
      • 2018-03-07
      相关资源
      最近更新 更多