【问题标题】:Preventing Chef client from accessing all data on server阻止 Chef 客户端访问服务器上的所有数据
【发布时间】:2013-11-16 08:59:36
【问题描述】:

目前我正在开展一个项目,我们管理自己的验收和生产系统,但开发和测试系统由外部方管理。我们必须假设他们对系统具有完全的 root 访问权限,因此可以访问 Chef 客户端私钥 (client.pem)。

这使第三方可以访问我们的 Chef 服务器,我们也在其中存储我们的生产凭据。

我尝试将 dev/tst 系统放在不同的 Chef 环境中,并将凭据存储在环境中,而不是数据包中。但是,我发现 Chef 客户端可以更改自己的环境,因此将客户端切换到生产环境相对容易,从而可以访问这些凭据。

通过使用加密数据包和一些选择性的密钥分配,我们可以建立一个方案,其中所有开发盒共享开发数据包的密钥,测试数据包的测试盒等。但是,这非常麻烦并且容易出错。

有没有办法阻止经过身份验证的 Chef 客户端访问 Chef 服务器上的所有数据?

【问题讨论】:

    标签: security chef-infra


    【解决方案1】:

    单独的厨师服务器是最简单的解决方案(如果您使用私人厨师,您可以创建多个组织,功能相同)。

    话虽如此...在属性中存储未加密的秘密只是一个坏主意。使用加密数据包会有所帮助,但我认为最好的解决方案是使用 chef-vault:

    它巧妙地使用 Chef 客户端的公钥来加密数据并确保只有授权节点才能访问机密(密码、密钥、产品代码等)。

    一个相关问题:

    Chef chef-validator.pem security

    【讨论】:

    • 同意 chef-vault 是一个很好的解决方案。但是,所有客户都可以阅读很多内容。
    • @StephenKing 当然,这就是外围防御的用途(用户密码和客户端密钥)。它们阻止匿名或随意访问。要正确保护凭据,您必须使用加密。一旦你习惯了,Chef vault 就可以直接使用了。
    【解决方案2】:

    不幸的是,只有 Enterprise Chef - 商业版才有可能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多