问题标签 [spring-vault]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
235 浏览

java - 在 Pivotal Cloud Foundry 上为 SpringBoot 应用程序外部化 Vault 令牌/后端配置

我需要外部化 Vault 令牌和后端以在我的 SpringBoot/Cloud 应用程序中使用,以便可以将相同的二进制文件部署到不同的 Pivotal Cloud Foundry 空间。例如我有一个.jar我想要的push,,,,Dev空间TestQAPROD不必重建.jar

我也有一个由repo 和aConfigServer支持的,它可以保存信息,但它只是移动了外部化问题,它并不能解决它。它会导致更多问题,特别是创建对象的顺序。gitUser Provided Service

我正在努力获取相关信息,例如vault tokenvault backend使用.jar.

我能找到的所有示例都使用bootstrap.propertiesorapplication.yml

这显然是行不通的,因为它嵌入在环境中,.jar并且是特定于环境的。

使用默认 Spring 魔术绑定的解决方案将不起作用,因为我需要使用VaultTemplate.

将如何连接到 Vault 的客户端配置外部化并读取秘密的最惯用方法是什么,VaultTemplate而我不必 .jar为每个环境重新构建它们。

0 投票
1 回答
1248 浏览

spring - 我什么时候需要将 Spring Cloud Config 与 Vault 一起使用,而不仅仅是使用 Spring Cloud Vault?

我在一个我们正在使用的项目中Spring Cloud Config Server with Vault backend,我不知道为什么我们需要云配置服务器。在我尝试将它转移到一个更简单的实现之前Spring Cloud Vault,我想知道我是否有理由保留它Spring Cloud Config with Vault

我知道已经有一个类似的问题,但它没有回答为什么我们会使用另一个:Spring Cloud Vault 和 Spring Cloud Config with Vault backend 之间的区别

0 投票
1 回答
474 浏览

java - Hashicorp Vault 加密数据

可以Hashicorp Vault加密数据吗?我现在使用 Vault 作为密钥存储,但 Vault 是否能够为应用程序加密数据?

场景:我的客户端是一个java应用,通过Vault的Java spring API访问Vault。java是否能够向Vault发送一个大/长字符串并接收该字符串的加密版本?换句话说,使用 Vault 作为加密器和解密器服务。

0 投票
1 回答
292 浏览

java - Hashicorp Vault 让 Vault 生成几个关键值

我正在使用 Hashicorp Vault 和 java spring Vault,试图生成几个键值对。执行此操作的最佳方式(或保管库 API)是什么?理想情况下,这个键值对是在 Vault 中生成的。

Java 只能访问(或需要知道)key-part,它是对真正秘密的引用,即 value-part。

例如: 从 java initalizeSecret() -> Vault 创建键值对 -> 将键部分返回给 java。

0 投票
1 回答
466 浏览

java - Vault Spring 客户端保持与 Vault 的连接

我有一个使用 Vault 来保密的 spring-boot 应用程序。与保险库的连接是通过带有 @VaultPropertySource 注释的专用类进行的。连接配置在 bootstrap.yaml 文件中。我只需要在应用程序启动时连接来读取所有机密,但我看到 spring 在整个应用程序生命周期中不断检查连接性,所以如果我关闭保险库,我的应用程序会因为连接丢失而崩溃。所以我的问题是,如何配置 spring 在应用程序启动后不保持连接。

注意:我知道快速失败配置,但这是非常通用的配置。我希望如果启动时没有连接来读取机密,我的应用程序将失败,但我不想在整个应用程序生命周期中都依赖保险库。

0 投票
1 回答
525 浏览

java - 使用带有用户名和密码的 VaultTemplate

我正在关注 Spring Vault 教程https://docs.spring.io/spring-vault/docs/current/reference/html/index.html并且我已经通过令牌访问成功地将 Java 程序与 Vault 连接起来。在下图中,选项卡编号 1。

VaultTemplate vaultTemplate = new VaultTemplate(endpoint, new TokenAuthentication("MySecretToken"));

如何使用用户名和密码实例化 VaultTemplate,例如当我们在此选项中通过 Vault WebUI 登录时(选项卡编号 2)?: 在此处输入图像描述

我正在查看这个 JavaDoc,但选择哪一个并不明显: https ://docs.spring.io/spring-vault/docs/current/api/index.html?overview-summary.html

