Secrets API - 用户指南¶
secrets 资源是 barbican 服务的核心。它提供对系统中存储的密钥/密钥材料的访问。
Barbican 支持安全地存储各种内容类型的的数据。
本指南将假定您正在使用 barbican 的本地运行开发环境。 如果您需要设置方面的帮助,请参考 开发指南。
什么是 Secret?¶
Secret 是存储在 barbican 中的单一项目。Secret 可以是您想要的任何东西;但是,正式用例是您希望远离窥探的密钥。
- Secret 的一些示例可能包括
私钥
证书
密码
SSH 密钥
就本用户指南而言,我们将使用一个简单的纯文本 secret。如果您想更详细地了解 secret 参数、响应 和 状态码,您可以参考 secret 参考 文档。
如何创建 Secret¶
单步 Secret 创建¶
我们将创建的第一个 secret 是一个单步 secret。使用单步操作,barbican 期望用户提供要存储在 secret 本身中的有效负载。创建带有有效负载的 secret 后,就无法更新它。在本例中,我们将提供一个纯文本 secret。有关创建 secret 的更多信息,您可以查看 POST /v1/secrets 部分。
curl -X POST -H "content-type:application/json" -H "X-Auth-Token: $TOKEN" \
-d '{"payload": "my-secret-here", "payload_content_type": "text/plain"}' \
https://:9311/v1/secrets
这应该提供如下响应
{"secret_ref": "https://:9311/v1/secrets/2a549393-0710-444b-8aa5-84cf0f85ea79"}
这是我们的 secret 参考。我们需要它才能在后续步骤中检索 secret。跳转到 如何检索 Secret 以确保我们的 secret 已按预期存储。
两步 Secret 创建¶
我们将创建的第二个 secret 是一个两步 secret。两步 secret 将允许用户首先创建一个 secret 参考,但稍后上传 secret 数据。在本例中,我们不会提供有效负载。
curl -X POST -H "content-type:application/json" -H "X-Auth-Token: $TOKEN" \
-d '{}' https://:9311/v1/secrets
这应该提供如下响应
{"secret_ref": "https://:9311/v1/secrets/2a549393-0710-444b-8aa5-84cf0f85ea79"}
现在我们已经有了 secret 参考,我们可以更新 secret 数据。
如何更新 Secret¶
要更新 secret 数据,我们需要知道通过初始创建提供的 secret 参考。(有关更多信息,请参见 两步 Secret 创建。)在下面的示例中,secret ref 来自上一个示例。您必须用您自己的替换 /secrets/ 之后的 uuid 才能更新 secret。
curl -X PUT -H "content-type:text/plain" -H "X-Auth-Token: $TOKEN" \
-d 'my-secret-here' \
https://:9311/v1/secrets/2a549393-0710-444b-8aa5-84cf0f85ea79
不会提供任何响应。这是预期行为!如果您收到响应,则说明出现问题,您必须在继续操作之前解决该问题。(有关更多信息,请访问 PUT /v1/secrets/{uuid} 。)
如何检索 Secret¶
要检索我们创建的 secret,我们需要知道通过初始创建提供的 secret 参考(参见 如何创建 Secret)。
curl -H "Accept: text/plain" -H "X-Auth-Token: $TOKEN" \
https://:9311/v1/secrets/2a549393-0710-444b-8aa5-84cf0f85ea79/payload
这应该提供如下响应
my-secret-here
这是我们在 secret 初始创建时提供的纯文本数据。
如何删除 Secret¶
要删除 secret,我们需要知道通过初始创建提供的 secret 参考(参见 如何创建 Secret)。
curl -X DELETE -H "X-Auth-Token: $TOKEN" \
https://:9311/v1/secrets/2a549393-0710-444b-8aa5-84cf0f85ea79
不会提供任何响应。这是预期行为!如果您收到响应,则说明出现问题,您必须在继续操作之前解决该问题。(有关更多信息,请访问 DELETE /v1/secrets/{uuid} 。)