本页面介绍了如何创建区域级密钥。密钥包含一个或多个密钥版本,以及标签和注释等元数据。密钥的实际内容存储在 密钥版本中。
准备工作
-
设置身份验证。
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 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。
如需了解详情,请参阅 身份验证文档中的使用 REST 时进行身份验证 。 Google Cloud
所需的角色
如需获得创建 Secret 所需的权限,请让您的管理员为您授予项目、文件夹或组织的Secret Manager 管理员 (roles/secretmanager.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
创建区域级密钥
您可以使用 Google Cloud 控制台、Google Cloud CLI、Secret Manager API 或 Secret Manager 客户端库创建密钥。
控制台
-
在 Google Cloud 控制台中,前往 Secret Manager 页面。
-
在 Secret Manager 页面上,点击 区域级密钥 标签页,然后 点击 创建区域级密钥。
-
在创建区域级密钥 页面的名称 字段中,输入密钥的名称。 密钥名称可以包含大写和小写字母、数字、连字符和下划线。允许的名称长度上限为 255 个字符。
-
输入密钥的值(例如
abcd1234)。密钥值可以采用任何格式 但不得超过 64 KiB。您还可以使用 上传文件 选项上传包含密钥值的文本文件。此操作会自动创建密钥版本。 -
从区域 列表中选择您希望存储区域级密钥的位置。
-
点击创建密钥 。
gcloud
在使用下面的命令数据之前, 请先进行以下替换:
- SECRET_ID:密钥的 ID。
- LOCATION:密钥的 Google Cloud 位置。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud secrets create SECRET_ID \ --location=LOCATION
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --location=LOCATION
REST
在使用任何请求数据之前, 请先进行以下替换:
- LOCATION:密钥的 Google Cloud 位置。
- PROJECT_ID:项目 ID。 Google Cloud
- SECRET_ID:密钥的 ID。
HTTP 方法和网址:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
请求 JSON 正文:
{}
如需发送请求,请选择以下方式之一:
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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-03-25T08:24:13.153705Z",
"etag": "\"161477e6071da9\""
}
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 范围进行身份验证。
Python
要运行此代码,请先设置 Python 开发环境并 安装 Secret Manager Python SDK。 在 Compute Engine 或 GKE 上,您必须 使用 cloud-platform 范围进行身份验证。
添加密钥版本
Secret Manager 会使用密钥版本自动对密钥数据进行版本控制。密钥操作(例如访问、销毁、停用和启用)适用于特定的密钥版本。使用 Secret Manager,您可以将密钥与特定版本(例如 42)或动态别名(例如 latest)相关联。如需了解详情,请参阅添加密钥版本。
访问密钥版本
如需访问特定密钥版本中的密钥数据以进行成功身份验证,请参阅 访问区域级密钥版本。
后续步骤
- 查看配额和速率限制,了解每个项目的不同类型 API 请求(访问、读取和写入)。
- 向区域级密钥添加 CMEK 加密
- 添加区域级密钥版本