创建和管理标记

本指南介绍如何创建和管理标记。标记是一种可以关联到组织、文件夹或项目的键值对。您可以使用标记,根据资源是否有特定标记,有条件地允许或拒绝政策。

准备工作

如需详细了解标记及其工作原理,请参阅标记概览

所需权限

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

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

查看标记

如需查看标记定义,您需要 Tag Viewer 角色 (roles/resourcemanager.tagViewer) 或具备以下权限的其他角色:

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.resourceTagBindings.list

管理标记

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

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

管理资源上的标记

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

  • 您要将标记值关联到的资源所需的权限:

    • resourcemanager.resourceTagBindings.create
    • resourcemanager.resourceTagBindings.delete
    • resourcemanager.resourceTagBindings.list
  • 标记值所需的权限:

    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
    • resourcemanager.tagValueBindings.list
  • 可让您查看项目和标记定义的权限:

    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

创建和定义新标记

标记由键值对组成,并关联到 Google Cloud 层次结构中的组织、文件夹或项目资源。如需创建新标记,必须首先创建一个标记密钥,对所创建的标记进行说明。例如,您可能希望通过创建一个名为 env 的键,为资源层次结构中的资源指定生产、测试和开发环境。

然后,您可以创建键可以具有的不同值。如果您创建了名为 env 的标记键,则可能需要指定有三个可能的环境,然后为每个环境创建一个值:proddev、和 test

在给定的组织下,您最多可以创建 300 个键,每个键总共可以创建 300 个值。

最后,您可以将这些值关联到层次结构中的资源,后者随键值对携带关联。例如,您可以将 test 关联到组织中的多个测试环境文件夹,每个文件夹都将采用 env: test 键值对。

创建标记

首先,您需要创建一个标记键。

标记键的 shortName 长度上限为 63 个字符。shortName 允许使用的字符集包括大写和小写字母数字(未进行国际化)、连字符、下划线和句点。shortName 必须以字母数字字符开头和结尾。shortName 创建后不可更改,并且在同一个命名空间中必须唯一。

控制台

如需创建新标记键,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击 创建标记

  5. 标记名称框中,输入标记键的显示名。它会成为标记的命名空间名称的一部分。

  6. 标记说明框中,输入标记键的说明。

  7. 如果要向此键添加标记值,请为您要创建的每个标记值点击 添加值

  8. 标记值框中,输入标记值的显示名。它会成为标记的命名空间名称的一部分。

  9. 标记值说明框中,输入标记值的说明。

  10. 添加完标记值后,点击创建标记

gcloud

如需创建新的标记键,请使用 gcloud alpha resource-manager tags keys create 命令:

gcloud alpha resource-manager tags keys create SHORT_NAME \
    --parent=organizations/ORGANIZATION_ID

其中:

  • SHORT_NAME 是标记键的显示名,例如 env

  • ORGANIZATION_ID 是作为此标记键的父资源的组织的 ID,例如 12345678901。如需了解如何获取组织 ID,请参阅创建和管理组织

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

Creating tag key env in organization 1234567890...
<blocking wait until creation completes>
name: tagKeys/123456789012
short_name: env
namespaced_name: 12345678901/env
parent: organizations/12345678901

API

要创建新的标记键,请创建该键的 JSON 表示法。如需详细了解标记键的格式,请参阅 TagKey 参考文档

然后使用 tagKeys.create 方法:

POST https://cloudresourcemanager.googleapis.com/v3/tagKeys/ -d

请求 JSON 正文:

{
    "parent": ORGANIZATION_ID,
    "shortName": SHORT_NAME,
    "description": DESCRIPTION,
}

其中:

  • SHORT_NAME 是标记键的显示名,例如 env

  • ORGANIZATION_ID 是作为此标记键的父资源的组织的 ID,例如 organizations/12345678901。如需了解如何获取组织 ID,请参阅创建和管理组织

  • DESCRIPTION 是键的说明,长度不超过 256 个字符。

创建键后,您可以找到一个名为 namespacedName 的唯一人类可读的显示名,该名称在其父级组织中具有命名空间,以及一个名为 name 的全局唯一永久 ID。

查看标记键

您可以使用创建时所显示的永久 ID 或命名空间名称来查找特定标记键的信息。

控制台

如需查看已创建的标记,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 此组织中的所有标记都会显示在列表中。点击要查看其标记键的标记。

