资源层次结构是一种将资源整理成树结构的方法。 Google Cloud此层次结构可帮助您大规模管理资源,但它仅可建立少量业务维度的模型,包括组织结构、区域、工作负载类型和成本中心。层次结构缺乏将多个业务维度层叠放置的灵活性。
标记提供了一种为资源创建注解的方法,在某些情况下,可以根据资源是否有特定标记,有条件地允许或拒绝政策。您可以使用标记并有条件地执行政策,以便在资源层次结构内进行精细控制。
标记和标签
标签是为资源创建注解的另一种方法。 下表列出了一些标记和标签之间的区别:
| 标记 | 标签 | |
|---|---|---|
| 资源结构 | 标记键、标记值和标记绑定都是离散资源 | 本身不是资源,而是资源的元数据 |
| 定义 | 在组织或项目级层定义 | 由每个资源定义 |
| 访问权限控制 | 管理和附加标记需要 Identity and Access Management (IAM) 角色 | 附加标签需要 IAM 角色,这些角色因服务资源而异 |
| 附加的前提条件 | 必须先定义标记键和标记值,然后才能将标记附加到资源 | 附加时没有前提条件 |
| 可否继承 | 资源的子级会根据 Google Cloud 层次结构继承标记绑定 | 不会由资源的子级继承 |
| 删除要求 | 除非该标记没有标记绑定,否则无法删除标记 | 可以随时从资源中移除 |
| 命名要求 | 标记值和标记键的要求 | 标签的要求 |
| 键值对名称长度 | 最多 256 个字符 | 最多 63 个字符 |
| 允许和拒绝政策支持 | 标记可由 允许政策条件 和 拒绝政策条件引用 | 不支持允许和拒绝政策 |
| 组织政策支持 | 某些资源上的标记可由 组织政策条件限制条件引用 | 不支持组织政策 |
| Cloud Billing 集成 | 执行退款、审核和其他费用分配分析,将 Cloud Billing 费用数据导出到 BigQuery | 在 Cloud Billing 中按标签过滤资源,将 Cloud Billing 数据导出到 BigQuery |
如需详细了解标签,请参阅 创建和管理标签。
创建标记
标记采用键值对结构。标记键资源可以在组织或项目资源下创建,标记值是附加到标记键的资源,例如,具有值 production 和 development 的标记键 environment。
标记管理
管理员可以通过限制谁能够创建、更新、删除标记以及将标记附加至资源来控制标记的使用。他们可以选择一个单独的标记进行修改,例如添加或移除值,以及更新说明。这样可以对标记进行精细控制。
标记可以选择性地包含说明,当检索标记相关信息时即会显示该说明。说明有助于将标记附加到资源的用户了解标记的用途。
在父项目或组织中,每个标记键都必须是唯一的。这样可确保每个标记值在绑定到资源时,都会与其标记键创建唯一的配对。
政策和标记
您可以将标记和 IAM 条件搭配使用,以实现以下目的:
创建标记值后,您可以将标记值绑定到资源。然后,您可以创建 IAM 政策,其中包含根据标记键是否已绑定到 资源来识别资源的条件。如需了解如何使用标记和 IAM 条件,请参阅 标记和条件式访问权限。
使用组织政策实现强制性标记
您可以使用自定义组织政策对资源强制实施标记。强制实施标记后,您只能创建符合组织标记政策的资源;也就是说,资源会绑定到政策中指定的强制性标记键的标记值。 如需了解详情,请参阅 设置自定义限制条件以强制实施标记。
以下资源类型支持强制实施标记:
- Resource Manager 项目和文件夹
- Filestore 实例
- AlloyDB for PostgreSQL 集群和备份资源
- Workflows 工作流
- Compute Engine 资源:
- 实例
- 磁盘
- 外部 VPN 网关
- VPN 网关
- 目标 VPN 网关
- VPN 隧道
- VPC 资源:
- 网络
- 子网
- 防火墙规则
- 路由
标记继承
将标记值附加到资源后,默认情况下,该资源的所有后代都会继承相同的标记值。您可以替换后代资源上继承的标记值。如需替换继承的标记值,请将不同的标记值绑定到后代资源。不同的标记值必须使用与继承的标记值相同的标记键。
例如,假设您将标记 environment: development 应用于文件夹,并且该文件夹有两个名为 team-a 和 team-b 的子文件夹。
您还可以将不同的标记 environment: test 应用于 team-b 文件夹。因此,team-a 文件夹中的项目和其他资源会继承该 environment: development 标记,team-b 文件夹的项目和其他资源会继承 environment: test 标记:
如果您从 team-b 文件夹中移除了 environment: test 标记,则该文件夹及其资源将继承 environment: development 标记。
附加到资源并由资源继承的所有标记统称为有效标记。 资源的有效标记是直接附加到该资源的标记以及附加到整个层次结构中该资源的所有祖先的所有标记的组合。
将标记与 IAM 条件搭配使用时,建议您为 IAM 条件使用的每个标记键创建一个安全的默认标记值。将该标记值绑定到组织,以应用安全的默认标记值,以便组织内的所有资源都继承该标记值。仅通过显式替换相关资源上继承的绑定来更改标记值。
例如,假设您有一个 IAM 条件,该条件依赖于 enforcement 标记键的标记值 on,并且该标记键还具有 off 标记值。将标记值 enforcement: off 绑定到组织,以创建一个安全的默认值,该默认值由组织内的所有资源继承。
仅将标记值 enforcement: on 绑定到组织内选定的资源。
然后,您可以编写政策来解决 enforcement 标记键,其中的条件将影响资源(如果资源为 enforcement: on 或 enforcement: off),如果资源为 enforcement: default,则为安全情况。如果 enforcement 标记键已从资源中移除,则该资源随后会从其父资源继承 enforcement 的标记值。如果没有父资源
具有 enforcement 标记键,则该资源会从组织资源继承 enforcement: default
。
使用安全的默认标记可能会有所帮助,但是为了防止意外行为,我们建议您在移动资源或移除标记之前查看标记和有条件的策略。
删除标记键和值
您必须先删除使用标记值的所有资源绑定,然后才能删除标记值。
防止标记值被删除
您可以将标记保留附加到标记值,为标记值创建额外的保护层。与标记绑定一样,标记保留可防止用户删除标记值。
某些资源会自动为附加到资源的每个标记值创建标记保留。您必须先移除此标记保留,然后才能删除标记值。
后续步骤
- 如需了解如何使用标记,请参阅 创建和管理标记页面。
- 如需了解如何将标记与 Compute Engine 搭配使用,请参阅 管理资源标记。
- 如需了解如何将安全标记用于防火墙政策,请参阅 创建和管理安全标记。