允许政策的 Policy Simulator

借助适用于 Identity and Access Management 允许政策的 Policy Simulator,您可以先查看对允许政策的更改可能会对主帐号的访问权限产生怎样的影响,然后再决定是否要进行更改。您可以使用 Policy Simulator 来确保您所做的更改不会导致主账号失去所需的访问权限。

政策模拟器的工作原理

Policy Simulator 可帮助您确定对允许政策的更改可能会对用户产生的影响。为此,Policy Simulator 不仅会比较当前允许政策和建议的允许政策的权限。相反,它会根据访问日志来关注会对用户产生实际影响的权限更改。

如需了解对允许政策的更改可能会对主账号的访问权限有何影响,Policy Simulator 会确定过去 90 天内的哪些访问尝试在建议的允许政策和当前允许政策下具有不同的结果。然后,它会将这些结果报告为访问权限更改列表。

模拟对允许政策的更改时,您需要提供建议的允许政策,其中包含要测试的更改。此建议的允许政策可用于任何接受允许政策的资源

运行模拟时,政策模拟器会执行以下操作:

  1. 检索过去 90 天内受支持的资源类型的访问日志。这些日志的收集来源取决于您要模拟其允许政策的资源:

    • 如果您要模拟项目或组织的允许政策,Policy Simulator 会检索该项目或组织的访问日志。
    • 如果您要模拟其他类型的资源的允许政策,Policy Simulator 会检索该资源的父级项目或组织的访问日志。
    • 如果您要同时模拟多个资源的允许政策,Policy Simulator 会检索这些资源最近的常见项目或组织的访问日志。

    如果父资源不存在 90 天,则政策模拟器检索自资源创建以来的所有访问尝试。

  2. 使用当前允许政策重新评估或重放访问日志中记录的replays访问尝试,并考虑任何沿用的允许政策以及对后代资源设置的任何允许政策。

    使用当前允许政策重放访问尝试可确保 Policy Simulator 仅报告建议的允许政策引发的更改,不报告您在过去 90 天内所做的其他允许政策修改引发的更改。

  3. 使用建议的允许政策再次重放访问尝试,然后再考虑任何沿用的允许政策以及对后代资源设置的任何允许政策。

  4. 比较两个重放的结果并报告差异,这样就能了解到建议的更改对主账号访问权限的影响。

示例:测试政策变更

假设您想要移除用户的 Organization Viewer 角色 (roles/resourcemanager.organizationViewer)。您想使用政策模拟器来确认此更改不会影响用户的访问权限。

您可以使用 Google Cloud 控制台、REST API 或 Google Cloud CLI 模拟对允许政策的更改

开始模拟时,政策模拟器会执行以下操作:

  • 检索过去 90 天内的组织访问日志。
  • 使用组织的当前允许政策重放访问尝试,该政策中用户具有 Organization Viewer 角色。
  • 使用建议的允许政策再次重放访问尝试,该政策中用户不具有 Organization Viewer 角色。
  • 比较两个重放的结果,并报告它们之间的差异。

然后,您可以查看结果以了解建议的更改如何影响用户的访问权限。

示例:政策沿用

假设您要模拟对具有以下结构的组织中的文件夹 Engineering 的允许政策的更改:

组织结构示例

请注意,Engineering 有一个父级资源(组织 example.com)沿用了允许政策。它还有三个子级项目,这些项目具有自己的允许政策:example-prodexample-devexample-test

您需要提供建议的允许政策并运行模拟。当您开始模拟时,政策模拟器会执行以下操作:

  • 检索过去 90 天内的所有相关日志。由于 Engineering 是一个文件夹,因此政策模拟器会从其父级组织 example.com 检索日志。
  • 使用文件夹的当前允许政策、从 example.com 沿用的允许政策以及子级项目的允许政策重放访问尝试。
  • 使用建议的允许政策、从 example.com 沿用的允许政策以及子级项目的允许政策再次重放每次访问尝试。
  • 比较各重放的结果并报告它们之间的差异。

然后,您可以查看结果以了解建议的更改如何影响用户的访问权限。

查看政策模拟器结果

Policy Simulator 会将建议的对允许政策的更改的影响报告为访问权限更改列表。访问权限更改表示过去 90 天内的访问尝试,在建议的允许政策下产生的结果与在当前允许政策下产生的结果不同。

