首页 文章

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

提问于
浏览
1

考虑两种方法将选定的支柱键分配给特定的minion .

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.使用if / else和minion id的Jinja条件 .

在这种情况下,顶级文件需要一无所知 .

相反,柱子文件知道自己哪个仆从可以阅读它们 .

/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 %}

问题

Are there any security preferences using the 1st or the 2nd approach?

就个人而言,我更喜欢第二种方法 - 它更灵活(允许jinja模板中的任何逻辑) .

在写这篇文章时,我还澄清了一个重要的Salt设计方面 - 在任何一种情况下,只有Salt master编译了支柱sls文件(参见this answer) . 因此,在这两种情况下,总是永远不会给予所有支柱数据(过滤,选择和呈现自己的状态渲染的结果支柱) . 将它与状态 - AFAIK进行比较,它们在minon侧呈现 .

2 回答

  • 0

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

    正如你所说,每个salt-minion只能看到salt-master允许它看到的支柱数据 .

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

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

    已经使用它大约4个月没有问题 .

  • 1

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

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

相关问题