创建和管理标记

关于标记

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

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

如需在 Cloud Deploy 中对交付流水线或目标进行分组以实现自动化和结算,请使用标签。 标记和标签彼此独立工作,您可以同时将它们应用于资源。

所需权限

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

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

查看标记

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

如需将标记附加到 Cloud Deploy 交付流水线或目标,您需要 Cloud Deploy Operator 角色 (roles/clouddeploy.operator)。

创建标记键和标记值

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

将代码附加到交付流水线或目标

创建代码后,您必须将其附加到 交付流水线或目标。

gcloud

如需将标记附加到提交流水线或目标,您必须使用 gcloud resource-manager tags bindings create 命令创建标记绑定资源:

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

替换以下内容:

  • TAGVALUE_NAME 是所附加的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456
  • RESOURCE_ID 是资源的完整 ID。 包括 API 域名,以标识资源类型 (//clouddeploy.googleapis.com/).对于 例如,如需将标记附加到 us-central1 区域中 projects/7890123456 的交付流水线 myPipeline,则完整 ID 为: //clouddeploy.googleapis.com/projects/7890123456/locations/us-central1/deliveryPipelines/myPipeline
  • LOCATION:资源的位置。如果您要将标记附加到全球性资源(例如文件夹或项目),请省略此标志。如果您要将标记附加到区域级或可用区级资源,则必须指定位置,例如 us-central1(区域)或 us-central1-a(可用区)。

列出附加到交付流水线或目标的标记

您可以查看直接附加到 交付流水线或目标。

gcloud

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

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

替换以下内容:

  • RESOURCE_ID 是资源的完整 ID,包括用于标识资源类型的 API 域名 (//clouddeploy.googleapis.com/)。例如,如需将标记附加到 projects/7890123456 中的提交流水线 myPipeline(位于区域 us-central1 内),则完整 ID 为://clouddeploy.googleapis.com/projects/7890123456/locations/us-central1/deliveryPipelines/myPipeline
  • LOCATION:资源的位置。如果您要查看附加到全球性资源(例如文件夹或项目)的标记,请省略此标志。如果您要查看附加到区域级或可用区级资源的标记,则必须指定位置,例如 us-central1(区域)或 us-central1-a(可用区)。

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

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //clouddeploy.googleapis.com/projects/PROJECT_ID/locations/REGION/DELIVERY_PIPELINE_ID
      

将标记与交付流水线或目标分离

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

gcloud

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

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

替换以下内容:

  • TAGVALUE_NAME 是所附加的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456
  • RESOURCE_ID 是资源的完整 ID。 包括 API 域名,以标识资源类型 (//clouddeploy.googleapis.com/).对于 例如,如需将标记附加到 us-central1 区域中 projects/7890123456 的交付流水线 myPipeline,则完整 ID 为: //clouddeploy.googleapis.com/projects/7890123456/locations/us-central1/deliveryPipelines/myPipeline
  • LOCATION:资源的位置。如果您要将标记附加到全球性资源(例如文件夹或项目),请省略此标志。如果您要将标记附加到区域级或可用区级资源,则必须指定位置,例如 us-central1(区域)或 us-central1-a(可用区)。

删除标记键和标记值

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

Identity and Access Management 条件和标记

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

后续步骤