Chef:使用敏感属性

时间:2017-06-20 13:08:50

标签: chef

我正在写一本处理私钥的食谱。如果出现任何问题,Chef会将整个资源转储到日志中,以向最终用户显示发生的情况。但是,这也会打印私钥以进行记录,这是不可接受的。有没有办法采用sensitive资源功能来阻止敏感数据记录?

1 个答案:

答案 0 :(得分:3)

总是一个谷歌查询:

  

从Chef客户端12.14开始,可以将各个资源属性标记为敏感:true,这会在导出资源状态时抑制该属性的值。

因此,要将自定义资源的特定属性标记为敏感,只需将sensitive: true添加到属性定义:

resource_name :ssh_private_key
default_action :create

property :private_key, String, required: true, sensitive: true
                                               ^^^^^^^^^^^^^^^

之后,该属性的输出将被禁止:

ssh_private_key("invalid_passphrase") do
    action [:create]
    default_guard_interpreter :default
    declared_type :ssh_private_key
    cookbook_name "ama-ssh-private-keys-integration"
    user "root"
    private_key "*sensitive value suppressed*"
    public_key "AAAAB3NzaC1yc2EAAAADAQABAAAAYQDCLY+8qnsrW/RrjDgz1b026hg9Lb78KV2c00sA4v6iSHVZoRKdnoIFr3dnWwV5Urt1U9fJJVy0fPLDWnAdYtI7U37k0GLpZhPS3ps/W9j1ZgslEQMQpvAD19yuJG/NXzk="
    passphrase "*sensitive value suppressed*"