将文件从一个Salt小兵安全地复制到另一个小兵

如何使用Salt将敏感文件(encryption密钥)从一个特定的小爪子安全地复制到另一个特定的小爪子? 我不希望任何其他奴才能够读取文件。

盐矿?

盐矿似乎是一个合乎逻辑的开始,但文件说:

盐矿是用来收集任意数据从仆从,并存储在主。 这些数据然后通过salt.modules.mine模块提供给所有的Minions。

我不希望所有的奴才都能得到这些数据,只有一个。 另外,我不需要定期刷新 – 我只需要为目标state.highstate运行state.highstate时读取文件。

cp.push

Salt的cp.push函数似乎是将文件传递给master的一个好方法,除了:

  • 它使用salt.transport.Channel.send()方法, 不保证是保密的
  • cp.push在主服务器的文件系统中提供由cp.push全局读取权限推送的文件
  • 一旦这个文件在主人身上,怎么把它送到目的地奴才是不明显的

自定义外部支柱?

我可以写一个自定义的外部支柱 ,以某种方式从源文件中读取文件(如何?),然后通过支柱将文件的内容提供给第二部分。 这似乎是一个应该内置的行为很多的努力。

这只是一个答案,但也许会有所帮助。

你写了:

一旦这个文件在主人身上,怎么把它送到目的地奴才是不明显的

和:

我可以写一个自定义的外部支柱,以某种方式…使文件的内容可以通过一个支柱到第二部分。

该能力( file_tree外部支柱)现在在2015年5月5日。 看这个常见问题 。

至于如何从源文件中获取文件到主文件,盐范例更多的是作为数据源。 你可以吗:

  • 有什么旋转钥匙把它写到主?
  • 触发一个事件,一个反应堆去,并通过SCP提取它?
  • 在两个想要共享密钥的小伙伴(或源头小伙子)之间build立一个共享的NFS挂载?
  • 在ACL上设置一个https服务器,ACL只允许访问主服务器或目标服务器?