限制资源使用

本页面简要介绍了限制资源服务使用量 组织政策限制条件、 这样企业管理员可以控制 用户可在自己的 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,或拒绝compute.googleapis.com 在文件夹 Y 中。此限制条件还决定了 Google Cloud 控制台可用性

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

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

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

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

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

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

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.googleapis.com 具有 sqladmin=enabled 标记,则可以创建一项组织政策, 对没有此标记的项目拒绝 sqladmin.googleapis.com sqladmin=enabled.

  1. 创建代码 确定是否对资源进行了适当的治理 。例如,您可以创建一个标记,其中键为 sqlAdmin,键为 值enabled,用于指定该资源应允许 Cloud SQL Admin API。例如:

    创建标记键和值

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

  3. 在级别创建 Restrict Resource Service Usage 组织政策 组织资源,以拒绝对 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 条目示例的屏幕截图