创建和管理标记

本指南介绍了如何在 Secret Manager Secret 上创建和管理标记。您可以使用标记对相关的 Secret Manager Secret 进行分组,并根据这些资源的标记存储有关它们的元数据。

关于标记

标记是一种可附加到Google Cloud中的资源的键值对。您可以使用标记,根据资源是否有特定标记,有条件地允许或拒绝政策。例如,您可以根据资源是否具有特定标记,有条件地授予 Identity and Access Management (IAM) 角色。如需了解详情,请参阅标记概览

通过创建可将值关联到 Google Cloud 资源的标记绑定资源,系统会将标记附加到资源。

所需权限

如需获得管理标记所需的权限,请让您的管理员为您授予以下 IAM 角色:

  • 针对标记附加到的资源的 Tag Viewer (roles/resourcemanager.tagViewer)
  • 在组织级层查看和管理标记:针对组织的 Organization Viewer (roles/resourcemanager.organizationViewer)
  • 创建、更新和删除标记定义:针对您要为其创建、更新或删除标记的资源的 Tag Administrator (roles/resourcemanager.tagAdmin)
  • 在资源中附加和移除标记:针对标记值以及您要为其附加或移除标记值的资源的 Tag User (roles/resourcemanager.tagUser)

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

如需将标记附加到 Secret Manager Secret,您需要拥有 Secret Manager Admin 角色 (roles/secretmanager.admin)。

创建标记键和标记值

在附加标记之前,您需要创建标记并配置其值。如需了解详情,请参阅创建标记添加标记值

在创建资源期间添加标记

您可以在创建 Secret 时添加标记。这样做可为资源提供必要的元数据,并有助于更好地进行组织管理、费用跟踪和自动应用政策。

控制台

  1. 前往 Google Cloud 控制台中的 Secret Manager 页面。
  2. 前往 Secret Manager

  3. 选择用于创建新密文的选项。
  4. 点击管理标签
  5. 如果您的组织未显示在管理标记面板中,请点击选择标记范围,然后选择您的组织或项目。
  6. 点击添加标记
  7. 从列表中选择标记键和标记值。您可以使用关键字过滤列表。
  8. 点击保存。系统会使用标签信息更新标签部分。
  9. 创建您的密文。使用提供的标记创建新的密文。

gcloud

在使用下面的命令数据之前,请先进行以下替换:

  • SECRET_ID:相应 Secret 的唯一标识符。
  • TAG_KEY:所附加的标记键的永久 ID 或命名空间名称,例如 tagKeys/567890123456
  • TAG_VALUE:所附加的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456

通过使用英文逗号分隔标记来指定多个标记,例如 TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE

Windows (PowerShell)

gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE

Windows (cmd.exe)

gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目的 ID
  • SECRET_ID:相应 Secret 的唯一标识符
  • TAGKEY_NAME:所附加的标记键的永久 ID 或命名空间名称,例如 tagKeys/567890123456
  • TAGVALUE_NAME:所附加的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456

HTTP 方法和网址:

POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID

请求 JSON 正文:

{
  "replication": {
    "automatic": {}
  },
  "tags": {
    "TAGKEY_NAME": "TAGVALUE_NAME"
  }
}

如需发送请求,请选择以下方式之一:

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

您应该会收到一个成功的状态代码 (2xx) 和一个空响应。

C#

要运行此代码,请先设置 C# 开发环境安装 Secret Manager C# SDK。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证


using Google.Api.Gax.ResourceNames;
using Google.Cloud.SecretManager.V1;
using System.Collections.Generic;

public class CreateSecretWithTagsSample
{
    public Secret CreateSecretWithTags(
      string projectId = "my-project", string secretId = "my-secret", string tagKeyName = "tagKey/value", string tagValueName = "tagValue/value")
    {
        // Create the client.
        SecretManagerServiceClient client = SecretManagerServiceClient.Create();

        // Build the parent resource name.
        ProjectName projectName = new ProjectName(projectId);

        // Build the secret.
        Secret secret = new Secret
        {