gcloud

如需显示与给定标记键相关的信息,请使用 gcloud alpha resource-manager tags keys describe 命令:

gcloud alpha resource-manager tags keys describe TAGKEY_NAME

其中,TAGKEY_NAME 是您要显示其信息的标记键的永久 ID 或命名空间名称,例如 tagKeys/123456789012

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

name: tagKeys/123456789012
short_name: env
namespaced_name: 12345678901/env
parent: organizations/12345678901

API

如需显示与指定标记键相关的信息,请使用 tagKeys.get 方法:

GET https://cloudresourcemanager.googleapis.com/v3/{name=TAGKEY_NAME}

其中,TAGKEY_NAME 是您要显示其信息的标记键的永久 ID,例如 tagKeys/123456789012

添加标记值

创建标记键后,您就可以为该键添加接受的值。

标记值的 shortName 长度上限为 63 个字符。shortName 允许使用的字符集包括大写和小写字母数字(未进行国际化)、连字符、下划线和句点。shortName 必须以字母数字字符开头和结尾。shortName 创建后不可更改,并且在同一个命名空间中必须唯一。

控制台

如需创建新标记值,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 在标记列表中,点击要添加新值的标记。

  5. 点击 添加值

  6. 标记值框中,输入标记值的显示名。它会成为标记的命名空间名称的一部分。

  7. 标记值说明框中,输入标记值的说明。

  8. 点击保存

gcloud

如需创建新的标记键,请使用 gcloud alpha resource-manager tags keys create 命令。您必须指定创建此值所基于的键:

gcloud alpha resource-manager tags values create TAGVALUE_SHORTNAME \
    --parent=TAGKEY_NAME

其中:

  • TAGVALUE_SHORTNAME 是新标记值的简称,例如 prod

  • TAGKEY_NAME 是父标记键的永久 ID 或命名空间名称,例如 tagKeys/4567890123

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

Creating tag value prod in tag key 12345678901/env...
<blocking wait until creation completes>
name: tagValues/7890123456
short_name: prod
namespaced_name: 12345678901/env/prod
parent: tagKeys/123456789012

API

要创建新的标记值,请创建该值的 JSON 表示法。如需详细了解标记值的格式,请参阅 TagValue 参考

然后使用 tagValues.create 方法:

POST https://cloudresourcemanager.googleapis.com/v3/tagValues/ -d

请求 JSON 正文:

{
    "parent": TAGKEY_NAME,
    "shortName": SHORT_NAME,
    "description": DESCRIPTION,
}

其中:

  • TAGKEY_NAME 是父标记键的永久 ID,例如 tagKeys/4567890123

  • SHORT_NAME 是标记值的显示名,例如 env

  • DESCRIPTION 是值的说明,长度不超过 256 个字符。

创建值后,您可以找到一个名为 namespacedName 的唯一人类可读的显示名,该名称在其父级组织中具有命名空间,以及一个名为 name 的全局唯一永久 ID。

检索标记值

您可以使用创建时所显示的永久 ID 或命名空间名称来查找特定标记值的信息。

控制台

如需查看已创建的标记,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 您在此组织中创建的所有标记都将显示在列表中。点击要查看其标记值的标记。

gcloud

如需显示与给定标记值相关的信息,请使用 gcloud alpha resource-manager tags values describe 命令:

gcloud alpha resource-manager tags values describe TAGVALUE_NAME

其中,TAGVALUE_NAME 是标记值的命名空间名称,例如 1234567890/env/prod

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

short_name: prod
namespaced_name: 1234567890/env/prod
parent: tagKeys/123456789012

API

如需显示与给定标记值相关的信息,请使用 tagValues.get 方法:

GET https://cloudresourcemanager.googleapis.com/v3/{name=TAGVALUE_NAME}

其中,TAGVALUE_NAME 是标记值的永久 ID,例如 tagValues/4567890123

使用 gcloud 命令行工具引用标记时,您可以针对标记键和值使用命名空间名称或永久 ID。调用 API 只应使用永久 ID。如需详细了解标记使用的标识符类型,请参阅标记定义和标识符

更新现有标记

您可以通过更新与标记关联的键或值来修改现有标记。您可以更新标记说明,但无法更新简称。

控制台

