0
我打算用chef-vault加密“users”数据包,并使用厨师提供的“users”cookbook。由“users”cookbook提供的“users_manage”资源接受其中一个属性为“数据包”(带有用户名,group_id和search_group属性)。 据我所知,厨师保管箱可让您在同一时间与用户cookbook(users_manage资源)的厨师保险库
vault = chef_vault_item(:mydatabbag, ‘item1’)
理想我希望厨师保管库,提供类似的功能来解密整个库(加密databag)解密一个项目,我可以通过同样的以“ 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
由于厨师保管库不提供解密整个databag的能力,我是留下了唯一的解决办法叫‘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
有没有更好的解决方案?
谢谢@coderanger。我需要在用户对象中存储ssh-keys和密码,因此需要加密。 –
不要使用Chef来分发用户密码,查看诸如LDAP之类的东西,Chef应该为大多数用户设置的唯一密钥应该是公钥,也就是'authorized_keys'的东西,这些东西不需要保守秘密。 – coderanger
+1这只是一个临时解决方案,直到我们到达LDAP。 PS:似乎PR已经打开相同:https://github.com/chef-cookbooks/users/pull/91 –