Hashicorp-Vault AppRole 身份验证方法和用户密码身份验证方法之间的主要区别是什么?

ofi*_*ule 2 authentication hashicorp-vault

Hashicorp-Vault AppRole 身份验证方法和用户密码身份验证方法之间的主要区别是什么?

在文档中,我看到approle主要供机器或应用程序使用,而userpass供用户使用。

明显的是略有不同的 API 和一些不同的命名:

在安全性、性能等方面还有哪些其他主要区别?

小智 6

另一个主要区别是工作流程,因为目标受众不同。让我来解开这个。

\n

userpass是为人类用户设计的。approle是为服务/机器/脚本而设计的。

\n

由于工作流程的差异而导致的主要差异在于轮换机密的方式。\n使用 时userpass,每个用户名都有一个密码。当您更改该单个密码时,它\xe2\x80\x99s立即更改,并且前一个密码被撤销。

\n

Approle 的工作方式更像传统的 API 密钥(或者 AWS 访问密钥,如果您熟悉它们,以及为什么 AWS 让您拥有 2 个不同的密钥):对于每个角色 ID,您可以创建多个秘密 ID。当您需要将这些秘密分发到多个实例并轮换它们时,这变得非常有用:新秘密 ID 的创建和前一个秘密 ID 的撤销是解耦的

\n

另一个需要记住的有用区别是,虽然两者userpassapprole允许您对生成的令牌设置 num_uses 或 IP 限制,但approle 还允许您对 Secret_id 设置验证约束:secret_id 可以设置为仅对特定 IP 有效,仅对特定 IP 有效。次数,或者有一个 TTL(这个 TTL 位于 Secret-id 上,而不是在令牌上,令牌可以有另一个 TTL)。

\n

这些秘密 ID 限制使您可以更好地控制如何保护身份验证数据分发(包装确实非常好,但是这些其他设置为您提供了很多选项,使其在您的工作流程中工作,具体取决于您的服务\xe2 \x80\x99 正在尝试保护)。

\n