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} 。)