Secret 数据不可修改,大多数操作都在 Secret 版本上进行。密文版本包含实际的密文数据,以及有关密文的状态和元数据。本主题介绍如何添加 Secret 版本。
所需的角色
为了获得添加 Secret 版本所需的权限, 请让管理员授予您 针对 Secret 的以下 IAM 角色:
-
Secret Manager Secret Version Adder (
roles/secretmanager.secretVersionAdder
) -
Secret Manager Secret 版本管理器 (
roles/secretmanager.secretVersionManager
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
添加 Secret 版本
控制台
-
转到 Google Cloud 控制台中的 Secret Manager 页面。
-
在 Secret Manager 页面上,点击查看更多
,然后选择添加新版本。 -
在添加新版本对话框的密文值字段中,输入密文的值(例如
abcd1234
)。 -
点击添加新版本按钮。
gcloud
如需在命令行中使用 Secret Manager,请先 安装或升级到 378.0.0 或更高版本的 Google Cloud CLI。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
从磁盘上文件的内容添加密文版本:
$ gcloud secrets versions add secret-id --data-file="/path/to/file.txt"
您也可以直接在命令行中添加密钥版本,但不建议这样做,因为它以明文形式显示在进程列表中,并且可能会被其他系统用户捕获。请注意,包含明文的命令也会显示在 shell 历史记录中。
$ echo -n "this is my super secret data" | \
gcloud secrets versions add secret-id --data-file=-
可选:首次创建密文时,从文件的内容添加版本:
$ gcloud secrets create secret-id --data-file="/path/to/file.txt"
C#
如需运行此代码,请先设置 C# 开发环境并安装 Secret Manager C# SDK。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Go
如需运行此代码,请先设置 Go 开发环境并 安装 Secret Manager Go SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Java
要运行此代码,请先设置 Java 开发环境并 安装 Secret Manager Java SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Node.js
要运行此代码,请先设置 Node.js 开发环境并 安装 Secret Manager Node.js SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
PHP
如需运行此代码,请先了解如何在 Google Cloud 上使用 PHP 和安装 Secret Manager PHP SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Python
如需运行此代码,请先设置 Python 开发环境并安装 Secret Manager Python SDK。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Ruby
如需运行此代码,请先设置 Ruby 开发环境并安装 Secret Manager Ruby SDK。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
API
这些示例使用 curl 来使用 API 演示。 您可以使用 gcloud auth print-access-token 生成访问令牌。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
对密文数据进行 Base64 编码并将其另存为 shell 变量。
$ SECRET_DATA=$(echo "seCr3t" | base64)
使用 curl 调用 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" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
密文版本状态
在任何给定时间,密文版本可能处于以下某种状态:
已启用 - 处于此状态时,可以访问和描述密文版本。这是新密文版本的默认状态。
已停用 - 处于此状态时,密文版本无法访问,但密文的内容仍然存在。您可以重新启用密文版本以恢复访问权限。
已销毁 - 在此状态下,密文版本的内容将被舍弃。密文版本不能更改为其他状态。
后续步骤
- 了解如何访问 Secret 版本。
- 了解如何为密钥版本分配别名。
- 了解如何列出密钥版本和查看版本详情。