Dan*_*ick 5 amazon-web-services amazon-iam
我很难找到正确的 API 调用来回答这个问题:给定一个 IAM 用户,管理该用户的有效 IAM 策略文档是什么?
看起来我可以使用多个 API 调用的组合并连接客户端中的策略来完成上述操作:
aws iam list-groups-for-user --user-name my-useraws iam list-attached-group-policies --group-name my-groupaws iam list-attached-user-policies --user-name my-useraws iam get-policy --policy-arn my-policy-arnaws 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 委托人可以执行的操作分布在整个 AWS 中;它们不存储在任何一处。访问决策在发出请求时应用,因此您应该根据发出的请求来考虑 IAM 策略。
当 AWS API 收到请求时,会在高层执行以下操作来确定调用是否获得授权:
AssumeRole)上述每一项都需要执行Allow操作才能授予用户访问权限。
因此,您会看到,授予的实际访问权限分布在相当多的地方。上面的列表也仅适用于单个帐户。跨账户访问更加分散。
如果您只对基于身份的策略感兴趣,那么您所做的 API 调用将覆盖它,但是任何其他调用都可能会产生Deny阻止该操作的效果,即使基于身份的策略允许该操作,因此您'只能得到部分图片。
根据您使用此功能的目的,我会尽量不要提前获取用户访问的完整情况,因为您实际上将查询每个用户的每个 AWS 服务。安全审计是个例外,在这种情况下,有大量工具会尝试为您执行此操作,但请注意:IAM 是一个复杂的野兽,对其进行审计是一个棘手的问题。
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |