创建和管理标记

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

关于标记

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

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

所需权限

您需要的权限取决于您需要执行的操作。

如需获得这些权限,请让您的管理员在资源层次结构的适当级层授予建议的角色。

查看标记

如需查看标记定义和附加到资源的标记,您需要 Tag Viewer 角色 (roles/resourcemanager.tagViewer) 或包含以下权限的其他角色:

所需权限

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • 相应资源类型的 listTagBindings。例如,用于查看附加到 Compute Engine 实例的标记的 compute.instances.listTagBindings
  • listEffectiveTags
  • 相应的资源类型。例如,compute.instances.listEffectiveTags 用于查看附加到 Compute Engine 实例或由 Compute Engine 实例继承的所有标记。

如需查看组织级层的标记,您需要具有组织资源的 Organization Viewer 角色 (roles/resourcemanager.organizationViewer)。

管理标记

如需创建、更新和删除标记定义,您需要拥有 Tag Administrator 角色 (roles/resourcemanager.tagAdmin) 或具备以下权限的其他角色:

所需权限

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

如需管理组织级层标记,您需要具有组织资源的 Organization Viewer 角色 (roles/resourcemanager.organizationViewer)。

管理资源上的标记

如需添加和移除附加至资源的标记,您需要对标记值以及您要附加标记值的资源都具有 Tag User 角色 (roles/resourcemanager.tagUser) 或具有同等权限的其他角色。Tag User 角色包含以下权限:

所需权限

  • 您要将标记值附加到的资源所需的权限
    • 特定于资源的 createTagBinding 权限,例如 Compute Engine 实例的 compute.instances.createTagBinding
    • 特定于资源的 deleteTagBinding 权限,例如 Compute Engine 实例的 compute.instances.deleteTagBinding
  • 标记值所需的权限:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • 可让您查看项目和标记定义的权限:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

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

创建标记键和标记值

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

在创建资源期间添加标记

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

控制台

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

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

gcloud

如需在创建 secret 期间添加标记,请运行以下命令:

       gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
     

替换以下内容:

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

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

API

向以下网址发送 POST 请求:

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

在请求正文中提供以下 JSON:

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

替换以下内容:

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

为现有资源添加标记

如需为现有 Secret 添加标记,请按照以下步骤操作:

控制台

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

  3. 选择您要为其附加标记的密文。
  4. 点击 标记
  5. 如果您的组织未显示在标记面板中,请点击选择范围。选择您的组织,然后点击打开
  6. 点击添加标记
  7. 从列表中选择要附加的标记的键。您可以通过输入关键字来过滤列表。
  8. 从列表中选择要附加的标记的值。您可以通过输入关键字来过滤列表。
  9. 点击保存
  10. 确认对话框中,点击确认以附加标记。
  11. 系统会显示一条通知以确认您的标记已更新。

gcloud

如需将标记附加到 Secret,您必须使用 gcloud resource-manager tags bindings create 命令创建标记绑定资源:

      gcloud resource-manager tags bindings create \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

替换以下内容:

  • TAGVALUE_NAME 是所附加的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456
  • RESOURCE_ID 是资源的完整 ID,包括用于标识资源类型的 API 域名 (//secretmanager.googleapis.com/)。例如,如需将标记关联到 /projects/PROJECT_ID/secrets/SECRET_ID,则完整 ID 为 //secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID

列出附加到资源的标记

您可以查看直接附加到 Secret 或由 Secret 继承的标记绑定列表。

控制台

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

  3. 标记会显示在 Secret 的标记列中。

gcloud

如需获取附加到资源的标记绑定列表,请使用 gcloud resource-manager tags bindings list 命令:

      gcloud resource-manager tags bindings list \
          --parent=RESOURCE_ID
      

替换以下内容:

  • RESOURCE_ID 是资源的完整 ID,包括用于标识资源类型的 API 域名 (//secretmanager.googleapis.com/)。例如,如需将标记关联到 /projects/PROJECT_ID/secrets/SECRET_ID,则完整 ID 为 //secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID

您应该会看到如下所示的响应:

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //secretmanager.googleapis.com/projects/project-abc/secrets/secret-xyz
      

将标记与资源分离

您可以分离直接附加到密文的标记。可以通过附加具有相同键和不同值的标记来替换继承的标记,但不能分离这些标记。

控制台

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

  3. 选择要从中移除标记的 Secret。
  4. 点击 标记
  5. 标记面板中,点击要分离的标记旁边的 删除项
  6. 点击保存
  7. 确认对话框中,点击确认以分离标记。

系统会显示一条通知以确认您的标记已更新。

gcloud

如需删除标记绑定,请使用 gcloud resource-manager tags bindings delete 命令:

      gcloud resource-manager tags bindings delete \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

替换以下内容:

  • TAGVALUE_NAME 是所附加的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456
  • RESOURCE_ID 是资源的完整 ID,包括用于标识资源类型的 API 域名 (//secretmanager.googleapis.com/)。例如,如需将标记关联到 /projects/PROJECT_ID/secrets/SECRET_ID,则完整 ID 为 //secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID

删除标记键和标记值

移除标记的键或值定义时,请确保标记已与 Secret 分离。在删除标记定义本身之前,您必须先删除现有的标记连接(称为标记绑定)。如需删除标记键和标记值,请参阅删除标记

Identity and Access Management 条件和标记

您可以使用标记和 IAM 条件来有条件地向层次结构中的用户授予角色绑定。如果应用了具有条件角色绑定的 IAM 政策,则更改或删除附加到资源的标记可能会移除用户对该资源的访问权限。如需了解详情,请参阅 Identity and Access Management 条件和标记

后续步骤