本指南介绍如何创建和管理 Compute Engine 资源的标记。标记是可附加到Google Cloud 资源的键值对。标记具有多种用途,包括:
- 根据资源是否有特定标记,视条件允许或拒绝政策。
- 在全球网络防火墙政策和区域级网络防火墙政策中定义来源和目标。
- 按逻辑组织资源。
创建标记并向该标记和资源授予相应的访问权限后,您能够以键值对的形式附加该标记。对于给定键,您只能将一个值附加到资源。例如,如果您附加了 environment: development
标记,则无法附加 environment: production
或 environment: test
标记。每个资源最多可以关联 50 个键值对。
如需将标记附加到资源,您必须创建将标记值关联到 Google Cloud 资源的 TagBinding 资源。如需详细了解标记及其工作原理,请参阅标记概览。
准备工作
- 阅读 Resource Manager 文档中的标记概览。
- 阅读 Resource Manager 文档中的创建和管理标记。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
仅在创建资源后:
- 托管实例组 (MIG)
- 图片
- 快照
- 大多数网络资源,例如网络、子网、防火墙和健康检查资源。
在创建资源期间和之后:虚拟机 (VM) 实例和磁盘
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
在名称列中,点击要为其添加标记的虚拟机的名称。
在虚拟机实例详情页面中,完成以下步骤:
- 点击修改。
- 在基本信息部分中,点击管理标记并为实例添加所需的标记。
- 点击保存。
LOCATION_NAME
:包含目标资源的区域;在此示例中,即虚拟机实例所在的区域TAGVALUE_ID
:标记值的数字 IDPROJECT_NUMBER
:包含目标资源的项目的数字 IDZONE
:包含目标资源的可用区;在此示例中,即虚拟机实例所在的可用区VM_ID
:虚拟机实例 IDLOCATION_NAME
:包含目标资源的区域;在此示例中,即虚拟机实例所在的区域PROJECT_NUMBER
:包含目标资源的项目的数字 IDZONE
:包含目标资源的可用区;在此示例中,即虚拟机实例所在的可用区VM_ID
:虚拟机实例 IDTAGVALUE_ID
:所附加的标记值的永久 ID,例如4567890123
TAGVALUE_NAMESPACED_NAME
:所附加的标记值的命名空间名称,采用以下格式:parentNamespace/tagKeyShortName/tagValueShortName
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。系统会显示创建实例页面,并显示机器配置窗格。
在导航菜单中,点击高级。在显示的高级窗格中,执行以下操作:
- 展开 管理标记和标签部分。
- 点击 添加标记。
- 在打开的标记窗格中,按照说明为实例添加标记。
- 点击保存。
为实例指定其他配置选项。如需了解详情,请参阅实例创建期间的配置选项。
要创建并启动该虚拟机,请点击创建。
INSTANCE_NAME
:虚拟机实例的名称ZONE
:包含虚拟机实例的可用区TAGKEY_ID
:标记键编号数字 IDTAGVALUE_ID
:所附加的标记值的永久数字 ID,例如4567890123
INSTANCE_NAME
:虚拟机实例的名称TAGKEY_ID
:标记键编号数字 IDTAGVALUE_ID
:所附加的标记值的永久数字 ID,例如4567890123
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
在名称列中,点击要为其添加标记的虚拟机的名称。
在虚拟机实例详情页面中,完成以下步骤:
- 点击修改。
- 在基本部分中,点击管理标记并为实例移除所需标记。
- 点击保存。
LOCATION_NAME
:目标资源所在的可用区,例如us-central1-a
TAGVALUE_ID
:标记键的数字 IDPROJECT_NUMBER
:包含目标资源的项目的数字 IDZONE
:可用区名称,例如us-central1-a
VM_ID
:虚拟机实例的数字 IDLOCATION
:资源的区域端点,例如us-central1
TAGBINDINGS_NAME
:TagBinding 的永久 ID;例如tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456
。在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
在名称列中,点击要查看其标记的虚拟机的名称。
在虚拟机实例详情页面中的标记部分下,查找标记。
LOCATION_NAME
:目标资源所在的可用区,例如us-central1-a
PROJECT_NUMBER
:包含目标资源的项目的数字 IDZONE
:可用区名称,例如us-central1-a
VM_ID
:虚拟机实例的数字 IDLOCATION_NAME
:目标资源所在的区域,例如us-central1
PROJECT_NUMBER
:包含目标资源的项目的数字 IDZONE
:可用区名称,例如us-central1-a
VM_ID
:虚拟机实例的数字 ID
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
权限
如需管理 Compute Engine 资源的标记,用户和服务账号应具有
tagUser
角色。如需详细了解tagUser
角色,请参阅所需权限。支持的资源
Compute Engine 支持为以下资源添加标记:
向资源添加标记
您可以将现有标记附加到特定资源。创建资源后,请按照以下说明将标记附加到该资源。
控制台
根据资源类型,确切的步骤可能有所不同。例如,以下步骤会将标记附加到虚拟机:
gcloud
如需了解如何使用这些标记,请参阅 Resource Manager 文档中的将标记附加到资源。
例如,以下命令会将标记附加到虚拟机:
gcloud resource-manager tags bindings create \ --location LOCATION_NAME \ --tag-value=tagValues/TAGVALUE_ID \ --parent=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
替换以下内容:
REST
如需将标记附加到资源,您必须先创建标记绑定的 JSON 表示形式,其中包含标记值的永久 ID 或命名空间名称以及资源的永久 ID。如需详细了解标记绑定的格式,请参阅 tagBindings 参考文档。
如需将标记附加到可用区级资源(例如虚拟机实例),请将
tagBindings.create
方法与资源所在的区域级端点配合使用。例如:POST https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings
请求正文可以是以下两个选项之一:
{ "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID", "tagValue": "tagValue/TAGVALUE_ID" }
{ "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID", "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME }
替换以下内容:
在创建资源期间向资源添加标记
在某些情况下,您可能需要在创建资源期间标记资源,而不是在创建资源之后。
控制台
根据资源类型,确切的步骤可能有所不同。以下步骤适用于虚拟机:
gcloud
如需在资源创建期间将标记附加到资源,请在相应的
create
命令后添加--resource-manager-tags
标志。例如,如需将标记附加到虚拟机,请使用以下命令:gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID
替换以下内容:
通过使用英文逗号分隔标记来指定多个标记,例如
TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2
。REST
对下面的网址发出
POST
请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
添加以下请求 JSON 正文:
{ "name": INSTANCE_NAME, "params": { "resourceManagerTags": { "tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID", }, } // other fields omitted }
替换以下内容:
从资源分离标记
您可以通过删除标记绑定资源,从资源分离标记。
如需查看有关如何分离标记的说明,请参阅 Resource Manager 文档中的从资源分离标记。
控制台
根据资源类型,确切的步骤可能略有不同。例如,以下步骤可将标记与虚拟机分离:
gcloud
以下示例使用 gcloud CLI 从虚拟机分离标记:
gcloud resource-manager tags bindings delete \ --location LOCATION_NAME \ --tag-value=tagValues/TAGVALUE_ID \ --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
替换以下内容:
如需将现有标记绑定更新或替换为其他标记绑定,请分离旧标记绑定并附加新标记绑定。
REST
如需删除附加到资源(例如虚拟机)的标记绑定,请将
tagBindings.delete
方法与资源所在的区域级端点配合使用。DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}
替换以下内容:
查看附加到资源的标记
如需查看有关如何列出标记的详细说明,请参阅 Resource Manager 文档中的列出附加到资源的所有标记。
控制台
根据资源类型,确切的步骤可能略有不同。例如,以下步骤展示了如何查看虚拟机的标记:
gcloud
如需获取直接附加到资源的标记绑定列表,请使用
gcloud resource-manager tags bindings list
命令。如果添加--effective
标志,您还会返回此资源继承的标记列表。例如:gcloud resource-manager tags bindings list \ --location=LOCATION_NAME \ --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
替换以下内容:
如果您将
--effective
标志添加到tags bindings list
命令,则还会返回此资源继承的所有标记的列表。输出类似于以下内容:
namespacedTagKey: 961309089256/environment namespacedTagValue: 961309089256/environment/production tagKey: tagKeys/417628178507 tagValue: tagValues/247197504380 inherited: true
如果资源上评估的所有标记都直接附加,则
inherited
字段为 false 且被省略。REST
如需列出附加到区域级资源(例如 Compute Engine 实例)的标记绑定,请使用
tagBindings.list
方法并使用资源所在的区域端点。例如:GET https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings { "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID" }
替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-08。
-