如何使用 Spring Boot 对 Vault 使用 AppRole 身份验证?
How to use AppRole authentication for Vault using Spring Boot?
在我的应用程序中,我们从我的应用程序进行两次调用以从 Vault 获取机密,如下所示:
登录 Vault : POST 调用 https::/v1/auth/approle/login -- 它将使用 role_id 和 secret_id 作为有效负载和响应是 client_token.
获取机密:GET 调用 https::/v1/secret/data/abc/dev/xyz.json -- 它将 headers 作为 X-Vault-Token 和 X-Vault-Namespace 它会给你如下的回应:
{
"request_id": "......",
"lease_id": "",
“可再生”:假的,
"lease_duration": 0,
“数据”: {
“数据”: {
“名称”:“ABC”
},
“元数据”:{
"created_time": "...",
"deletion_time": "",
“销毁”:假的,
“版本”:1
}
}
现在我想使用 Spring Cloud Vault Dependency 来解决问题。请给我提供正确的插图来完成这项工作?
假设您正在 运行 正在 spring 启动并为您的应用程序配置了一个工作的 Vault 服务器。
添加spring Cloud Vault Maven 依赖项
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
将保管库配置添加到 bootstrap.yaml
spring:
application:
name: abc
cloud:
vault:
host: <vault-server-hostname>
port: <vault-server-port>
scheme: HTTPS
namespace: <name-of-vault-namespace>
authentication: APPROLE
app-role:
role-id: <your-application-role-id>
secret-id: <your-application-secret-id>
role: <your-application-role>
如果您 运行 您的应用具有 spring 个配置文件,例如 dev,它将被拾取并添加到保险库路径。
现在您应该能够使用 @Value("${<name-of-property>}
注入存储在路径 secret/data/abc/dev
上的秘密
在我的应用程序中,我们从我的应用程序进行两次调用以从 Vault 获取机密,如下所示:
登录 Vault : POST 调用 https::/v1/auth/approle/login -- 它将使用 role_id 和 secret_id 作为有效负载和响应是 client_token.
获取机密:GET 调用 https::/v1/secret/data/abc/dev/xyz.json -- 它将 headers 作为 X-Vault-Token 和 X-Vault-Namespace 它会给你如下的回应:
{ "request_id": "......", "lease_id": "", “可再生”:假的, "lease_duration": 0, “数据”: { “数据”: { “名称”:“ABC” }, “元数据”:{ "created_time": "...", "deletion_time": "", “销毁”:假的, “版本”:1 } }
现在我想使用 Spring Cloud Vault Dependency 来解决问题。请给我提供正确的插图来完成这项工作?
假设您正在 运行 正在 spring 启动并为您的应用程序配置了一个工作的 Vault 服务器。
添加spring Cloud Vault Maven 依赖项
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
将保管库配置添加到 bootstrap.yaml
spring:
application:
name: abc
cloud:
vault:
host: <vault-server-hostname>
port: <vault-server-port>
scheme: HTTPS
namespace: <name-of-vault-namespace>
authentication: APPROLE
app-role:
role-id: <your-application-role-id>
secret-id: <your-application-secret-id>
role: <your-application-role>
如果您 运行 您的应用具有 spring 个配置文件,例如 dev,它将被拾取并添加到保险库路径。
现在您应该能够使用 @Value("${<name-of-property>}
secret/data/abc/dev
上的秘密