本页面介绍了如何创建 Secret。密文包含一个或多个密文版本,以及标签和复制政策等元数据。密文的实际内容存储在密文版本中。
准备工作
-
设置身份验证。
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得创建 Secret 所需的权限,请让您的管理员为您授予项目、文件夹或组织的 Secret Manager Admin (roles/secretmanager.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
创建 Secret
您可以使用 Google Cloud 控制台、Google Cloud CLI、Secret Manager API 或 Secret Manager 客户端库创建 Secret。
控制台
-
在 Google Cloud 控制台中,前往 Secret Manager 页面。
-
在 Secret Manager 页面上,点击创建 Secret。
-
在创建密钥页面上,在名称字段中输入密钥的名称。 Secret 名称可以包含大写和小写字母、数字、连字符和下划线。允许的名称长度上限为 255 个字符。
-
输入密文的值(例如
abcd1234)。密文的值可以采用任何格式,但不得超过 64 KiB。您还可以使用上传文件选项上传包含 Secret 值的文本文件。此操作会自动创建 Secret 版本。 -
点击创建密钥。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- SECRET_ID:Secret 的 ID。
- REPLICATION_POLICY:相应密文的复制政策,可以是自动复制政策,也可以是用户管理的复制政策。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud secrets create SECRET_ID \ --replication-policy="REPLICATION_POLICY"
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --replication-policy="REPLICATION_POLICY"
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --replication-policy="REPLICATION_POLICY"
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID: Google Cloud 项目 ID。
- SECRET_ID:Secret 的 ID。
- REPLICATION_POLICY:相应密文的复制政策,可以是自动复制政策,也可以是用户管理的复制政策。
HTTP 方法和网址:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
请求 JSON 正文:
{
"replication": {
"REPLICATION_POLICY": {}
}
}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_ID/secrets/SECRET_ID",
"createTime": "2024-03-25T08:24:13.153705Z",
"etag": "\"161477e6071da9\""
}
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 范围进行身份验证。
如需为您的密文选择合适的复制政策,请参阅选择复制政策。
添加 Secret 版本
Secret Manager 会使用密文版本自动对密文数据进行版本控制。密钥操作(例如访问、销毁、停用和启用)会应用于特定的密文版本。借助 Secret Manager,您可以将密文与特定版本(例如 42)或动态别名(例如 latest)相关联。如需了解详情,请参阅添加 Secret 版本。
访问密文版本
如需访问特定密文版本中的密文数据以成功进行身份验证,请参阅访问密文版本。
后续步骤
- 查看每个项目的不同类型 API 请求(访问、读取和写入)的配额和速率限制。
- 了解如何管理对密文的访问权限。
- 了解如何为 Secret 设置通知。