如何使用Spring Boot对Vault使用AppRole身份验证



在我的应用程序中,我们从应用程序中进行两次调用,以从Vault获取机密,如下所示:

  1. 登录Vault:POST调用https://v1/auth/apprle/Login--它将以role_id和secret_id作为有效负载,响应将为client_token。

  2. 获取机密:GET调用https::/v1/secret/data/abc/dev/xyz.json--它将把头作为X-Vault-Token和X-Vault-Namespace,它将向您提供如下响应:

    {"request_id":";,"lease_id":";,"可再生":false,"lease_duration":0,"数据":{"数据":{"name":"ABC";},"元数据":{"created_time":";,"deletion_time":";,"销毁":false,"版本":1.}}

现在我想使用Spring Cloud Vault Dependency来完成它。请为我提供正确的插图来完成这项工作?

假设您正在运行spring-boot,并且为您的应用程序配置了一个工作的Vault服务器。

添加spring cloud vault maven依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>

向引导程序添加保管库配置。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,它将被拾取并添加到vault路径中。

现在,您应该能够使用@Value("${<name-of-property>}注入存储在路径secret/data/abc/dev上的机密

最新更新