我有一套系统(在AWS中)都需要相互无密码的SSH访问。 我写了一个Salt状态,它复制一个密钥对(我以前生成的公钥/私有SSH-RSA密钥),并将相应的条目添加到用户的authorized_keys文件中。
现在我将公钥和私钥作为文件存储在Salt状态,并将它们存入我的状态定义中。 不过,我注意到在salt.states.file.managed()文档中提供了一个将私钥存储在Pillar中的示例,然后使用contents_pillar获取私钥的内容。
是否有一个原因,我可能要存储我的私人(甚至是公共)关键内容在Pillar而不是只是在国家的目录中的文件? 我不确定是否有安全优势,因为内容最终会在每个系统上结束。 我用Pillar做了其他一些事情,但不确定是否有一个好的案例在这里使用它。
所有的状态都可以从所有的小伙子那里读取 ,所以有人(具有适当的权限)login你的任何一个小伙伴可以读取你存储在这些状态中的私钥。
支柱数据可以限制在相关的爪牙 。 这是你存放任何对一个或只有一些爪牙机密的东西的地方。
您应该阅读支柱文档页面: http : //docs.saltstack.com/en/latest/topics/pillar/index.html
有这个注意事项:
存储敏感数据
与状态树不同,支柱数据仅适用于由匹配器types指定的目标小刀。 这对于存储特定于特定小兵的敏感数据非常有用。