使用带有saltstack的安全tmpfile

时间:2017-03-01 22:25:31

标签: security gnupg salt-stack temporary-files

我想用盐注入一个gpg密钥。密钥本身就是一个安全的支柱,但为了为minion上新安装的gpg设置提供密钥,我必须将密钥放入文件中,所以我有类似的东西

import_gpg_key:
  file.managed:
    - name: /tmp/secret.key
    - contents_pillar: gpg:secret_key
    - user: me
    - group: me
    - mode: 0600
  cmd.run:
    - name: gpg --batch --import /tmp/secret.key
    - runas: me
    - unless: gpg --list-secret-keys {{ pillar['gpg']['default_key_fingerprint'] }}

##  
# FIXME Is there no way to avoid
# writing the secret to disk, or
# at least use a secure tmpfile?
/tmp/secret.key:
  file.absent

正如我在评论中所说的那样,我宁愿根本不把这个秘密写入磁盘,但如果这是不可避免的,有没有办法使用一个不易猜测的随机路径的安全tmp文件?

1 个答案:

答案 0 :(得分:1)

您可以使用module that allows gpg imports from text

调用module state

未经测试的草图:

import_gpg_key:
  module.run:
    - name: gpg.import_key
    - user: me
    - kwargs:
        text: {{ pillar['gpg']['secret_key'] }}
    - unless: gpg --list-secret-keys {{ pillar['gpg']['default_key_fingerprint'] }}

我担心unless在这里不起作用(至少在文档中没有提及) - 但您可以使用另一个cmd.runwatch_in一起使用这种状态的条件。