如何在 spring 引导中使用非 root 保管库令牌进行保管库登录
How to use non-root vault token for vault login in spring boot
我正在使用 保险库的默认令牌身份验证方法。还在 spring 引导应用程序中将 Vault 与 spring 云配置服务器集成。
根令牌 具有超级用户访问权限,可以 read/write 应用程序的秘密,但我需要创建一个 非根令牌,它只能登录 保管库并且不 read/write 任何秘密。这样就不会强制执行该保险库,并且应用程序会使用保险库启动。当用户想专门使用保险库时,他可以提供自己的令牌和访问秘密。
使用默认策略,创建令牌,通过 vault cli 登录但不通过 spring 启动应用程序,给出 403 禁止。
我创建了自己的策略,其中包括针对身份验证路径的不同功能,并且其中没有秘密路径。使用此策略创建的令牌再次通过 cli 而不是通过代码成功登录。
如果我在我的策略中提供具有读取功能(仅读取作品)的秘密路径,那么我也可以通过代码登录,但随后启用了秘密读取。
我只想使用非根保管库令牌作为登录令牌。在保险库策略中不提供秘密路径是否可以实现?
这是我还没有尝试过的东西,但我已经使用 r限制 non-root 令牌的读取权限.
您可以创建具有 deny
能力 的策略,如下所示:
$cat auth-policy.hcl
path "secret/*" {
capabilities = ["deny"]
}
vault policy write client-access auth-policy.hcl
Success! Uploaded policy: client-access
这里是为 Vault 策略定义的不同功能 - https://www.vaultproject.io/docs/concepts/policies.html#capabilities。
vault token create -policy=client-access -period=768h
Key Value
--- -----
token *********************
token_accessor *********************
token_duration 768h
token_renewable true
token_policies [client-access default]
这将创建一个有效期为 768 小时的令牌,默认情况下为最大值。如果您想为新令牌配置更多时间,请在您的基础config.hcl
中相应地配置max_lease_ttl
和default_lease_ttl
$cat config.hcl
disable_mlock = true
storage "postgresql" {
connection_url = "postgres://vault:vault@postgresql:5432/postgres?sslmode=disable"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
max_lease_ttl = "7200h"
default_lease_ttl = "7200h"
希望对您有所帮助!
我正在使用 保险库的默认令牌身份验证方法。还在 spring 引导应用程序中将 Vault 与 spring 云配置服务器集成。 根令牌 具有超级用户访问权限,可以 read/write 应用程序的秘密,但我需要创建一个 非根令牌,它只能登录 保管库并且不 read/write 任何秘密。这样就不会强制执行该保险库,并且应用程序会使用保险库启动。当用户想专门使用保险库时,他可以提供自己的令牌和访问秘密。
使用默认策略,创建令牌,通过 vault cli 登录但不通过 spring 启动应用程序,给出 403 禁止。 我创建了自己的策略,其中包括针对身份验证路径的不同功能,并且其中没有秘密路径。使用此策略创建的令牌再次通过 cli 而不是通过代码成功登录。 如果我在我的策略中提供具有读取功能(仅读取作品)的秘密路径,那么我也可以通过代码登录,但随后启用了秘密读取。
我只想使用非根保管库令牌作为登录令牌。在保险库策略中不提供秘密路径是否可以实现?
这是我还没有尝试过的东西,但我已经使用 r限制 non-root 令牌的读取权限.
您可以创建具有 deny
能力 的策略,如下所示:
$cat auth-policy.hcl
path "secret/*" {
capabilities = ["deny"]
}
vault policy write client-access auth-policy.hcl
Success! Uploaded policy: client-access
这里是为 Vault 策略定义的不同功能 - https://www.vaultproject.io/docs/concepts/policies.html#capabilities。
vault token create -policy=client-access -period=768h
Key Value
--- -----
token *********************
token_accessor *********************
token_duration 768h
token_renewable true
token_policies [client-access default]
这将创建一个有效期为 768 小时的令牌,默认情况下为最大值。如果您想为新令牌配置更多时间,请在您的基础config.hcl
中相应地配置max_lease_ttl
和default_lease_ttl
$cat config.hcl
disable_mlock = true
storage "postgresql" {
connection_url = "postgres://vault:vault@postgresql:5432/postgres?sslmode=disable"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
max_lease_ttl = "7200h"
default_lease_ttl = "7200h"
希望对您有所帮助!