使用 AnsibleVault 密碼加密 zip 檔案

使用 AnsibleVault 密碼加密 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}}

因此,他們嘗試將保管庫密碼傳遞給 zip 命令的 -P 選項。

這似乎不起作用。運行劇本時,我得到:

"Attempting to decrypt but no vault secrets found"}

據我了解 AnsibleVault,這意味著我需要提供密碼才能使用Vault密碼,但我可能是錯的。如果你想自動化操作,提供密碼似乎毫無用處。如果我將密碼放入檔案中,就像我不使用密碼加密 zip 檔案一樣容易受到攻擊。

這種嘗試使用保管庫密碼的方法是否可能?

答案1

Ansible 有各種方式提供保管庫密碼。

  • 檔案 - 可以透過檔案系統權限進行保護
  • 腳本 - 可以存取其他金庫,解碼/解密儲存在其他地方的金庫密碼

但所有這些都歸結為同一個問題,在某些時候您需要提供一些東西來解密密碼,這使得自動化過程變得困難。您可以決定在何處儲存用於解密保管庫密碼的純文字機密。

相關內容