标记概览

Google Cloud 资源层次结构是一种将资源整理成树结构的方法。虽然层次结构对于大规模管理资源很有用,但它仅限于对一些业务维度进行建模,例如组织结构、区域、工作负载类型、成本中心等。层次结构缺乏将多个业务维度层叠放置的灵活性。

标记提供了一种根据资源是否有特定标记,有条件地允许或拒绝政策的方法。您可以使用标记并有条件地执行政策以便在资源层次结构内进行精细控制。

创建标记

标记采用键值对的结构。标记键资源可以在组织资源下创建,标记值是附加到标记键的资源。例如,标记键“environment”的值为“production”和“development”。

标记管理

管理员可以通过限制谁能够创建、更新、删除标记以及将标记附加至资源来控制标记的使用。他们可以选择一个单独的标记进行修改,例如添加或移除值,以及更新说明。这样可以对整个组织内的标记进行精细控制。

可以向标记提供说明,当检索标记相关信息时即会显示该说明。这样一来,将标记附加到资源的任何人都将了解该标记的用途。

对于特定资源,标记中的某个给定键只能有一个值。例如,标记键为 environment 且值为 production 的项目也不能有 environment 键的 development 值。

政策和标记

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

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

创建标记后,您可以将其应用于资源。然后,您可以根据是否将标记附加至资源来创建条件式政策。该政策是否生效取决于是否有标记附加至资源。

如需了解如何将标记与 Identity and Access Management (IAM) 搭配使用,以帮助控制对 Google Cloud 资源的访问权限,请参阅标记和访问权限控制

标记继承

当标记键值对附加到资源时,该资源的所有后代都将继承该键值对。为防止较低级的资源继承标记,您可以将某个标记应用于较低级资源,该标记的键与继承标记的键使用不同的值。

例如,假设您将标记 environment: dev 应用于文件夹,并且该文件夹有两个名为 team-ateam-b 的子文件夹。您还可以将不同的标记 environment: test 应用于 team-b 文件夹。因此,team-a 文件夹中的项目和其他资源会继承该 environment: dev 标记,team-b 文件夹的项目和其他资源会继承 environment: test 标记:

如果您从 team-b 文件夹中移除了 environment: test 标记,则该文件夹及其资源将继承 environment: dev 标记。

使用标记管理政策时,建议您创建安全的默认标记。这意味着在组织资源级层设置的标记随后将在整个资源层次结构中继承。例如,标记键的短名称为 enforcement,值为 defaultonoff。如果您在组织级层设置 enforcement: default,则所有资源都将继承该标记,除非标记在较低级层被覆盖。

然后,您可以编写政策来解决 enforcement 标记键,其中的条件将影响资源(如果资源为 enforcement: onenforcement: off),如果资源为 enforcement: default,则为安全情况。如果 enforcement 标记已从资源中移除,则它随后会从其父资源继承 enforcement 的标记值。如果没有父资源具有 enforcement 标记,则它将从组织资源继承 enforcement: default

使用安全的默认标记可能会有所帮助,但是为了防止意外行为,您应该在移动资源或移除标记之前查看标记和有条件的策略。

删除标记键和值

移除标记键或值定义时,如果该标记已附加到资源,则移除操作会失败。在删除标记定义本身之前,您必须先删除现有的标记连接(称为标记绑定)。

后续步骤

如需了解如何使用标记,请参阅创建和管理标记页面。