我很难找到正确的 API 调用来回答这个问题:给定一个 IAM 用户,管理该用户的有效 IAM 政策文档是什么?
看起来我可以使用几个 API 调用的组合并在客户端中连接策略来完成上述操作:
aws iam list-groups-for-user --user-name my-user
aws iam list-attached-group-policies --group-name my-group
aws iam list-attached-user-policies --user-name my-user
aws iam get-policy --policy-arn my-policy-arn
aws iam get-policy-version --policy-arn my-policy-arn -version-id my-version
这至少是 5 个 API 调用,最多是无限数量的调用。我什至犹豫要不要写这个逻辑,因为一个用户属于几个组并且这些组包含数十或数百个策略是很常见的。
我肯定在某个地方缺少一个 API 端点吗?
像这样:
aws iam get-effective-user-policy --user-name my-user
最佳答案
这在 AWS 中并不真正支持,因为 IAM 委托(delegate)人可以执行的操作是分布在 AWS 中的;它们不会存储在任何一个地方。在发出请求时应用访问决策,因此您应该根据发出的请求来考虑 IAM 策略。
当 AWS API 收到请求时,this is what kicks in at a high level确定调用是否被授权:
AssumeRole
创建 session 时适用)以上每一项都需要
Allow
授予用户访问权限的操作。因此,您会看到,授予的实际访问权限分布在很多地方。上面的列表也仅适用于单个帐户。跨账户访问更加分散。
如果您只对基于身份的策略感兴趣,那么您正在进行的 API 调用将涵盖它,但其他任何一个都可能有
Deny
阻止该操作的效果,即使基于身份的策略允许该操作,所以您只能获得部分图片。根据您使用它的目的,我会尽量不要提前全面了解用户的访问情况,因为您实际上是要为每个用户查询每一个 AWS 服务。异常(exception)情况是安全审计,在这种情况下有 slew of tools它将尝试为您执行此操作,但请注意:IAM 是一个复杂的野兽,对其进行审计是一个棘手的问题。
关于amazon-web-services - 使用 AWS API : Given IAM User, 获取当前有效的 IAM 政策文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63564226/