盐栈-盐栈为每个仆从私人分配安全/敏感的支柱密钥

  • 本文关键字:安全 分配 密钥 盐栈 salt-stack
  • 更新时间 :
  • 英文 :


考虑两种方法来将选定的支柱键分配给特定的仆从。

1.使用爪牙id的顶级文件匹配器

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

/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和爪牙id

在这种情况下,top file需要什么都不知道。

相反,支柱sls文件自己知道哪个仆从可以读取它们。

/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设计的一个重要方面——无论在哪种情况下,支柱sls文件都只能在SaltMaster上编译(见答案)。因此,在这两种情况下,小黄人无论如何都不会获得所有支柱数据(以过滤、选择和呈现结果支柱,用于自己的状态渲染)。将其与状态进行比较——AFAIK,它们是在minon一侧呈现的。

IMHO从安全角度来看,这两种方法看起来几乎相同。

正如你所说,每个盐仆从只看到盐主允许它看到的支柱数据。

第一种方法看起来更简单,谷物由小黄人提供-所以如果你有一个被黑客攻击的小兵,它可能会看到它不应该看到的东西。。。。。。

更大的安全风险是在你的柱子上挂着未加密的密钥等(尤其是当你用git或其他东西共享它们时)。你看到这个了吗?https://docs.saltstack.com/en/latest/ref/renderers/all/salt.renderers.gpg.html,gpg加密为您的支柱。

已经使用了大约4个月,没有任何问题。

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

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

最新更新