Google Cloud 资源层次结构是一种将资源整理成树结构的方法。此层次结构可帮助您管理资源 但该工具只能对几个业务维度进行建模, 结构、区域、工作负载类型和成本中心。层次结构缺少 灵活地将多个业务维度分层放置。
标记提供了一种为资源创建注解的方法,在某些情况下,可以根据资源是否有特定标记,有条件地允许或拒绝政策。您可以使用标记并有条件地执行政策,以便在资源层次结构内进行精细控制。
标记和标签
标签是为资源创建注解的一种单独方式。 下表列出了标记与标签之间的一些区别:
标记 | 标签 | |
---|---|---|
资源结构 | 标记键、标记值和标记绑定都是独立的资源 | 本身不是资源,而是资源的元数据 |
定义 | 在组织或项目级别定义 | 由每项资源定义 |
访问权限控制 | 管理和附加标记需要 Identity and Access Management (IAM) 角色 | 附加标签需要 IAM 角色,该角色因服务资源而异 |
附加的前提条件 | 必须先定义标记键和标记值,然后才能将标记附加到资源 | 没有关联前提条件 |
可否继承 | 标记绑定由 Google Cloud 层次结构中的资源的子级继承 | 不会被资源的子级继承 |
删除要求 | 除非相应标记不存在任何标记绑定,否则无法删除该标记 | 可以随时从资源中移除 |
命名要求 | 关于标记值和标记键的要求 | 关于标签的要求 |
键/值名称长度 | 最多 256 个字符 | 最多 63 个字符 |
IAM 政策支持 | 标记可由 IAM 政策条件引用 | 不支持 IAM 政策 |
组织政策支持 | 组织政策条件限制条件可以引用某些资源上的标记 | 不支持组织政策 |
Cloud Billing 集成 | 执行退款、审核和其他费用分配分析,并将 Cloud Billing 费用数据导出到 BigQuery | 在 Cloud Billing 中按标签过滤资源,将 Cloud Billing 数据导出到 BigQuery |
如需详细了解标签,请参阅创建和管理标签。
创建标记
标记采用键值对结构。标记键资源可在以下位置创建
组织或项目资源和标记值
附加到密钥上。例如,包含值的标记键 environment
production
和development
。
标记管理
管理员可以通过限制 更新、删除标记以及将标记附加到资源。他们可以选择一个单独的标记进行修改,例如添加或移除值,以及更新说明。这样,您就可以对代码进行精细控制。
可以向标记提供说明,当检索标记相关信息时即会显示该说明。这种说明可以确保 向资源添加标记即可了解该标记的用途。
对于特定资源,标记中的某个给定键只能有一个值。例如,标记键为 environment
且值为 production
的项目也不能有 environment
键的 development
值。
政策和标记
您可以使用将标记与政策配合使用,以支持标记有条件地强制执行这些政策。您可以将是否存在标记值作为该政策的条件。
例如,您可以 有条件地授予 Identity and Access Management (IAM) 角色 和 有条件地拒绝 IAM 权限 根据资源是否具有特定的标记来自定义。
创建标记后,您可以将其应用于资源。然后,您可以创建 根据标记是否附加到受支持的 资源。此政策会根据是否存在 附加到资源的标记
如需了解如何将标记与 Identity and Access Management (IAM) 搭配使用,以帮助控制对 Google Cloud 资源的访问权限,请参阅标记和访问权限控制。
标记继承
将标记键值对附加到资源时,该标记的所有后代 该资源会继承该标记。您可以替换后代继承的标记 资源。要替换继承的标记,请应用与 并使用不同的值。
例如,假设您将标记 environment: development
应用于文件夹,并且该文件夹有两个名为 team-a
和 team-b
的子文件夹。您还可以将不同的标记 environment: test
应用于 team-b
文件夹。因此,team-a
文件夹中的项目和其他资源会继承该 environment: development
标记,team-b
文件夹的项目和其他资源会继承 environment: test
标记:
如果您从 team-b
文件夹中移除了 environment: test
标记,则该文件夹及其资源将继承 environment: development
标记。
附加到资源并由资源继承的所有标记都采用 统称为有效代码。资源的有效标记 是直接附加到它的标记的组合,以及所有标记 附加到整个层次结构中所有资源的祖先实体。
使用标记管理政策时,建议您创建安全的默认标记。这意味着在组织资源级层设置的标记随后将在整个资源层次结构中继承。例如,标记键的短名称为 enforcement
,值为 default
、on
或 off
。如果您在组织级层设置 enforcement: default
,则所有资源都将继承该标记,除非标记在较低级层被覆盖。
然后,您可以编写政策来解决 enforcement
标记键,其中的条件将影响资源(如果资源为 enforcement: on
或 enforcement: off
),如果资源为 enforcement: default
,则为安全情况。如果 enforcement
标记已从资源中移除,则它随后会从其父资源继承 enforcement
的标记值。如果没有父资源具有 enforcement
标记,则它将从组织资源继承 enforcement: default
。
使用安全的默认标记可能会有所帮助,但是为了防止意外行为,您应该在移动资源或移除标记之前查看标记和有条件的策略。
删除标记键和值
移除标记键或值定义时,如果该标记已附加到资源,则移除操作会失败。在删除标记定义本身之前,您必须先删除现有的标记连接(称为标记绑定)。
防止标记值被删除
您可通过以下方式为代码值额外增加一层保护 将标记保全附加到标记值。与标记绑定一样,标记保全可防止 用户删除标记值。
某些资源会自动为附加到 资源。您必须先移除此标记保全,用户才能删除此标记值。