我试图了解人类、服务和秘密商店之间的相互作用。我一直在查看 HashiCorp Vault 文档和教程,以尝试更好地理解。我正在使用 Vault 而不是下面更繁琐的“秘密商店”:
用例是当服务需要访问 Vault 以获取机密(例如 db 连接字符串)时。使用凭据配置服务以访问 Vault 的人似乎也知道这些凭据,并且可以随时冒充该服务。
另一方面,如果 Vault 也是服务的身份提供者,它可以提供一次性使用的初始凭据,以便在服务初始化期间使用。然后,这些被轮换出来。此时,人类无法模拟他们在“正常操作”期间设置的服务。
但是,我没有在文档中阅读过这个用例,所以我很困惑。
为了更清楚起见,我知道最终必须信任某人。例如,操作工程师可以拥有自己的凭据来访问 Vault 并获取同一数据库的密码。这将允许用户访问,但不允许该用户模拟服务。是否有任何理由让操作工程师在初始化后还应该知道服务自己的凭据以访问 Vault?