怎麼用 Vault 管理敏感資料?
30. 怎麼用 Vault 管理敏感資料?
導入 Ansible 組態工具,多少會使用明文 (Plain text) 在 Playbooks 裡存放敏感資料 (sensitive data) ,更別說我們還會搭配 Git 版本系統使用,這很可能會造成潛在的資安風險!接下來凍仁將透過 Vault 這個保險庫系統強化資料安全。
▲ 圖片來源:http://kingofwallpapers.com/vault.html 。
Vault 是什麼?
Vault 就字面上的意義有地窖、保險庫的意思。在 Ansible 裡是指加密、解密檔案的技術。
Ansible 從 v1.5 開始支援此功能,預設使用 AES 加密技術,其詳細說明可參考 Vault | Ansible Documentation 官方文件。

怎麼使用 Vault?
在進入實作之前,先來看看 Vault 的使用方法。
建立加密 (Encrypted) 檔案。
編輯加密檔案內容。
更換加密金鑰 (密碼)。
對已存在的明文檔案進行加密
解開 (Decrypt) 已加密檔案。
檢視已加密的檔案內容。
怎麼在 Playbooks 裡使用 Vault?
以下將藉由簡單的實作來展示 Playbook 搭配 Vault 的使用方法。
建立 Playbook。
註:
raw和endraw是為了相容 GitBook 所增加的語法,您可能會在某平台上看到它,請忽略之。建立變數檔案。
將變數檔案進行加密:過程中需輸入兩次密碼。
檢視已加密的檔案內容:使用剛剛輸入的密碼進行檢視。
手動輸入金鑰 (密碼) 解密
執行 Playbook 並搭配
--ask-vault-pass參數手動輸入密碼。或透過
ansible.cfg啟用ask_vault_pass,其預設值為 false。設定
ansible.cfg。執行 Playbook。
透過金鑰 (密碼) 檔解密
建立密碼檔:此例用的密碼為
bGpvxx。執行 Playbook 並搭配
--vault-password-file參數指定金鑰路徑。或於
ansible.cfg裡新增vault_password_file參數,並指定金鑰路徑。
最後附上凍仁的實作畫面。

當 include 到
defaults/main.yml密文 (Cipher text) 檔後,需先用 Vault 解開才可繼續執行。
後語
或許大家覺得在本機儲存敏感資料很安全,誰又能保證傳輸過程中能不被竊取呢?越方便的工具往往伴隨著越大的資安風險,但至少,我們可以先從檔案加密著手。
相關連結
Last updated
Was this helpful?