带有用户菜谱的chef-vault(users_manage资源)

时间:2017-07-06 07:23:48

标签: chef chef-recipe chef-vault

我打算使用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

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

data_bag属性是数据包的名称,而不是包本身。你不能将users_manage与chef-vault一起使用,你必须自己编写类似的东西。

也就是说,除非您尝试设置密码或其他内容(不要这样做),否则用户对象中的任何内容都不应该是私密的,因此可能不需要这样做。