政策模拟器还列出了模拟期间发生的所有错误,从而帮助您识别模拟中的潜在差距。

访问权限有以下几种类型:

访问权限变更 详细信息
访问权限已被撤消 主账号在当前允许政策下拥有访问权限,但在实施建议的更改之后将不再拥有访问权限。
访问权限可能已被撤消

出现此结果的原因如下:

  • 主账号在当前允许政策下拥有访问权限,但其在建议的允许政策下的访问权限为未知
  • 主账号在当前允许政策下的访问权限为未知,但在实施建议的更改之后将不再拥有访问权限。
已获得访问权限 主账号在当前允许政策下没有访问权限,但在实施建议的更改之后将拥有访问权限。
可能已获得访问权限

出现此结果的原因如下:

  • 根据当前允许政策,主账号没有访问权限,但在建议的更改后,其访问权限未知
  • 主账号在当前允许政策下的访问权限为未知,但在实施建议的更改之后将拥有访问权限。
访问权限未知 主账号在当前允许政策和建议的允许政策下的访问权限均为未知,并且建议的更改可能会影响主账号的访问权限。
错误 模拟过程中发生错误。

未知结果

如果访问结果为未知,则表示政策模拟器没有足够的信息来全面评估访问尝试。

导致结果未知的原因有多种:

  • 角色信息遭拒:运行模拟的主账号无权查看正在模拟的一个或多个角色的角色详细信息。
  • 无法访问政策:运行模拟的主账号无权获取模拟中涉及的一个或多个资源的允许政策。
  • 成员资格信息被拒:运行模拟的主账号无权查看模拟的允许政策中包含的一个或多个群组的成员。
  • 条件不受支持:要测试的允许政策中存在条件角色绑定。Policy Simulator 不支持条件,因此无法评估绑定。

如果访问结果未知,Policy Simulator 结果会报告未知的原因,以及无法访问或评估的特定角色、允许政策、成员资格信息和条件。

错误

政策模拟器还会报告模拟期间发生的任何错误。请务必查看这些错误,了解模拟中的潜在差距。

政策模拟器可能会报告多种类型的错误:

  • 操作错误:无法运行模拟。

    如果错误消息指出项目或组织中包含过多日志,导致无法运行模拟,则无法对资源运行模拟。

    如果您出于其他原因遇到此错误,请尝试重新运行模拟。如果仍无法运行模拟,请发送电子邮件至 policy-simulator-feedback@google.com。

  • 重放错误:单次访问尝试重放失败,因此 Policy Simulator 无法确定访问尝试的结果是否会在建议的允许政策下更改。

  • 不受支持的资源类型错误:建议的允许政策会影响与不受支持的资源类型相关联的权限,Policy Simulator 无法模拟这种权限。政策模拟器会在模拟结果中列出这些权限,以便您了解它无法模拟的权限。

日志重放大小上限

模拟最多可以重放 5,000 个访问日志。如果您的项目或组织在过去 90 天内的访问日志超过 5,000 个,模拟将失败。

要了解政策模拟器如何确定要检索的访问日志,请参阅本页中的政策模拟器的工作原理

资源类型的支持级别

政策模拟器不支持模拟中的所有资源类型。这会影响能够模拟的权限更改。

支持的资源类型

政策模拟器支持以下资源类型:

服务 支持的资源类型
Cloud Storage
  • buckets
Pub/Sub
  • snapshots
  • subscriptions
  • topics
Cloud SQL
  • backupRuns
  • databases
  • instances
  • sslCerts
  • users
Spanner
  • backups
  • backupOperations
  • databases
  • databaseOperations
  • instanceConfigs
  • instanceOperations
  • instances
  • sessions
Resource Manager
  • folders
  • organizations
  • projects
Compute Engine
  • instances

不支持的资源类型

不受支持的资源类型是政策模拟器无法检索访问日志的资源类型。如果 Policy Simulator 无法检索资源的访问日志,则无法评估建议的允许政策可能会对访问尝试产生的影响。

如果对允许政策建议的更改涉及不受支持的资源类型的权限,则 Policy Simulator 会在模拟结果中列出这些权限,以便您了解它无法模拟哪些权限。例如,Policy Simulator 不支持 AI Platform 模型。因此,如果建议的允许政策移除了具有 aiplatform.models.list 权限的角色,则该模拟状态的结果是无法模拟 aiplatform.models.list 权限的结果。

后续步骤