如需更新标记键的说明,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击要更新的标记键旁边的 操作,然后点击查看详情

  5. 点击屏幕顶部附近的说明旁边的 修改

  6. 更新标记键的说明。

  7. 点击保存

gcloud

要修改标记键说明,请使用 gcloud alpha resource-manager tags keys update 命令:

gcloud alpha resource-manager tags keys update TAGKEY_NAME \
    --description=NEW_DESCRIPTION

其中:

  • TAGKEY_NAME 是要更新的键的永久 ID 或命名空间名称,例如 tagKeys/123456789012

  • NEW_DESCRIPTION 是一个字符串,不超过 256 个字符,用作新说明。

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

name: tagKeys/123456789012
short_name: env
namespaced_name: 12345678901/env
description: "new description"
parent: organizations/12345678901

API

如需修改标记键说明,请使用 tagKeys.patch 方法:

PATCH https://cloudresourcemanager.googleapis.com/v3/{tagKey.name=TAGKEY_NAME} -d

请求 JSON 正文:

{
    "description": DESCRIPTION,
}

其中:

  • TAGKEY_NAME 是标记键的永久 ID,例如 tagKeys/123456789012

  • DESCRIPTION 是键的说明,长度不超过 256 个字符。

您还可以更改标记值的说明。

控制台

如需更新标记值的说明,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击要更新的值的标记键旁边的 操作,然后点击查看详情

  5. 点击要更新的标记值旁边的 操作,然后点击查看详情

  6. 点击屏幕顶部附近的说明旁边的 修改

  7. 更新标记值的说明。

  8. 点击保存

gcloud

要修改标记值说明,请使用 gcloud alpha resource-manager tags values update 命令:

gcloud alpha resource-manager tags values update TAGVALUE_NAME \
    --description="NEW_DESCRIPTION"

其中:

  • TAGVALUE_NAME 是要更新的标记值的永久 ID 或命名空间名称,例如 tagValues/4567890123

  • NEW_DESCRIPTION 是一个字符串,不超过 256 个字符,用作新说明。

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

short_name: prod
namespaced_name: 12345678901/env/prod
parent: tagKeys/123456789012
description: "new description"

API

如需修改标记键说明,请使用 tagValues.patch 命令:

PATCH https://cloudresourcemanager.googleapis.com/v3/{tagKey.name=TAGVALUE_NAME} -d

请求 JSON 正文:

{
    "description": DESCRIPTION,
}

其中:

  • TAGVALUE_NAME 是标记值的永久 ID 名称,例如 tagValues/4567890123

  • DESCRIPTION 是键的说明,长度不超过 256 个字符。

列出标记键

您可以使用 Cloud Console、gcloud 工具或 API 调用来列出与特定组织关联的所有标记键。

控制台

如需查看所有标记,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 您在此组织中创建的所有标记都将显示在列表中。

gcloud

如需返回关联到组织资源的所有标记键的列表,请使用 gcloud alpha resource-manager tags keys list 命令:

gcloud alpha resource-manager tags keys list --parent=ORGANIZATION_ID

其中,ORGANIZATION_ID 是您要查找其包含的标记密钥的组织 ID。

  • 组织 ID 应采用 organizations/ORGANIZATION_ID 格式,例如 organizations/12345678901。如需了解如何获取组织 ID,请参阅创建和管理组织

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

NAME                     SHORT_NAME      DESCRIPTION
tagKeys/123456789012          env         description of tag key

API

如需返回给定资源的所有标记键的列表,请使用 tagKeys.list 方法,并在查询中指定父资源:

GET https://cloudresourcemanager.googleapis.com/v3/tagKeys

{
    "parent": "RESOURCE_ID"
}

其中,RESOURCE_ID 是您要查找其关联标记键的资源的 ID,例如 organizations/12345678901

列出标记值

您可以使用 Cloud Console、gcloud 工具或调用 API 来列出与特定标记键关联的所有标记值。

控制台

如需查看附加到某个标记键的所有标记值,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击包含要查找的标记值的标记键旁边的 操作,然后点击查看详情

  5. 列在此标记键下创建的所有标记值都会显示在列表中。

gcloud

如需返回关联到键的所有标记值的列表,请使用 gcloud alpha resource-manager tags values list 命令:

gcloud alpha resource-manager tags values list --parent=TAGKEY_NAME