所以换句话说:我如何使用spring-vault,使用用户名+密码而不是令牌连接Vault?或者至少,我需要一个关于如何使用用户名+密码生成令牌的指针

0 投票
2 回答
479 浏览

spring - Spring Cloud Vault 在 API 密钥未投入生产时使用本地环境变量

我正在使用 Spring Cloud Vault 在生产中存储 API 密钥。

从阅读spring.io 博客看来我可以使用

访问保管库中的该密钥。

在生产中这很好,但是有没有一种方法可以设置默认值/设置可在本地用于开发的 apiKey 的其他方式?(如果可能的话,最好在保险库之外)

0 投票
2 回答
4416 浏览

java - Spring Vault 客户端 - 无法连接到本地开发 Vault 服务器

我在本地安装了 Vault。根据这个官方教程https://learn.hashicorp.com/vault/ ,我能够启动本地开发服务器并将一些秘密写入/读取到 Vault kv

然后我想创建一些非常基本的 Java/Spring Boot 演示客户端,它可以连接到我的本地 Vault 开发服务器以写入/读取机密。我阅读了 Baeldung 教程以获取灵感https://www.baeldung.com/spring-vault

这是我的 Vault-config.properties:

vault.uri= http://127.0.0.1:8200

vault.token=s.EXg6MQwUuB63Z7Xra4zybOut(最近一次启动服务器后生成的token)

然后服务类:

配置类:

和这个:

一个域对象:

最后是我的主要 Spring Boot 类:

主类应写入秘密,然后立即读取并打印用户名。但我收到此错误消息:

出现意外错误(类型=内部服务器错误,状态=500)。“ https://host:8200/v1/credentials/myapp的 POST 请求出现 I/O 错误:主机;嵌套异常是 java.net.UnknownHostException: host

有人知道可能出了什么问题吗?

编辑:根据 Arun 的建议,我遵循了本教程https://drissamri.be/blog/java/enable-https-in-spring-boot/

我一直在尝试这两种方法。1)修改application.properties:

修改后,当我调用https://localhost:8443时,我得到 Exception: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 在 sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710) ~[na:1.8.0_121] 在 sun.security.ssl.InputRecord.read(InputRecord.java:527) ~[na:1.8.0_121]在 sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) ~[na:1.8.0_121] 在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[na:1.8.0_121]在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[na:1.8.0_121] 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[na:1.8.0_121]

2)基于教程的第二种方法是添加 ConnectorConfig 类:

但是在调用 localhost:8090 将我重定向到https://localhost:8443之后,我得到了同样的错误: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 在 sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710) ~

现在的问题是:我是否还必须在 Vault 端配置一些关于证书的东西?或者您认为 Java 客户端可能存在一些证书问题?但是我觉得如果有 Java 证书问题,在启动过程中就会抛出异常。

0 投票
1 回答
316 浏览

jakarta-ee - hashcorp vault 可以嵌入到 Java Web 应用程序中吗

我们计划使用 HashiCorp 的保险库来使用键值对 v2 引擎存储机密。目前,我可以按照教程中的说明将 Vault 作为单独的服务器启动,但是有没有办法在 Java Web 应用程序中嵌入/捆绑 Vault,因为我们不喜欢让它单独运行的想法。我知道它更好,但只是想知道是否有可能嵌入它

在客户端,我将使用 spring-vault 来访问和存储机密。我尝试了使用 spring-vault 添加和检索秘密的基本操作,它运行良好。

0 投票
2 回答
1204 浏览

spring-vault - 如何使版本化的 KV 存储与 VaultPropertySource 一起使用

我正在尝试使 Vault 的版本化 KV 存储与 VaultPropertySource 一起使用,以便可以使用 @Value 访问属性。但是它没有按预期工作。我正在使用 spring-vault-core 的 2.1.2.RELEASE 版本。目的是让它与 spring vault 和 Spring MVC 一起工作。

我已经尝试过 @import(EnvironmentVaultConfiguration.class) 无济于事。

在给定的代码中,如果我提供, 那么它可以工作并返回带有和前缀的vault.sources=secret/data/abcd,secret/data/pqrs 秘密。这意味着它使用通用方法来获取秘密,而不是 kv 一。data.metadata.

如果我从路径 ie 中删除数据vault.sources=secret/abcd,secret/pqrs,它根本不会连接并抛出 403 异常。这意味着它不能使用 kv v2。

有人可以帮助我如何在这段代码中使用 spring-vault 的版本化 API 吗?