【问题标题】:How can I access a Vault secret using a token created from a policy?如何使用从策略创建的令牌访问 Vault 机密?
【发布时间】:2019-04-11 20:32:47
【问题描述】:

我在开发人员模式下的 docker 容器中本地运行 Hashicorp Vault v1.1.0。我 exec 进入容器以使用 cli,但我无法使用仅允许我访问一个秘密的策略和令牌完成基本概念证明。

以下是我使用 v2 秘密引擎所采取的行动的记录。我在这里做错了什么?

/ # VAULT_TOKEN=myroot vault kv enable-versioning secret/
Success! Tuned the secrets engine at: secret/


/ # VAULT_TOKEN=myroot vault kv put secret/message value=mypassword
Key              Value
---              -----
created_time     2019-04-11T20:23:25.0149145Z
deletion_time    n/a
destroyed        false
version          5

/ # cat p.hcl
path "secret/message" {
     capabilities = ["read"]
}

/ # VAULT_TOKEN=myroot vault policy write message-readonly p.hcl
Success! Uploaded policy: message-readonly

/ # VAULT_TOKEN=myroot vault token create -policy="message-readonly"
Key                  Value
---                  -----
token                s.hZNCq7Q5plwA4XjcGAcsd5tg
token_accessor       vpcxkGMbDBswfJPTGzzfY4he
token_duration       768h
token_renewable      true
token_policies       ["default" "message-readonly"]
identity_policies    []
policies             ["default" "message-readonly"]

/ # VAULT_TOKEN=s.hZNCq7Q5plwA4XjcGAcsd5tg vault kv get secret/message
Error reading secret/data/message: Error making API request.

URL: GET http://127.0.0.1:1234/v1/secret/data/message
Code: 403. Errors:

* 1 error occurred:
    * permission denied


/ #

【问题讨论】:

    标签: hashicorp-vault


    【解决方案1】:

    当您为 KV 后端的版本 2 制定策略时,您需要指定 API 路径,而不是“vault kv”使用的逻辑路径。您的政策应如下所示:

        path "secret/data/message" {
             capabilities = ["read"]
        }
    

    在制定 KV2 策略时,您还需要注意许多其他问题。请参阅https://www.vaultproject.io/docs/secrets/kv/kv-v2.html 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-01
      • 2020-09-25
      • 1970-01-01
      • 2019-09-07
      • 2011-10-22
      • 2021-11-15
      • 2017-07-11
      • 2020-08-11
      相关资源
      最近更新 更多