我很难找到正确的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负责人可以执行的操作分布在整个AWS上。它们没有存储在任何地方。发出请求时将应用访问决策,因此您应该根据发出的请求来考虑IAM策略。
当AWS API收到请求时,将在较高级别启动以确定该呼叫是否被授权:
AssumeRole
)上述每个操作都需要Allow
为用户授予访问权限的操作。
因此,您会看到,授予的实际访问权限分布在很多地方。上面的列表也仅适用于单个帐户。跨帐户访问更加分散。
如果您仅对基于身份的策略感兴趣,那么您正在进行的API调用将涵盖该问题,但是Deny
即使基于身份的策略允许执行该操作,其他任何API也会产生阻止该操作的效果,因此您可以d仅得到部分图像。
根据您使用它的目的,我会尝试不提前完整地了解用户的访问情况,因为实际上您将要为每个用户查询每个AWS服务。安全审核是一个例外,在这种情况下,有很多工具会尝试为您执行此操作,但是请注意:IAM是一个复杂的野兽,而审核是一个棘手的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句