我想用盐注入一个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文件?
答案 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.run
和watch_in
一起使用这种状态的条件。