目前我正在做一个项目,我们管理自己的验收和生产系统,但开发和测试系统由外部方管理。我们必须假设他们对系统具有完全的 root 访问权限,因此可以访问 Chef 客户端私钥 (client.pem)。
这使第三方可以访问我们的 Chef 服务器,我们也在其中存储我们的生产凭据。
我尝试将 dev/tst 系统放在不同的 Chef 环境中,并将凭据存储在环境中,而不是数据包中。但是,我发现 Chef 客户端可以更改它自己的环境,因此将客户端切换到生产环境相对容易,从而可以访问这些凭据。
通过使用加密的数据包和一些选择性的密钥分配,我们可以建立一个方案,其中所有开发盒共享开发数据包的密钥,测试数据包的测试盒等。但是,这非常麻烦且容易出错.
有没有办法阻止经过身份验证的 Chef 客户端访问 Chef 服务器上的所有数据?