Saltstack每个minion私下分发安全/敏感的支柱键

时间:2016-07-23 14:54:37

标签: salt-stack

考虑两种方法将选定的支柱键分配给特定的小兵。

1。使用minion id的顶级文件匹配器。

在这种情况下,顶级文件必须知道柱状文件分配给他们的小兵。

/srv/pillar/top.sls

base:
  'minion_1':
    - key1
  'minion_2':
    - key2

/srv/pillar/key1.sls

key1: value1

/srv/pillar/key2.sls

key2: value2

2。 Jinja条件使用if / else和minion id。

在这种情况下,顶级文件不需要知道任何内容。

相反,支柱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侧进行渲染。

2 个答案:

答案 0 :(得分:1)

从安全角度来看,恕我直言中的任何一种方法看起来都非常相似。

正如你所说,每个盐奴隶只能看到盐主人允许它看到的支柱数据。

第一种方法看起来更直接,谷物由仆从提供 - 所以如果你有一个被黑客攻击的奴才,它可以看到它不应该......

更大的安全风险是在您的支柱中悬挂未加密的密钥等(特别是如果您使用git或其他任何东西共享它们)。你见过这个吗? https://docs.saltstack.com/en/latest/ref/renderers/all/salt.renderers.gpg.html,gpg加密为您的支柱。

使用它大约4个月没有问题。

答案 1 :(得分:0)

你不应该使用第二种方法。

请记住,谷物是不安全的,任何仆从都可以表现为任何谷物。评估Jinja中的粮食,特别是确定对支柱数据的访问有效地绕过Salt的安全模型。