创建和管理标记

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

关于标记

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

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

在 Secret Manager 中对 Secret 进行分组以实现自动化 和结算,请使用标签。 标记和标签彼此独立工作,您可以同时将它们应用于资源。

所需权限

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

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

查看标记

如需查看标记定义和附加到资源的标记,您需要 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

创建代码后,您必须将其附加到 这是个秘密

gcloud

如需将标记附加到密钥,您必须使用 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_NAME, 完整 ID 是 //secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_NAME

列出附加到 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_NAME, 完整 ID 是 //secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_NAME

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

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

从密钥分离标记

您可以分离已直接附加到 这是个秘密可以通过附加具有相同键和不同值的标记来替换继承的标记,但不能分离这些标记。 如需删除标记,您必须先将其键值对与附加的每个资源分离。

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_NAME, 完整 ID 是 //secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_NAME

删除标记键和标记值

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

Identity and Access Management 条件和标记

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

后续步骤