限制服务使用

本页面简要介绍了限制资源服务使用 组织政策限制条件,该限制条件可让企业管理员控制可以在其 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 org-policies set-policy /tmp/policy.yaml

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

限制未标记的资源

您可以使用标记和有条件的组织政策来限制未使用特定标记的任何资源。如果您在资源上设置了限制服务的组织政策,并使该政策以标记的存在为条件,则除非子资源已添加标记,否则无法使用该资源的所有子资源。这样一来,资源必须先根据您的治理计划进行设置,然后才能使用。

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

例如,如需仅允许在具有 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 示例

审核日志条目示例的屏幕截图