无论您是使用vault
二进制文件还是访问 HTTP API 端点,机密/配置都会写入路径。
即通过cli:
VAULT_ADDR=https://myvault.example.com VAULT_TOKEN=xxxxxxxx-xxxxxxx-xxxxxx vault kv get mysecrets/passwords/root
将对应于 HTTP 端点:
curl \
-H "X-Vault-Token: xxxxxxx-xxxxxx-xxxxxxx" \
-X GET \
https://myvault.example.com/v1/mysecrets/passwords/root
这是另一个例子:
vault secrets enable -path=”my-project-123” gcp
如果您想从 HTTP API 启用秘密引擎,端点(路径)是/sys/mounts
. 详情在这里。
vault write my-project-123/config credentials=@/path/to/creds.json ttl=3600 max_ttl=21600
请注意配置是如何写入路径的,如果您要使用 HTTP API 端点来执行此操作,那么它看起来像这样:
curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
https://myvault.example.com/v1/my-project-123/config
payload.json 将包含您credentials
的文本ttl
,max_ttl
因此,为什么他们 Vault 说一切都是基于路径的。
编辑:TL;DR - 基于路径的 HTTP API 和 CLI(或任何 SDK)之间存在奇偶校验。将此与gcloud
oraws
命令与其 HTTP API 端点对应项进行比较,那里没有太多奇偶校验。