如何在Puppet 7模板中获取hiera-eyaml加密数据的实际值?
解决Puppet 7中Sensitive数据在模板中显示真实值的问题
你遇到的是Puppet中Sensitive类型数据的默认行为:当lookup返回Sensitive对象时,直接输出会显示Sensitive [value redacted]占位符,而非真实值。要获取实际内容,需要显式调用unwrap方法提取原始值。
修改ERB模板
将模板中的lookup结果调用unwrap方法即可:
[nondefault] aws_secret_access_key = <%= scope().call_function('lookup', ['profile::aws::app_environment::secret_key']).unwrap %> aws_access_key_id = <%= scope().call_function('lookup', ['profile::aws::app_environment::access_key']).unwrap %>
补充说明
- Puppet的Sensitive类型用于保护敏感数据,防止其在日志、控制台输出中泄露,因此默认输出会隐藏真实值。
- 确保生成的
.aws/credentials文件权限保持0600且属主为root,这是保护敏感密钥的关键,你当前的Puppet代码已经正确设置了这些属性。
内容的提问来源于stack exchange,提问作者Simply Seth
相关产品推荐
相关产品推荐

