我打算使用chef-vault对“用户”数据库进行加密,并使用与“用户”cookbook相同的主厨。 “users”cookbook提供的“users_manage”资源接受其中一个属性为“databag”(带有username,group_id和search_group属性)。 据我所知,chef-vault允许您一次解密一个项目
vault = chef_vault_item(:mydatabbag, ‘item1’)
理想情况下,我希望chef-vault提供类似的功能来解密整个保险库(加密的数据库),我可以将其传递给“uses_manage”资源:
decrypted_data_bag = chef_vault(:mydatabbag) #Something similar
users_manage "#{search_group}" do
group_id search_group
action [ :remove, :create ]
data_bag "#{decrypted_data_bag}"
end
由于chef-vault不提供解密整个数据库的能力,我是否留下了在循环中调用“users_manage”并传递每个项目(作为哈希)的唯一解决方案?
mydatabag.each do |myuser|
decrypted_user = vault = chef_vault_item(:mydatabbag, "#{myuser}")
users_manage "#{search_group}" do
group_id search_group
action [ :remove, :create ]
data_bag "#{decrypted_user}"
end
end
有更好的解决方案吗?
答案 0 :(得分:0)
data_bag
属性是数据包的名称,而不是包本身。你不能将users_manage
与chef-vault一起使用,你必须自己编写类似的东西。
也就是说,除非您尝试设置密码或其他内容(不要这样做),否则用户对象中的任何内容都不应该是私密的,因此可能不需要这样做。