其中,TAGKEY_NAME 是您要查找其关联值的标记键的永久 ID 或命名空间名称,例如 tagKeys/123456789012

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

NAME                     SHORT_NAME
tagValues/123456789012   prod

API

如需返回关联到键的所有标记值的列表,请使用 tagValues.list 方法,并在查询中指定父标记键:

GET https://cloudresourcemanager.googleapis.com/v3/tagValues

{
    "parent": "TAGKEY_NAME"
}

其中,TAGKEY_NAME 是标记键的永久 ID 名称,例如 tagKeys/123456789012

管理对标记的访问权限

您可以向用户授予特定访问权限,以使用 Cloud Console 管理标记并将标记值附加到资源。如需与标记相关的角色及其包含的权限的列表,请参阅所需权限

标记键

如需管理使用标记键的用户的访问权限,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击要管理其访问权限的标记旁边的复选框。

  5. 点击 管理访问权限

  6. 如需向成员添加角色,请点击 添加成员

    1. 新成员文本框中,输入要授予新角色的成员的电子邮件地址。

    2. 选择角色下拉菜单中选择角色。如果要添加多个角色,请点击 添加其他角色

    3. 如果您想发送通知,请点击发送通知电子邮件旁边的复选框。

    4. 点击保存

  7. 如需修改成员的角色,请点击您要修改的成员旁边的 修改

    1. 您可以点击角色下拉菜单并选择新角色,以更改在此标记上分配给成员的任何角色。

    2. 如果要添加更多角色,请点击 添加其他角色

    3. 如需在此标记上删除此成员的角色,请点击要删除的角色旁边的 删除角色

    4. 点击保存

  8. 如需删除成员的角色,请点击要删除的角色旁边的 删除角色

    1. 点击移除

标记值

如需管理使用标记值的用户,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击要管理其访问权限的值所对应的标记键旁边的 操作,然后点击查看详情

  5. 点击 管理访问权限

  6. 如需向成员添加角色,请点击 添加成员

    1. 新成员文本框中,输入要授予新角色的成员的电子邮件地址。

    2. 选择角色下拉菜单中选择角色。如果要添加多个角色,请点击 添加其他角色

    3. 如果您想发送通知,请点击发送通知电子邮件旁边的复选框。

    4. 点击保存

  7. 如需修改成员的角色,请点击您要修改的成员旁边的 修改

    1. 您可以点击角色下拉菜单并选择新角色,以更改在此标记上分配给成员的任何角色。

    2. 如果要添加更多角色,请点击 添加其他角色

    3. 如需在此标记上删除此成员的角色,请点击要删除的角色旁边的 删除角色

    4. 点击保存

  8. 如需删除成员的角色,请点击要删除的角色旁边的 删除角色

    1. 点击移除

将标记关联到资源

创建标记并为该标记和资源授予访问权限后,该标记可以键值对的形式关联到 Google Cloud 资源。对于给定键,只能将一个值关联到资源。例如,如果关联了 env: dev,则不能关联 env: prodenv: test。每个资源最多可以关联 50 个键值对。

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

控制台

如需将标记附加到资源,请执行以下操作:

  1. 打开 Cloud Console 中的管理资源页面。

    打开“管理资源”页面

  2. 点击要向其附加标记的组织、文件夹或项目。

  3. 在显示的信息面板中,点击标记标签页。

  4. 点击添加标记绑定单选按钮。

  5. 标记值框中,输入要附加的标记值的命名空间名称,例如 4567890123/Environment/Test

  6. 如果要附加更多标记值,请点击 添加值,然后输入每个标记值的命名空间名称。

  7. 点击保存绑定

  8. 新标记会显示在管理资源页面上的标记列下。

gcloud

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

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

