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 资源:
- 实例
- 磁盘
- 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。
使用安全的默认标记可能会有所帮助,但是为了防止意外行为,我们建议您在移动资源或移除标记之前查看标记和有条件的政策。
删除标记键和值
您必须先删除使用相应标记值的所有资源绑定,然后才能删除该标记值。
防止标记值被删除
您可以为标记值附加标记保留,从而为标记值创建额外的保护层。与标记绑定类似,标记保留可防止用户删除标记值。
某些资源会自动为附加到资源的每个标记值创建标记保留。您必须先移除此标记保留,然后才能删除标记值。