2015-02-24 59 views
1

所以我們有一些代碼看起來是這樣的:失敗,但不會以明文形式記錄密碼

template my_template do 
    #stuff 
    variables({"password": data_bag["password"]}) 
end 

此代碼是一切優秀和良好,直到後來,模板失敗。當它這樣做時,它將轉儲包含密碼的所有內容,並將其導入erb模板。這些數據會自動以純文本形式記錄下來,稍後會被其他腳本自動梳理,這自然會讓我感到不舒服。

除非一直寫完美的代碼,有什麼辦法來防止這種行爲?

+0

如果更改密碼,廚師還會在日誌中打印差異,以明文形式顯示舊密碼和新密碼。我看不到一個簡單的方法,你可以使用一個紅寶石塊,創建模板,並捕捉失敗,只記錄失敗而不丟棄模板。 – Tensibai 2015-02-24 08:57:30

回答

1

使用新的sensitive屬性。從docs:

sensitive - Use to ensure that sensitive resource data is not logged by the chef-client. Default value: false. This setting only applies to the execute, file and template resources 

因此,像這樣:

template my_template do 
    #stuff 
    variables({"password": data_bag["password"]}) 
    sensitive true 
end 

這是一個新的廚師12的功能,而我還沒有使用過它。所以我不能保證它會解決你的問題,但文件表明它會。