2017-06-20 84 views
0

我正在写一本处理私钥的食谱。如果出现任何问题,Chef会转储整个资源以记录最终用户的情况。但是,这也会打印私钥以便登录,这是不可接受的。有没有办法采用sensitive资源功能来防止敏感数据记录?厨师:使用敏感属性

+0

不知道是什么你的意思是..你知道所有厨师资源通用的名为['sensitive'](https://docs.chef.io/resource_common.html#properties)的属性? – StephenKing

+0

@StephenKing是的,但我需要强制禁止我的自定义资源的输出(敏感只适用于三种资源,必须由用户打开)。我找到了答案,我会在一秒之内发布。 – Etki

回答

3

它总是一个谷歌查询远:

由于厨师客户端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*"