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

hashicorp保险库代理模板在以“无已知机密ID”启动时失败

盖和洽
2023-03-14

使用模板启动存储库代理:

vault agent -config=templates/config.hcl -log-level=debug
path "my-app/data/testsecret/*" {
  capabilities = ["create", "update", "read"]
}

path "my-app/metadata/testsecret/*" {
  capabilities = ["list"]
}
pid_file = "./pidfile"

vault {
  address = "http://XX.XX.XX.XX:XXXX"
}

auto_auth {
  method {
    type      = "approle"

    config = {
      role_id_file_path = "templates/roleid"
      secret_id_file_path = "templates/secretid"
    }
  }

  sink {
    type = "file"

    config = {
      path = "templates/file-foo"
    }
  }
}

template {
  source      = "templates/template.ctmpl"
  destination = "templates/render.txt"
}
{{ with secret "my-app/data/testsecret" }}
passwd: {{ .Data.data.passwd }}
{{ end }}
$ vault kv get my-app/testsecret
====== Metadata ======
Key              Value
---              -----
created_time     2020-10-22T07:18:48.205108671Z
deletion_time    n/a
destroyed        false
version          6

===== Data =====
Key       Value
---       -----
passwd    cat

秘密是kv V2:

$ vault secrets list --detailed |grep my-app
my-app/       kv           kv_5898e685           system         system     false             replicated     false        false                      map[version:2]    n/a                                                        cd436e93-db3b-c317-1c31-6967c7b25764

共有1个答案

万俟修诚
2023-03-14

最后,我可以重新创建secret-id来解决这个问题:

vault write -f auth/approle/role/test-role/secret-id

并覆盖secret_id_file_path(templates/secretid),然后模板就被呈现了!!!

 vault agent -config=templates/config.hcl
==> Vault agent started! Log data will stream in below:

==> Vault agent configuration:

                     Cgo: disabled
               Log Level: info
                 Version: Vault v1.5.4
             Version Sha: 1a730771ec70149293efe91e1d283b10d255c6d1

2020-10-22T13:28:59.096+0200 [INFO]  sink.server: starting sink server
2020-10-22T13:28:59.096+0200 [INFO]  auth.handler: starting auth handler
2020-10-22T13:28:59.097+0200 [INFO]  auth.handler: authenticating
2020-10-22T13:28:59.096+0200 [INFO]  template.server: starting template server
2020/10/22 11:28:59.097331 [INFO] (runner) creating new runner (dry: false, once: false)
2020/10/22 11:28:59.097874 [INFO] (runner) creating watcher
2020-10-22T13:28:59.125+0200 [INFO]  auth.handler: authentication successful, sending token to sinks
2020-10-22T13:28:59.125+0200 [INFO]  auth.handler: starting renewal process
2020-10-22T13:28:59.125+0200 [INFO]  template.server: template server received new token
2020/10/22 11:28:59.125672 [INFO] (runner) stopping
2020/10/22 11:28:59.125710 [INFO] (runner) creating new runner (dry: false, once: false)
2020/10/22 11:28:59.125847 [INFO] (runner) creating watcher
2020/10/22 11:28:59.125955 [INFO] (runner) starting
2020-10-22T13:28:59.161+0200 [INFO]  auth.handler: renewed auth token
2020/10/22 11:28:59.251586 [INFO] (runner) rendered "templates/render.txt" => "templates/_env"
 类似资料:
  • 问题内容: 有没有一种简单的方法可以在进行测试时模拟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与示例类似: 而且也管用!我的应用程

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

  • 我正在寻找一个更好的解决方案的秘密旋转和发现保险库动态秘密是一个很好的一个。通过启用秘密引擎,例如数据库,应用程序/服务可以租赁动态秘密。 我注意到每次应用程序租用数据库机密时,Vault都会在数据库中创建一个新的用户/帐户。我明白,每个应用程序/服务需要是一个好公民,并根据租赁时间使用秘密。然而,在微服务环境中,实现bug可能导致服务请求太多动态机密,从而触发在数据库中创建太多帐户。 有什么方法

  • 为此挣扎了一天,终于寻求帮助了。我试图使用Azure密钥库在Typescript应用程序中存储一些配置。我在Azure Active Directory中创建了一个服务原则和一个密钥库。在Key Vault中,我进入了角色分配,并给了应用程序角色Key Vault秘密用户(应该提供列表和读取权限)。据我所知,我的应用程序正在成功地进行身份验证,但当它请求一个秘密时,它得到了一个403。我会漏掉哪一

  • 我需要存储用户提供给我的非常敏感的秘密(用户名+密码+证书以验证进入第三方API)。 我首先考虑的是AWS秘密管理器,它非常昂贵,而且IMHO主要用于基础设施机密(数据库密码、API密钥……),而不是客户提供的机密。现在,我正在决定使用AWS KMS(以及使用信封加密将加密的机密存储在数据库(AWS RDS)中)和Hashicorp Vault。 https://www.vaultproject.