标签: spring-vault

Vault 错误,服务器向 HTTPS 客户端提供 HTTP 响应

我将 Hashicorp 保险库用作机密存储,并通过 Ubuntu 20.04 上的 apt 存储库安装它。

之后,我添加了访问 UI 的根密钥,并且可以使用 UI 添加或删除机密。

每当我尝试使用命令行添加或获取机密时,都会收到以下错误:

jarvis@saki:~$ vault kv get secret/vault 
Get "https://127.0.0.1:8200/v1/sys/internal/ui/mounts/secret/vault": http: server gave HTTP response to HTTPS client
Run Code Online (Sandbox Code Playgroud)

我的保险库配置如下所示:

# Full configuration options can be found at https://www.vaultproject.io/docs/configuration

ui = true

#mlock = true
#disable_mlock = true

storage "file" {
  path = "/opt/vault/data"
}

#storage "consul" {
#  address = "127.0.0.1:8500"
#  path    = "vault"
#}

# HTTP listener
#listener "tcp" {
#  address = "127.0.0.1:8200"
#  tls_disable = …
Run Code Online (Sandbox Code Playgroud)

spring hashicorp-vault spring-vault

17
推荐指数
2
解决办法
1万
查看次数

Spring Vault Harshicorp 与 Cyber​​-ark 集成

我正在尝试使用 Spring Vault 提供集中式服务,为我们的微服务生态系统提供存储和检索凭证信息的功能。然而,我们的组织目前使用 cyber-ark 来集中凭证,所以我正在寻找的是构建一个基于 Spring Vault 的抽象服务,并为 Harshicorp Vault 使用 cyber-arkas 存储引擎。

cyber-ark spring-boot spring-cloud hashicorp-vault spring-vault

7
推荐指数
1
解决办法
3297
查看次数

当我尝试使用 AWS IAM 角色连接 HashiCorp Vault 时,如何修复“Vault location [kv/my-client-service] 无法解析:未找到”?

我已经使用 HashiCorp Vault 六个月了,我的所有秘密都来自配置服务。我正在使用spring.cloud.config.token连接我所有的客户端服务,但是当保险库令牌每 30 天左右过期时,问题就出现了。对于较低的环境,令牌到期是可以接受的,因为我们可以一次又一次地重新部署,但生产,我们不能重新部署。因此,决定使用 AWS IAM 角色,可以连接到保管库并且不会有任何过期。

我已关注此官方 链接,但在启动应用程序时遇到以下问题。

在此处输入图片说明

我已经用谷歌搜索了它,但没有得到一个有效的解决方案。

我在我的客户端服务 (my-client-service) 的 bootstrap.yml 文件中使用以下代码

引导程序.yml

spring:
  application:
    name: my-client-service
  cloud:
    config:
      enabled: true
      uri:  'https://localhost:8080' 
    vault:
      enabled: true
      uri: 'https://localhost:8090'
      port: 443
      scheme: https
      namespace: 'vault-namespace/aus'
      authentication: AWS_IAM
      fail-fast: true
      aws-iam:
        role: aus-vault-role
        aws-path: aws
      generic:
        enabled: true
        backend: kv
        profile-separator: '/'
        default-context: my-client-service
        application-name: my-client-service
      config:
        order: -1000
Run Code Online (Sandbox Code Playgroud)

Vault 身份验证 ARN 到 AWS

vault write auth/aws/config/sts/<account_number> sts_role=arn:aws:iam::<account_number>:role/role_name
Run Code Online (Sandbox Code Playgroud)

将 ARN 与保险柜策略相关联

我为同一个账户创建了一个 IAM 角色,该角色映射到一个 …

amazon-web-services amazon-iam spring-cloud hashicorp-vault spring-vault

7
推荐指数
1
解决办法
898
查看次数

引起:java.lang.IllegalArgumentException:令牌(spring.cloud.vault.token)不能为空 - Hashicorp Vault

我正在以下Vault Configuration示例中引用:https://spring.io/guides/gs/vault-config/。当我执行代码时,出现以下错误。

错误:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'vaultPropertySourceLocator' defined in class path resource [org/springframework/cloud/vault/config/VaultBootstrapPropertySourceConfiguration.class]: Unsatisfied dependency expressed through method 'vaultPropertySourceLocator' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'vaultTemplate' defined in class path resource [org/springframework/cloud/vault/config/VaultBootstrapConfiguration.class]: Unsatisfied dependency expressed through method 'vaultTemplate' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'vaultSessionManager' defined in class path resource [org/springframework/cloud/vault/config/VaultBootstrapConfiguration.class]: Unsatisfied dependency expressed through method 'vaultSessionManager' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: …
Run Code Online (Sandbox Code Playgroud)

spring hashicorp-vault spring-vault

6
推荐指数
1
解决办法
1万
查看次数

使用Spring Vault写入对象返回状态400:未提供数据

我正在研究如何使用Vault 0.11.1和Spring Vault 2.0.2.RELEASE。我已经建立了一个开发保管箱:

vault server -dev
Run Code Online (Sandbox Code Playgroud)

并添加了一些数据

vault kv put secret/certs/jan cert=ABCD
Run Code Online (Sandbox Code Playgroud)

我可以在Spring Vault中阅读

      @Autowired
      private VaultOperations operations;

            String path = "secret/data/certs/jan";
            System.out.println(operations.read(path).getData());
Run Code Online (Sandbox Code Playgroud)

注意,奇怪的是,我必须在路径中插入“ data /”才能再次找到它。

删除数据也可以:

            operations.delete(path);
Run Code Online (Sandbox Code Playgroud)

但是用写数据

            Secret secret = new Secret("ABCD");
            operations.write(path, secret);
Run Code Online (Sandbox Code Playgroud)

失败于

