Chef:处理敏感属性

Etk*_*tki 2 chef-infra

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

Etk*_*tki 6

谷歌查询一下就可以了:

\n\n
\n

从 Chef 客户端 12.14 开始,单个资源属性可以标记为sensitive: true,这会在导出资源\xe2\x80\x99s 状态时抑制该属性的值。

\n
\n\n

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

\n\n
resource_name :ssh_private_key\ndefault_action :create\n\nproperty :private_key, String, required: true, sensitive: true\n                                               ^^^^^^^^^^^^^^^\n
Run Code Online (Sandbox Code Playgroud)\n\n

之后该属性的输出将被抑制:

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