通过 REST 添加新版本的密钥

Posted

技术标签:

【中文标题】通过 REST 添加新版本的密钥【英文标题】:Add new version of secret via REST 【发布时间】:2020-11-14 14:15:50 【问题描述】:

我想通过 GCP REST API 添加新版本的密钥。 遗憾的是,对于 REST,文档非常乏味,甚至连 URL 都没有说明。

我收到以下回复:

curl -H "authorization: Bearer $(gcloud auth print-access-token)" 'https://secretmanager.googleapis.com/v1beta1/projects/myproject/secrets/foo'

但只有 404 用于:

curl -H "authorization: Bearer $(gcloud auth print-access-token)" -H 'content-type: application/json' -d '"payload":"data":"foo"' 'https://secretmanager.googleapis.com/v1beta1/projects/myproject/secrets/foo/addVersion'

还尝试了其他排列。 谁能告诉我如何构造 REST 调用来添加新版本?

【问题讨论】:

【参考方案1】:

在文档的Adding a secret version 部分下,您可以点击“API”选项卡并查看:

$ curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:addVersion" \
    --request "POST" \
    --header "authorization: Bearer $(gcloud auth print-access-token)" \
    --header "content-type: application/json" \
    --header "x-goog-user-project: project-id" \
    --data "\"payload\": \"data\": \"$SECRET_DATA\""

地点:

PROJECT_ID 是您的 GCP 项目 ID SECRET_ID 是您要为其添加版本的密钥的名称 SECRET_DATA 是 base64 编码的密码。

【讨论】:

每个样本都是如此,包括创建秘密、访问、管理权限和删除它们。【参考方案2】:

如果您弹出 API Explorer,开始时会显示实际的 URL。原来如此:

https://secretmanager.googleapis.com/v1beta1/projects/myproject/secrets/foo:addVersion

【讨论】:

以上是关于通过 REST 添加新版本的密钥的主要内容,如果未能解决你的问题,请参考以下文章