检查 IAM 策略 - AWS Secrets Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

检查 IAM 策略

除了密钥策略,您还可以将 IAM 策略与密钥策略结合使用来允许访问密钥。有关 IAM 策略和密钥策略如何协同工作的更多信息,请参阅了解策略评估

要确定当前有权通过 IAM 策略访问密钥的身份,您可以使用基于浏览器的 IAM 策略模拟器工具,也可以将请求发送到 IAM 策略模拟器 API。

检查策略的效果

请按照以下选项卡之一中的步骤进行操作:

Using the web-based Policy Simulator

可以使用 IAM 策略模拟器帮助您了解哪些委托人可以通过 IAM 策略访问一个密钥。

  1. 登录 AWS 管理控制台,然后打开 IAM 策略模拟器 (https://policysim.aws.amazon.com/)。

  2. 用户、组和角色窗格中,选择具有您要模拟的策略的用户、组或角色。

  3. (可选)清除要从模拟中忽略的任何策略旁边的复选框。要模拟所有策略,则将所有策略保持选中状态。

  4. 策略模拟器窗格中,执行以下操作:

    1. 对于选择服务,请选择 AWS Secrets Manager

    2. 要模拟特定 Secrets Manager 操作,请针对选择操作选择要模拟的操作。要模拟所有 Secrets Manager 操作,请选择全选

  5. (可选) 默认情况下,策略模拟器会模拟对所有密钥的访问。要模拟访问特定密钥,请选择模拟设置,然后键入要模拟的密钥的 Amazon 资源名称 (ARN)。

  6. 选择 Run Simulation

您可以在结果部分查看模拟的结果。对 AWS 账户中的每个 IAM 用户、组和角色重复步骤 2 到 6。

Using the Policy Simulator CLI or SDK operations

您可以使用 IAM API 以编程方式检查 IAM 策略。以下步骤提供了如何执行该操作的一般概述:

  1. 对于在密钥策略中列为委托人的每个 AWS 账户,即使用以下格式列出的每个根用户账户"Principal": {"AWS": "arn:aws:iam::accountnumber:root"} 下,使用 API 中的 ListUsers 和 ListRoles 操作检索账户中的每个 IAM 用户和角色的列表。IAM

  2. 对于列表中的每个 IAM 用户和角色,请使用 API 中的 SimulatePrincipalPolicyIAM 操作并发送以下参数:

    • 对于 PolicySourceArn,指定列表中用户或角色的 ARN。只能为每个 SimulatePrincipalPolicy API 请求指定一个 PolicySourceArn。因此,您必须多次调用此 API,针对列表中的每个 IAM 用户和角色调用一次该 API。

    • 对于 ActionNames 列表,指定要模拟的每个 Secrets Manager API 操作。要模拟所有 Secrets Manager API 操作,请使用 secretsmanager:*。 要测试单独的 Secrets Manager API 操作,请在每个 API 操作之前添加“secretsmanager:”—,例如,“secretsmanager:ListSecrets”。要获取所有 Secrets Manager API 操作的完整列表,请参阅 AWS Key Management Service API 参考 中的操作

    • (可选)要确定 IAM 用户或角色是否有权访问特定密钥,请使用 ResourceArns 参数来指定密钥的 ARNs 列表。要确定 IAM 用户或角色是否有权访问任何密钥,请勿使用 ResourceArns 参数。

IAM 通过评估决策来响应每个 SimulatePrincipalPolicy API 请求:allowedexplicitDenyimplicitDeny。 对于包含评估决策 allowed 的每个响应,其中还将包含允许的特定 Secrets Manager API 操作的名称,以及评估中使用的密钥的 ARN(如果适用)。