其中:

  • TAGVALUE_NAME 是要附加的标记值的永久 ID 或命名空间名称,例如 tagValues/4567890123

  • RESOURCE_ID 是资源的完整 ID,包括 API 域名以类似资源类型 (//cloudresourcemanager.googleapis.com/)。例如,如需将标记关联到 projects/7890123456,则完整 ID 为: //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION 是资源的位置。如果要将标记附加到全球性资源(例如文件夹或项目),则应省略此标志。如需将标记附加到区域级资源(例如 Compute Engine 实例),则必须指定位置,例如 us-central1

API

要将标记附加到资源,必须首先创建包含标记值和资源永久 ID 的标记绑定的 JSON 表示法。如需详细了解标记绑定的格式,请参阅 TagBinding 参考文档

如果要将标记附加到全球性资源(例如组织),请使用带有全球端点主机名的 tagBindings.create 方法:

POST https://cloudresourcemanager.googleapis.com/v3/tagBindings

如需将标记附加到区域级资源(例如 Compute Engine 实例),请使用 tagBindings.create 方法并使用资源所在的区域端点。

POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

请求 JSON 正文:

{
    "parent": RESOURCE_ID,
    "tagValue": TAGVALUE_NAME,
}

其中:

  • TAGBINDING_NAME 是标记绑定的名称,例如 tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/4567890123

  • RESOURCE_ID 是您要附加此标记值的资源的 ID,例如 projects/7890123456

  • TAGVALUE_NAME 是所附加的标记值的永久 ID,例如 tagValues/4567890123

  • LOCATION 是资源的区域端点,例如 us-central1

列出关联到资源的所有标记

您可以获取关联到某个资源的所有标记的列表。以下示例提供直接附加到资源的标记绑定列表,但不会返回继承自父级资源的任何标记。

控制台

如需查看附加到资源的所有标记,请执行以下操作:

  1. 打开 Cloud Console 中的管理资源页面。

    打开“管理资源”页面

  2. 在资源列表中查找您的组织、文件夹或项目。

  3. 附加到资源的标记会显示在标记列下。

gcloud

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

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

其中:

  • RESOURCE_ID 是资源的完整 ID,例如 //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION 是资源的位置。如果要列出附加到全球性资源(例如文件夹或项目)的标记,则应省略此标志。如需将标记附加到区域级资源(例如 Compute Engine 实例),则必须指定位置,例如 us-central1

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

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //cloudresourcemanager.googleapis.com/projects/7890123456

API

如需获取附加到全球性资源(例如组织)的标记绑定列表,请使用 tagBindings.list 方法,并在查询中指定父级资源:

GET https://cloudresourcemanager.googleapis.com/v3/tagBindings

{
    "parent": "RESOURCE_ID"
}

如需列出附加到区域级资源(例如 Compute Engine 实例)的标记绑定,请使用 tagBindings.list 方法并使用资源所在的区域端点。

GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

{
    "parent": "RESOURCE_ID"
}

其中:

  • RESOURCE_ID 是资源的完整 ID,例如 //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION 是资源的区域端点,例如 us-central1

如果成功,则响应正文应包含 TagBinding 对象的列表。例如:

name: tagBindings/cloudresourcemanager.googleapis.com/projects/7890123456/567890123456
tagValue: tagValues/567890123456
resource: //cloudresourcemanager.googleapis.com/projects/7890123456

从资源分离标记

您可以通过删除标记绑定资源,从资源分离标记。

控制台

如需将标记与资源分离,请执行以下操作:

  1. 打开 Cloud Console 中的管理资源页面。

    打开“管理资源”页面

  2. 点击要从中分离标记的组织、文件夹或项目。

  3. 在显示的信息面板中,点击标记标签页。

  4. 点击移除标记绑定单选按钮。

  5. 标记值框中,输入要移除的标记值的命名空间名称,例如 4567890123/Environment/Test

  6. 点击保存绑定

  7. 您可以在管理资源页面的标记列下找到所附加标记的更新列表。

gcloud

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

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

其中:

  • TAGVALUE_NAME 是所附加的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456

  • RESOURCE_ID 是资源的完整 ID。例如 //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION 是资源的位置。如果要删除附加到全球性资源(例如文件夹或项目)的标记绑定,则应省略此标志。如需删除附加到区域级资源(例如 Compute Engine 实例)的标记绑定,则必须指定位置,例如 us-central1

API

如需删除附加到全球性资源(例如组织)的标记绑定,请使用 tagBindings.delete 方法:

DELETE https://cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}

如需删除附加到区域级资源(例如 Compute Engine 实例)的标记绑定,请使用 tagBindings.delete 方法并使用资源所在的区域端点。

DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}

其中:

  • TAGBINDINGS_NAME 是 TagBinding 的永久 ID,例如 tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456

  • LOCATION 是资源的区域端点,例如 us-central1

删除标记

如需删除标记,必须删除其定义的每个组件。首先,您必须删除将此标记关联到层次结构中资源的所有标记绑定。如需了解如何删除标记绑定,请参阅从资源分离标记

