考虑两种方法将选定的支柱键分配给特定的小兵。
在这种情况下,顶级文件必须知道柱状文件分配给他们的小兵。
/srv/pillar/top.sls
base:
'minion_1':
- key1
'minion_2':
- key2
/srv/pillar/key1.sls
key1: value1
/srv/pillar/key2.sls
key2: value2
在这种情况下,顶级文件不需要知道任何内容。
相反,支柱sls文件知道哪个minion可以读取它们。
/srv/pillar/top.sls
base:
'*':
- key1
- key2
/srv/pillar/key1.sls
{% if grains['id'] == 'minion_1' %}
key1: value1
{% endif %}
/srv/pillar/key2.sls
{% if grains['id'] == 'minion_2' %}
key2: value2
{% endif %}
使用第一种或第二种方法是否有任何安全偏好?
就个人而言,我更喜欢第二种方法 - 它更灵活(允许jinja模板中的任何逻辑)。
在写这篇文章时,我还澄清了一个重要的Salt设计方面 - 在任何一种情况下,只有Salt master编译了支柱sls文件(参见this answer)。因此,在这两种情况下,总是永远不会给予所有支柱数据(过滤,选择和呈现自己的状态渲染的结果支柱)。将它与状态 - AFAIK进行比较,它们在minon侧进行渲染。
答案 0 :(得分:1)
从安全角度来看,恕我直言中的任何一种方法看起来都非常相似。
正如你所说,每个盐奴隶只能看到盐主人允许它看到的支柱数据。
第一种方法看起来更直接,谷物由仆从提供 - 所以如果你有一个被黑客攻击的奴才,它可以看到它不应该......
更大的安全风险是在您的支柱中悬挂未加密的密钥等(特别是如果您使用git或其他任何东西共享它们)。你见过这个吗? https://docs.saltstack.com/en/latest/ref/renderers/all/salt.renderers.gpg.html,gpg加密为您的支柱。
使用它大约4个月没有问题。
答案 1 :(得分:0)
你不应该使用第二种方法。
请记住,谷物是不安全的,任何仆从都可以表现为任何谷物。评估Jinja中的粮食,特别是确定对支柱数据的访问有效地绕过Salt的安全模型。