
我收到了一本 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 有各種方式提供保管庫密碼。
- 檔案 - 可以透過檔案系統權限進行保護
- 腳本 - 可以存取其他金庫,解碼/解密儲存在其他地方的金庫密碼
但所有這些都歸結為同一個問題,在某些時候您需要提供一些東西來解密密碼,這使得自動化過程變得困難。您可以決定在何處儲存用於解密保管庫密碼的純文字機密。