一旦您想要删除的标记值没有标记绑定,就可以删除这些值。

控制台

如需删除标记值,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击包含要删除的标记值的标记键旁边的 操作,然后点击查看详情

  5. 在与此标记键关联的标记值列表中,点击要删除的标记值。

  6. 点击要删除的标记值旁边的复选框,然后点击 删除值

  7. 点击确认

gcloud

如需删除标记值,请使用 gcloud alpha resource-manager tag values delete 命令:

gcloud alpha resource-manager tags values delete TAGVALUE_NAME

其中,TAGVALUE_NAME 是您要删除的标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456

API

如需删除标记值,请使用 tagValues.delete 方法:

DELETE https://cloudresourcemanager.googleapis.com/v3/{name=TAGVALUE_NAME}

其中,TAGVALUE_NAME 是您要删除的标记值的永久 ID,例如 tagValues/567890123456

删除与某个键关联的所有标记值后,您便可以删除该键。

控制台

如需删除代码键,请执行以下操作:

  1. 在 Cloud Console 中打开标记页面。

    打开“标记”页面

  2. 选择页面顶部的项目选择器

  3. 组织选择器中选择您的组织。

  4. 点击要删除的标记键旁边的复选框。

  5. 点击 删除标记

  6. 点击确认

gcloud

如需删除标记键,请使用 gcloud alpha resource-manager tags keys delete 命令:

gcloud alpha resource-manager tags keys delete TAGKEYS_NAME

其中,TAGKEYS_NAME 是您要删除的标记键的永久 ID 或命名空间名称,例如 tagKeys/123456789012

API

如需删除标记键,请使用 tagKeys.delete 方法:

DELETE https://cloudresourcemanager.googleapis.com/v3/{name=TAGKEYS_NAME}

其中,TAGKEYS_NAME 是您要删除的标记键的永久 ID,例如 tagKeys/123456789012

政策和标记

您可以使用将标记与政策配合使用,以支持标记有条件地强制执行这些政策。您可以将是否存在标记值作为该政策的条件。

例如,您可以根据资源是否具有特定标记,有条件地授予 Identity and Access Management (IAM) 角色

如需详细了解如何将标记与 IAM 搭配使用来帮助控制对 Google Cloud 资源的访问权限,请参阅标记和访问权限控制

您还可以使用带有标记的组织政策来控制如何应用组织政策限制条件。如需了解详情,请参阅设置带有标记的组织政策

要求资源具有标记

您可以使用标记和 Identity and Access Management 条件强制要求为层次结构中的资源添加标记。此过程将使资源不可用,直到您为其附加特定标记为止。例如,您可能希望要求开发者先为资源分配成本中心,然后才能使用资源。

  1. 创建一个标记,您可以利用该标记将资源与其他内容关联,从而确定资源是否已应用适当的治理。例如,您可以创建键为 costCenter 且值为 00010002 等等的标记,以将资源与您公司的各种成本中心相关联。

  2. 创建组织级自定义角色,以允许用户为您要求标记的资源添加标记。这会将这些权限授予组织中任意位置的指定成员。

    例如,允许用户为项目添加标记的自定义角色将包括以下权限:

    • resourcemanager.projects.get
    • resourcemanager.resourceTagBindings.create
    • resourcemanager.resourceTagBindings.delete
    • resourcemanager.resourceTagBindings.list
  3. 为开发者创建项目时,请为他们分配项目的此自定义角色。

  4. 向开发者分配包含权限的任何其他角色,以便他们在该项目中执行所需的任何操作。为用户授予项目的角色时,这些角色应始终有条件地被授予角色,以要求附加 costCenter 标记。

    resource.hasTagKey('12345678901/costCenter')
    

现在,无论何时创建项目,您的开发者都必须为项目附加 costCenter 标记,然后他们才能在被授予 IAM 政策的项目中执行操作。

排查已知问题

条件表达式失败

如果您使用 gcloud 命令行工具运行某个 add-iam-policy-binding 命令,并且该资源的 IAM 政策包含该角色的条件角色绑定,gcloud 工具会提示您选择政策中的某个条件表达式。如果您选择包含英文逗号的条件表达式,该命令将失败。如需解决此问题,请在命令行中使用 --condition 标志指定条件表达式。