使用 Ansible Vault 密码加密 zip 文件

使用 Ansible Vault 密码加密 zip 文件

我得到了一个 Ansible 剧本,旨在用密码保护 zip 文件。剧本(部分)如下所示:

- name: Create and encrypt zipfile
  vars:
    zipPW: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      64656637643264313764633665363234393239346230643936393864313337313030613461326639
      3538303634303365373637633761306133333266393331630a336436383534323264376537653564
      32393162353730373335303733663463333764616438643762653330616431353162326238663564
      3163306336313931660a313530343935643366663433346231386638353932313936366538643664
  shell: "zip -jr /tmp/pit/{{hostvars[inventory_hostname]['gzipoutfile']['stdout']}}.zip /tmp/pit/{{hostvars[inventory_hostname]['gzipoutfile']['stdout']}} -P {{zipPW}}"
  register: zipped
- debug:
    msg: "{{zipped}}

因此,他们尝试将保险库密码传递给 -P 选项的 zip 命令。

这似乎不起作用。运行剧本时,我得到:

"Attempting to decrypt but no vault secrets found"}

据我了解,Ansible vault 意味着我需要提供密码才能使用 vault 密码,但我可能错了。如果你想要自动化操作,提供密码似乎毫无用处。如果我将密码放在文件中,那么我就像不使用密码加密 zip 文件时一样容易受到攻击。

尝试使用保险库密码的这种方式可行吗?

答案1

Ansible 具有各种方式提供保险库密码。

  • 文件 - 可以通过文件系统权限保护
  • 脚本 - 可以访问其他保险库,解码/解密存储在其他地方的保险库密码

但所有问题都归结为同一个问题,有时您需要提供一些东西来解密密码,这给自动化流程带来了困难。您可以自行决定将纯文本机密存储在哪里以解密保险库密码。

相关内容