您好,我正在使用Chef在离线位置设置机器集群。如果其中一台机器被盗,攻击者通过拥有chef-validator.pem文件可以对我的chef-server或其他节点造成什么样的损害?除了通过Chef访问什么其他东西?谢谢!
您好,我正在使用Chef在离线位置设置机器集群。如果其中一台机器被盗,攻击者通过拥有chef-validator.pem文件可以对我的chef-server或其他节点造成什么样的损害?除了通过Chef访问什么其他东西?谢谢!
在最近一期的"Foodfight"节目中,讨论了在Chef中管理“机密信息”的问题。强烈推荐收看:
在初始化新的Chef客户端时,knife bootstrap操作会上传此密钥。拥有此密钥可以使客户端注册到您的chef服务器。实际上,它的唯一功能就是这个,一旦客户端运行起来,验证密钥就不再需要。
但是这可能被滥用...... 正如@cbl所指出的,如果未经授权的第三方获取了此密钥,则可以创建能够查看普通客户端可以查看的Chef服务器中所有内容的新客户端。它可以理论上用于对您的Chef服务器进行拒绝服务攻击,通过向其发送注册请求来淹没它。
"Foodfight"小组建议一个简单的解决方案。在所有节点上启用chef-client cookbook。它包含一个"delete_validation" recipe,将删除验证密钥并降低风险暴露。
从Chef 12.2.0版开始,验证密钥不再是必需的:
https://blog.chef.io/2015/04/16/validatorless-bootstraps/
你可以在工作站上删除验证密钥,然后knife将使用你的用户凭据创建节点和客户端。
此外,当创建节点时,你提供的run_list和environment也会应用到该节点,这是一些很好的特性。不再依赖于chef-client读取first-boot.json文件,并且运行必须在引导过程结束时node.save才能创建节点。
Copying and pasting the validator key into /etc/chef folder on any machine
Creating client.rb file with the following details
log_location STDOUT
chef_server_url "https://api.chef.io/organizations/ORGNAME"
validation_client_name 'ORGNAME-validator'
validation_key '/etc/chef/validater.pem'
3:运行 chef-client 以连接到 Chef 服务器