0

在 Vault 文档中,特别是政策页面,有这样一句话:

Vault 中的所有内容都是基于路径的,策略也不例外

我想知道这句话,这是否意味着在 Vault 的体系结构及其内部结构中,一切都是路径,类似于 Linux 体系结构中的“一切都是文件”,适用于进程、文件、目录、套接字、管道, ETC?

让我与这句话相关的是秘密引擎是由路径定义的,我假设 Vault 推断它们的类型以及从给定路径中使用的类型。策略也是相关的,因为您必须为每个策略定义确切的路径,但是其他组件,如身份验证方法、审计、令牌等呢?

我只想了解“Vault 中的一切都是基于路径”短语中“基于路径”的含义。

4

2 回答 2

1

在 Vault 中,一切都是基于路径的。这意味着在 Vault 中执行的每个操作都是通过路径完成的。路径用于确定操作的位置,以及执行操作所需的权限。

于 2022-01-30T20:04:23.130 回答
1

无论您是使用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

这是另一个例子:

  • gcp使用自定义路径启用秘密引擎:
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的文本ttlmax_ttl

因此,为什么他们 Vault 说一切都是基于路径的。

编辑:TL;DR - 基于路径的 HTTP API 和 CLI(或任何 SDK)之间存在奇偶校验。将此与gcloudoraws命令与其 HTTP API 端点对应项进行比较,那里没有太多奇偶校验。

于 2022-01-30T20:25:51.127 回答