IAM 政策的政策分析器

借助 Policy Analyzer,您可以了解哪些主账号(例如用户、服务 账号、群组和网域)对哪些 Google Cloud 资源拥有什么访问权限 基于 IAM 允许政策

政策分析器可帮助您回答如下问题:

  • 谁可以访问此 IAM 服务账号?
  • 谁可以读取此 BigQuery 数据集内包含个人用户的数据 个人身份信息 (PII)?
  • dev-testers”群组拥有哪些角色和权限 该项目中的资源?
  • 可以在项目中删除哪些 Compute Engine 虚拟机 (VM) 实例 答案是?
  • 哪些人可以访问晚上 7 点的此 Cloud Storage 存储桶?

政策分析器的工作原理

如需使用政策分析器,请创建分析查询,指定 然后运行查询。

分析查询

如需使用政策分析器,您需要创建一个分析查询,并指定一个或多个 以下字段之一:

  • 主账号:这些身份(例如用户、服务账号、群组、 和域)
  • 访问权限:要检查的权限和角色
  • 资源:要检查是否有权访问的资源
  • (仅限 API)条件上下文:上下文,例如 -

通常,您可以在分析查询中指定其中一个或两个字段, 使用查询结果来详细了解您未对某些字段 指定。例如,如果您想知道谁对 您需要在分析中指定访问权限和资源 查询,但不指定主账号。

有关您可以创建的查询类型的更多示例,请参阅常见查询 类型

分析范围

要运行分析查询,您需要指定范围, 分析。范围是您要 分析范围。仅 IAM 允许政策附加到 系统会分析用作范围及其后代的资源。

在 REST API 和 gcloud CLI 中,您可以手动指定范围。在 Google Cloud 控制台中,系统会根据 您当前管理的项目、文件夹或组织。

创建分析查询并指定范围后,您可以运行 查询来分析该范围内的政策。

查询结果

运行分析查询时,政策分析器会报告所有角色 绑定,其中包含您的主账号、访问权限和资源, 。对于每个角色绑定,它都会报告 绑定、绑定授予的访问权限(角色和权限)以及 绑定所授予访问权限的资源。

您可以查看这些结果,更好地了解在项目中的访问权限, 文件夹或组织例如,如果您运行了查询来找出 主账号有权访问特定资源,您可以查看这些主账号 出现该问题。

您可以通过启用查询 选项

支持的政策类型

IAM 政策分析器仅支持 IAM 允许 政策

政策分析器不支持以下形式的访问权限控制:

政策分析器查询结果未考虑不受支持的政策类型。对于 例如,假设用户对某个项目拥有 iam.roles.get 权限 但拒绝政策阻止用户使用 权限。政策分析器将报告其具有 iam.roles.get 权限。

政策继承

为了考虑政策继承情况,政策分析器 自动分析指定范围内所有相关的允许政策, 无论它们位于资源层次结构中的哪个位置。

例如,假设您要找出谁可以访问 IAM 服务账号:

  • 如果您将查询范围限定为项目,政策分析器会分析 服务账号的允许政策和项目的允许政策。
  • 如果您将查询范围限定到某个组织,Policy Analyzer 会分析 服务账号的政策,拥有该服务账号的项目的允许政策 服务账号、包含该项目的所有文件夹的允许政策,以及 组织的允许政策。

条件访问

如果角色绑定具有条件,则它仅会向主账号授予 则相应访问权限政策分析器始终报告条件 附加至相关角色绑定的集群。相关角色绑定是 包含您指定的主账号、访问权限和资源的绑定 。

在某些情况下,政策分析器还可以分析条件,这意味着 可以报告是否满足该条件。政策分析器可以分析 以下类型的条件:

如果相关角色绑定包含条件,政策分析器会执行以下其中一项操作: 以下:

  • 如果政策分析器可以分析条件,则会执行以下操作之一:

    • 如果条件评估结果为 true,则政策分析器将添加角色 绑定,并将条件评估标记为 TRUE.
    • 如果条件评估结果为 false,则政策分析器不会包含 角色。
  • 如果政策分析器无法分析相关角色绑定的条件, 它在查询结果中包含角色,并标记了条件评估 名称:CONDITIONAL

数据新鲜度

政策分析器使用 Cloud Asset API,可尽力提供数据新鲜度。 虽然几乎所有政策更新都会在几分钟内显示在政策分析器中, 政策分析器不会包含最新的政策更新。

常见查询类型

本部分介绍如何使用分析查询来 与访问权限相关的问题。

哪些主账号可以访问此资源?

如需确定哪些主账号可以访问资源,请创建分析查询 它指定了资源,您还可以根据需要指定 要检查的内容。

这些查询可帮助您回答如下问题:

  • 谁有权访问此 IAM 服务账号?
  • 谁有权模拟此 IAM 服务 ?
  • 项目 A 的结算管理员是谁?
  • (仅限 API 和 gcloud CLI):谁可以更新项目 A 来模拟服务账号?

如需了解如何创建和发送这些查询,请参阅确定哪些主账号 可以访问资源

哪些主账号拥有这些角色和权限?

如需确定哪些主账号具有特定角色和权限,请创建 指定正文及一组角色和权限的分析查询 检查项目