org.springframework.vault.VaultException: Status 400 secret/data/certs/jan: no data provided
Run Code Online (Sandbox Code Playgroud)

秘密是一个简单的bean:

@AllArgsConstructor
@NoArgsConstructor
@Data
public class Secret {
    String cert;
}
Run Code Online (Sandbox Code Playgroud)

和杰森转换似乎很好:

DEBUG org.springframework.web.client.RestTemplate - Writing [Secret(cert=ABCD)] using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@add0edd]
Run Code Online (Sandbox Code Playgroud)

只是想写一个字符串

            operations.write(path, "foo=bar");
Run Code Online (Sandbox Code Playgroud)

也失败:

Status 400 secret/data/certs/jan: failed to parse JSON input: invalid character 'o' in …
Run Code Online (Sandbox Code Playgroud)

java spring-vault

3
推荐指数
1
解决办法
890
查看次数

Spring boot从属性文件加载包列表

我使用 Spring boot 设置了项目,在启动时加载各个组件。每个单独的包都包含自己的数据源、进程等。我可以简单地使用它,它工作得很好

@SpringBootApplication(scanBasePackages = {
    "com.package1",
    "com.package2",
    "com.package3"
})
public class Application extends SpringBootServletInitializer{
    public static void main(String[] args){
        SpringApplication.run(Application.class,args)        
    }
}
Run Code Online (Sandbox Code Playgroud)

但目前,单个项目的数量正在变得越来越大。是否可以将要扫描的组件/包列表放入外部属性文件或 spring Vault 中?我不确定如何检索它,是否可以在启动前检索属性?


编辑:

目前我尝试过这个:

@Import(AppConfig.class)
public class Application extends SpringBootServletInitializer{
    public static void main(String[] args){
        SpringApplication.run(Application.class,args)        
    }
}


@Configuration
@ComponentScan(basePackages = {$app.packages})
@EnableAutoConfiguration
public class AppConfig {
}

//in my properties file
app.packages = ["com.package1","com.package2","com.package3"]
Run Code Online (Sandbox Code Playgroud)

但它不起作用

java package java-8 spring-boot spring-vault

3
推荐指数
1
解决办法
2495
查看次数

Vault .NET - 版本化 K/V 秘密引擎的路径无效

我已将所有配置详细信息添加到 Vault 中。您可以在下面的附图中看到详细信息。这遵循特定的路径,即kv/unistad/dev/workflow/camunda/1.0

在此输入图像描述

但是,当我尝试使用Vault.NET和以下 nuget 包读取此信息时

Install-Package Vault
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样:

var endpoint = "http://openblue-bridge.com:32270";
var token = "s.inklpUdNxet1ZJtaCLMpEIPA";

var vaultClient = new VaultClient(new Uri(endpoint), token);

string project = "unistad";
string environment = "dev";
string appVersion = "1.0";
var secretPath = $"kv/{project}/{environment}/workflow/camunda/{appVersion}";
// Use client to read a key-value secret.
var secrets = await vaultClient.Secret.Read< Dictionary<string, string>> (secretPath);
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,出现以下错误:

版本化 K/V 秘密引擎的路径无效。请参阅 API 文档以了解要使用的适当 API 端点。如果使用 Vault CLI,请使用“vault kv get”执行此操作。

我不知道如何修复这个错误。任何帮助将非常感激。

azure-keyvault hashicorp-vault spring-vault consul-kv vault

2
推荐指数
1
解决办法
7569
查看次数

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

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

  1. 登录 Vault :对 https::/v1/auth/approle/login 进行 POST 调用——它将以 role_id 和 Secret_id 作为负载,响应将是 client_token。

  2. 获取机密:对 https::/v1/secret/data/abc/dev/xyz.json 进行 GET 调用 - 它将采用 X-Vault-Token 和 X-Vault-Namespace 标头,并给出如下响应:

    { "request_id": "......", "lease_id": "", "renewable": false, "lease_duration": 0, "data": { "data": { "name": "ABC" }, "元数据": { "created_time": "...", "deletion_time": "", "destroyed": false, "version": 1 } }

现在我想使用 Spring Cloud Vault Dependency 来使事情通过它进行。请为我提供适当的插图来完成这项工作?

spring-boot hashicorp-vault spring-vault

1
推荐指数
1
解决办法
5917
查看次数

保险库。春天。无法识别的 SSL 消息、明文连接/

我正在尝试在 bean 中运行 Vault 容器,并使用它来创建 VaultTemplate bean 以进一步在测试中使用

@TestConfiguration
@TestPropertySource("classpath:application.yml")
public class TestsConfiguration {

    @Container
    public static VaultContainer vaultContainer = new VaultContainer();


    @Bean
    @Order(1)
    public VaultEndpoint vaultEndpoint() {
        vaultContainer
                .withVaultToken("00000000-0000-0000-0000-000000000000")
                .withExposedPorts(8200);
        vaultContainer.start();
        return VaultEndpoint.create(vaultContainer.getContainerIpAddress(), vaultContainer.getMappedPort(8200));
    }

    @Bean
    @Order(2)
    public VaultTemplate vaultTemplate(VaultEndpoint vaultEndpoint) {
        return new VaultTemplate(vaultEndpoint, new TokenAuthentication("00000000-0000-0000-0000-000000000000"));
    }


}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试通过 VaultOperations 编写一些 kv 时,我得到:

“https://localhost:32998/v1/my/secret”的 GET 请求出现 I/O 错误:无法识别的 SSL 消息,纯文本连接?;嵌套异常是 javax.net.ssl.SSLException:无法识别的 SSL 消息,纯文本连接?

我怎么解决这个问题?

testing spring containers hashicorp-vault spring-vault

0
推荐指数
1
解决办法
1082
查看次数