当前位置: 首页 > 知识库问答 >
问题:

如何在spring boot中使用非根保险库令牌进行保险库登录

卫景明
2023-03-14

我对保险库使用默认令牌身份验证方法。同时在Spring Boot应用程序中集成了vault和spring cloud config server。根令牌有超级用户访问,这使得能够为应用程序读/写机密,但我需要创建一个非根令牌,它只登录到保险库,不读/写任何机密。这样就不会强制使用vault,并且应用程序使用vault启动。当用户特别想使用vault时,可以提供自己的令牌和访问秘密。

共有1个答案

长孙翔
2023-03-14

这是我还没有尝试过的,但我已经使用了限制非根令牌的读访问。

您可以创建具有deny功能的策略,如下所示:

$cat auth-policy.hcl 
path "secret/*" {
  capabilities = ["deny"]
}


vault policy write client-access auth-policy.hcl                         
Success! Uploaded policy: client-access

下面是为保险库策略定义的不同功能--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_ttldefault_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"

希望这能有所帮助!

 类似资料:
  • 问题内容: 有没有一种简单的方法可以在进行测试时模拟Hashicorp保险库? 我在Go中创建了一个可访问保险柜的服务,并希望为其创建适当的测试。 我没有找到我喜欢的简单解决方案(例如python中的moto)。我还尝试在docker中以dev模式使用Vault(采用系统测试路线),但我无法通过API写入文件。想法? 问题答案: 有没有一种简单的方法可以在Go测试中模拟HashiCorp Vaul

  • 我正在测试Vault+Consul之间的集成,以保存我的秘密并将它们存储在多台机器中。我可以看到和插入/检索我的秘密从保险库没有问题。 现在,我正在尝试配置SpringCloud来使用来自Vault的秘密(我浏览了https://cloud.spring.io/spring-cloud-vault/reference/html/),我的bootstrap.yml与示例类似: 而且也管用!我的应用程

  • 我正在运行以下命令:运行vaultQuery contractStateType:com . R3 . corda . lib . accounts . contracts . States . account info 并得到这个错误:无法解析为命令:无法构造实例的,问题:com.r3.corda.lib.accounts.contracts.states.AccountInfo[来源:UNKN

  • 基本上我们可以有一个只能读取一次的金库密钥吗?

  • 在我的应用程序中,我们从我的应用程序中发出两个调用,以从Vault获取机密,如下所示: > 登录到保险库:将调用发送到https:://v1/auth/approle/login--它将以role_id和secret_id作为有效负载,响应将是client_token。 Fetch secrets:调用https:://v1/secret/data/abc/dev/xyz.json--它将头作为X

  • 我正在考虑在不久的将来在谷歌Kubernetes引擎上部署一个集群。我也一直在研究使用Hashicorp的Vault来管理我的集群可以访问的秘密。具体地说,我想利用动态秘密来提高安全性。 有更多使用Kubernetes和/或Vault经验的人能指出这种方法的任何潜在缺点吗?谢谢你。