这些查询可帮助您回答如下问题:

  • 谁有权模拟我组织中的服务账号?
  • 谁是我所在组织的结算管理员?
  • 谁可以读取此 BigQuery 数据集内包含的数据 个人身份信息 (PII)?
  • (仅限 API 和 gcloud CLI):我组织中的哪些人可以读取 BigQuery 数据集吗?

如需了解如何创建和发送这些查询,请参阅确定哪些主账号 具有特定角色或权限

此主账号对此资源拥有哪些角色和权限?

如需确定主账号对特定资源拥有哪些角色和权限, 创建一个分析查询,并指定主账号和 您要检查的权限

这些查询可帮助您回答如下问题:

  • 用户 Sasha 在这方面拥有哪些角色和权限 BigQuery 数据集?
  • dev-testers”群组拥有哪些角色和权限 该项目中的资源?
  • (仅限 API 和 gcloud CLI): 如果用户 Dana 对此 BigQuery 数据集拥有 Dana, 该怎么办?

要了解如何创建和发送这些查询,请参阅确定 主账号拥有的资源

此主账号可以访问哪些资源?

如需确定特定主账号可以访问的资源,请创建分析 指定主账号以及您希望授予的 检查。

这些查询可帮助您回答如下问题:

  • 用户 Mahan 拥有哪些 BigQuery 数据集 读取权限?
  • 哪些 BigQuery 数据集属于 dev-testers 组 数据所有者?
  • Tal 可以删除项目 A 中的哪些虚拟机?
  • (仅限 API 和 gcloud CLI):用户 John 可以删除哪些虚拟机 该怎么办呢?

要了解如何创建和发送这些查询,请参阅确定 “主账号可以访问”

已保存的分析查询

如果您使用的是 REST API,则可以保存分析查询,以便重复使用或共享 和其他人交流。您可以像运行任何其他查询一样运行已保存的查询。

如需详细了解如何保存查询,请参阅管理已保存的查询

导出查询结果

您可以异步运行查询,并将查询结果导出到 BigQuery 或 Cloud Storage analyzeIamPolicyLongrunning.

如需了解如何将查询结果导出到 BigQuery,请参阅写入 BigQuery 政策分析

如需了解如何将查询结果导出到 Cloud Storage,请参阅写入 Cloud Storage 进行政策分析

查询选项

政策分析器提供了多种选项,可为您的查询添加更多详细信息 结果。

如需了解如何启用这些选项,请参阅启用选项

群组扩展

如果启用群组扩展功能,查询结果中的所有群组都会 扩展为单个成员。此扩展的上限为 每个群组 1,000 名成员。如果您有 足够的群组权限,嵌套群组也会展开。此选项 只有当您未在查询中指定主账号时才有效。

例如,假设您为查询“谁拥有 是否针对 project-1 授予了 storage.buckets.delete 权限?”如果政策分析器找到 任何具有 storage.buckets.delete 权限的群组,查询结果 将列出群组标识符,还会列出 。

通过此选项,您可以了解各个用户的即使该访问权限是 而是由他们在某个群组中的成员资格造成的

角色扩展

如果启用角色扩展,查询结果会列出每项权限包含的所有权限 以及角色本身的权限只有当您 在查询中指定任何权限或角色。

例如,假设您针对以下查询启用角色扩展: my-user@example.com在存储桶bucket-1上是否有权限?”如果政策分析器找到 授予 my-user@example.com 访问 bucket-1 的任何角色,则查询 结果不仅会列出角色名称,还会列出包含的所有权限 角色

通过此选项,您可以确切了解您的主账号拥有哪些权限。

资源扩展

如果您为政策分析器查询启用资源扩展,查询结果会 列出任何父级的所有相关后代资源 资源(项目、文件夹和组织)。这个 扩展上限为 1,000 每个父资源的资源数量(用于 Policy Analyzer 查询和 10 万项资源 每个父资源。

例如,请考虑资源扩展会对以下查询产生怎样的影响:

  • 谁对“project-1”拥有 storage.buckets.delete 权限?

    如果您为此查询启用资源扩展功能,则查询中的资源部分 查询结果不仅会列出项目,还会列出所有存储分区 内部 IP 地址

  • my-user@example.com有哪些资源 开启compute.instances.setIamPolicy权限?

    如果您为此查询和政策分析器启用资源扩展功能,会发现 my-user@example.com 拥有包含该权限的项目级层角色。 查询结果的 resources 部分中不仅会列出项目, 以及项目内的所有 Compute Engine 实例

通过此选项,您可以详细了解 所有主账号的访问权限

服务账号模拟

如果您使用的是 REST API 或 gcloud CLI,则可以启用分析功能 服务账号模拟

如果启用此选项,政策分析器会运行其他分析查询, 指定谁可以模拟具有指定 对指定资源的访问权限。政策分析器针对每个查询运行一个查询 服务账号。这些查询会分析 对服务账号的以下权限:

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

配额和限制

Cloud Asset Inventory 强制执行传入请求的速率,包括政策 分析请求。Cloud Asset Inventory 在群组成员资格和资源扩展中限制群组扩展 资源层级中的资源。

如需查看 Policy Analyzer 的默认配额和限制,请参阅配额和 限制

价格

每个组织最多可以执行 则每天运行 300 个分析查询。此限制同时适用于允许政策 和组织政策分析

如果您要执行 20 项以上的分析 查询数量,则必须在组织级别激活了付费服务 Security Command Center 层级。有关详情,请参阅结算 问题

后续步骤