限制资源使用

本页面概述了限制资源服务使用量 组织政策限制条件,该限制条件允许企业管理员控制可以在其 Google Cloud 资源层次结构中使用哪些 Google Cloud 服务。只能对资源是组织、文件夹或项目资源的直接后代的服务强制执行此限制条件。例如,Compute Engine 和 Cloud Storage。

限制资源服务使用量限制条件排除了某些服务,且不适用于 Google Cloud 产品的基本依赖项,例如 Identity and Access Management (IAM)、Cloud Logging 和 Cloud Monitoring。如需查看此限制条件支持的云资源服务列表,请参阅限制资源用量支持的服务

管理员可以使用此限制条件为资源容器(例如组织、文件夹或项目)内允许的 Google Cloud 资源服务定义分层限制。例如,允许项目 X 中的 storage.googleapis.com 或拒绝文件夹 Y 中的 compute.googleapis.com。此限制条件还决定了 Google Cloud 控制台可用性

限制资源服务使用限制条件可通过两种互斥的方式使用:

  • 拒绝名单 - 允许任何未拒绝的服务的资源。

  • 许可名单 - 拒绝任何不允许的服务的资源。

限制资源服务使用限制条件会控制对所有范围内资源的运行时访问权限。当包含此限制条件的组织政策更新时,它会立即应用于对政策范围内所有资源的所有访问,同时保证最终一致性。

我们建议管理员谨慎管理对包含此限制条件的组织政策的更新。通过使用标记有条件地强制执行限制条件,您可以更安全地发布此政策更改。如需了解详情,请参阅设置带有标记的组织政策

当某项服务受此政策限制时,直接依赖于受限服务的某些 Google Cloud 服务也将受到限制。这仅适用于管理相同客户资源的服务。 例如,Google Kubernetes Engine (GKE) 依赖于 Compute Engine。 当 Compute Engine 受到限制时,GKE 也会受到限制。

Google Cloud 控制台可用性

Google Cloud 控制台中受限服务的运作方式如下:

  • 您无法使用 菜单导航到产品。
  • 受限服务不会显示在 Google Cloud 控制台的搜索结果中。
  • 当您通过链接或书签导航到受限服务的 Google Cloud 控制台页面时,系统会显示错误消息。

使用“限制资源服务使用”限制条件

您可以在组织、文件夹和项目级别设置组织政策限制条件。每项政策都会应用于其相应资源层次结构中的所有资源,但可以在资源层次结构中的较低级层被替换。

如需详细了解政策评估,请参阅了解层次结构评估

设置组织政策

要设置、更改或删除组织政策,您必须拥有组织政策管理员角色。

控制台

如需设置包含限制资源服务使用限制条件的组织政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到组织政策页面。

    转到“组织政策”

  2. 从项目选择器中,选择您要设置组织政策的资源。

  3. 在组织政策表中,选择限制资源服务使用 (Restrict Resource Service Usage)。

  4. 点击管理政策

  5. 应用对象下,选择覆盖父级政策

  6. 政策执行下,选择此政策的继承方式。

    1. 如果要继承父资源的组织政策并将其与此政策合并,请选择与父资源规则合并

    2. 如果您要替换任何现有组织政策,请选择替换

  7. 点击添加规则

  8. 政策值下方,选择自定义

  9. 政策类型下,选择拒绝表示列入拒绝名单,选择允许表示列入许可名单。

  10. 自定义值下,将您要阻止或允许的服务添加到列表中。

    1. 例如,如需屏蔽 Cloud Storage,您可以输入 storage.googleapis.com

    2. 如需添加更多服务,请点击添加值

  11. 如需强制执行政策,请点击设置政策

gcloud

可以通过 Google Cloud CLI 设置组织政策。如需强制执行包含限制资源服务使用限制条件的组织政策,请先创建一个包含要更新的政策的 YAML 文件:

name: organizations/ORGANIZATION_ID/policies/gcp.restrictServiceUsage
spec:
   rules:
   - values:
       deniedValues:
       - file.googleapis.com
       - bigquery.googleapis.com
       - storage.googleapis.com

ORGANIZATION_ID 替换为您的组织资源的 ID。 如需对资源设置此政策,请运行以下命令:

gcloud beta resource-manager org-policies set-policy \
  --project='PROJECT_ID' /tmp/policy.yaml

PROJECT_ID 替换为您要强制执行此组织政策的资源的项目 ID

如需了解如何在组织政策中使用限制条件,请参阅使用限制条件

限制未标记的资源

您可以使用标记和条件组织政策来限制没有使用特定标记的任何资源。如果您针对限制服务的资源设置了组织政策,并以存在标记为条件,则除非已标记,否则将无法使用源自该资源的子资源。通过这种方式,您必须根据自己的治理计划对资源进行设置,然后才能使用它们。

如需限制未标记的组织、文件夹或项目资源,您可以在创建组织政策时在条件查询中使用 ! 逻辑运算符。

例如,如需仅允许在带有 sqladmin=enabled 标记的项目中使用 sqladmin.googleapis.com,您可以创建一个组织政策,在没有带有 sqladmin=enabled 标记的项目上拒绝 sqladmin.googleapis.com

  1. 创建标记,用于标识资源是否已应用适当的治理。例如,您可以创建一个键为 sqlAdmin 且值为 enabled 的标记,以指定该资源应允许使用 Cloud SQL Admin API。例如:

    创建标记键和值

  2. 点击新创建的代码的名称。在后续步骤中创建条件时,您需要标记键的命名空间名称(列在标记键路径下)。

  3. 在组织资源级别创建限制资源服务使用情况组织政策,以拒绝对 Cloud SQL Admin API 的访问。例如:

    创建用于限制资源的组织政策

  4. 向上述组织政策添加一个条件,指定在治理标记不存在时强制执行该政策。条件构建器不支持逻辑 NOT 运算符,因此必须在条件编辑器中构建此条件。例如:

    构建条件组织政策

    !resource.matchTag("012345678901/sqlAdmin", "enabled")

现在,sqlAdmin=enabled 标记必须附加到某个项目或者由该项目继承,这样您的开发者才能将 Cloud SQL Admin API 用于该项目。

如需详细了解如何创建条件组织政策,请参阅使用标记设置组织政策

在试运行模式下创建组织政策

试运行模式下的组织政策是一种组织政策,在这种政策中,系统会审核违反政策的行为,但不会拒绝违反政策的操作。您可以在试运行模式下创建组织政策,使用限制资源服务使用量限制条件,以便在强制执行实时政策之前监控该政策对您的组织有何影响。如需了解详情,请参阅在试运行模式下创建组织政策

错误消息

如果您设置了一项组织政策来拒绝资源层次结构 B 中的服务 A,则当客户端尝试使用资源层次结构 B 中的服务 A 时,操作将失败。系统会返回错误消息,说明失败的原因,此外还会生成一个 AuditLog 条目以进一步监控、提醒或调试。

错误消息示例

Request is disallowed by organization's constraints/gcp.restrictServiceUsage
constraint for projects/PROJECT_ID attempting to use service
storage.googleapis.com.

Cloud Audit Logs 示例

Audit Log 条目示例的屏幕截图