Configuration-Management
是否有理由將 SSH 私鑰儲存在 Salt Pillar 而不是文件中作為狀態的一部分?
我有一組系統(在 AWS 中),它們都需要無密碼的 SSH 訪問。我編寫了一個 Salt 狀態,它複製了一個密鑰對(我之前生成的公共/私有 SSH-RSA 密鑰)並將適當的條目添加到使用者的 authorized_keys 文件中。
現在我將公鑰和私鑰作為文件儲存在 Salt 狀態中,並在我的狀態定義中獲取它們。但是,我在salt.states.file.managed() 文件中註意到它們提供了一個範例,該範例將私鑰儲存在 Pillar 中,然後用於
contents_pillar
獲取私鑰的內容。我是否有理由想將我的私有(甚至公共)密鑰內容儲存在 Pillar 中,而不僅僅是國家目錄中的文件?我不確定將它放在那裡是否有安全優勢,因為無論如何內容最終都會出現在每個系統上。我已經將 Pillar 用於其他一些事情,但不確定是否有一個很好的案例可以在這裡使用它。
所有狀態都可以從所有 minions 讀取,因此登錄您的任何 minion 的人(具有適當權限)可以讀取您儲存在狀態中的私鑰。
Pillar 數據可以限制在相關的 minions上。這是您儲存對一個或僅一些奴才機密的任何內容的地方。
您應該閱讀支柱文件頁面:http ://docs.saltstack.com/en/latest/topics/pillar/index.html
有這個註釋:
儲存敏感數據
與狀態樹不同,支柱數據僅適用於匹配器類型指定的目標 Minion。這使得它對於儲存特定於特定 minion 的敏感數據很有用。