【问题标题】:services accessing a secret store访问秘密存储的服务
【发布时间】:2017-06-16 05:03:10
【问题描述】:

我试图了解人类、服务和秘密商店之间的互动。我一直在查看 HashiCorp Vault 文档和教程,以尝试更好地理解。我正在使用 Vault 而不是下面更繁琐的“秘密商店”:

用例是服务需要访问 Vault 以获取机密(例如 db 连接字符串)。使用凭据配置服务以访问 Vault 的人似乎也知道这些凭据,并且可以随时冒充该服务。

另一方面,如果 Vault 也是服务的身份提供者,它可以提供一次性使用的初始凭据,以便在服务初始化期间使用。然后,这些被轮换出来。此时,人类无法模拟他们在“正常操作”期间设置的服务。

但是,我没有在文档中阅读过这个用例,所以我很困惑。

为了清楚起见,我理解最终必须信任某人。例如,操作工程师可以拥有自己的 凭据来访问 Vault 并获取同一数据库的密码。这将允许用户访问,但不允许该用户模拟服务。是否有任何理由让运维工程师在初始化后还应该知道服务自己的凭据以访问 Vault?

【问题讨论】:

    标签: hashicorp-vault key-storage


    【解决方案1】:

    Vault 支持为多种服务(主要是数据库)创建一次性使用凭证 - 请参阅文档的 Secret Backend 部分。

    mysql后端包含如下描述:

    此外,它还引入了一项新功能:每个服务都使用唯一的凭据访问数据库,当发现有问题的数据访问时,它使审核变得更加容易:您可以根据 SQL 用户名将其追踪到服务的特定实例.

    【讨论】:

    • 所以我理解了那部分,但是您编写的想要获取 mysql 凭据 _from_Vault 的应用程序服务呢?如果您正在配置它,那么您是否可以随时向 Vault 请求 mysql 凭据,模拟您的应用程序服务?
    • 有很多最佳实践——比如在不需要时没有活动的 root 密钥,使用 AppRole 在开发人员和管理员之间拆分登录——但是,最终,如果你不相信自己是一个人全部设置好,我不确定 Vault 能否将您从自己手中拯救出来。
    • 在某些时候,公司中的某个人当然应该被信任,但似乎 shamir 密钥分片也是应用于这些根密钥的理想方法。否则,如果访问密钥已知,您是否以任何方式保护自己免受内部破坏?
    猜你喜欢
    • 2011-03-18
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多