使用AWS API:给IAM用户,获取当前有效的IAM策略文档

丹尼尔·帕特里克(Daniel Patrick)

我很难找到正确的API调用来回答此问题:给定一个IAM用户,管理该用户的有效IAM策略文档是什么?

看来我可以结合几个API调用并在客户端中串联策略来完成上述操作:

  1. aws iam list-groups-for-user --user-name my-user
  2. 对于每个返回的组: aws iam list-attached-group-policies --group-name my-group
  3. aws iam list-attached-user-policies --user-name my-user
  4. 连接从步骤2和3.返回的策略。
  5. 每个政策: aws iam get-policy --policy-arn my-policy-arn
  6. 并针对每个政策: 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收到请求时,将在较高级别启动以确定该呼叫是否被授权:

  • 基于身份的策略(附加到用户,其组或角色的策略)
  • 基于资源的策略(附加到用户请求的资源的策略;例如,S3存储桶或EC2实例)
  • IAM权限边界
  • 服务控制策略(SCP)(通过AWS组织定义)
  • 会话策略(在通过临时凭据和创建会话时适用AssumeRole

上述每个操作都需要Allow为用户授予访问权限的操作。

因此,您会看到,授予的实际访问权限分布在很多地方。上面的列表也仅适用于单个帐户。跨帐户访问更加分散。

如果您仅对基于​​身份的策略感兴趣,那么您正在进行的API调用将涵盖该问题,但是Deny即使基于身份的策略允许执行该操作,其他任何API也会产生阻止该操作的效果,因此您可以d仅得到部分图像。

根据您使用它的目的,我会尝试不提前完整地了解用户的访问情况,因为实际上您将要为每个用户查询每个AWS服务。安全审核是一个例外,在这种情况下,有很多工具会尝试为您执行此操作,但是请注意:IAM是一个复杂的野兽,而审核是一个棘手的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Java API获取AWS账户详细信息?不适合IAM用户

提供给盐云用户的AWS IAM策略

从AWS开发工具包,如何获取当前登录的用户名(或IAM用户)?

为API网关权限转义AWS IAM策略变量

使用简单英语的AWS IAM角色和策略?

AppSync:使用AWS_IAM身份验证时以$ context获取用户信息

将IAM策略文档对象列表用作AWS :: Serverless :: Function策略

从CLI或SDK获取AWS IAM策略访问顾问记录

AWS Cloudformation IAM策略与资源

您如何使用terraform动态创建具有可变数量的资源块的AWS IAM策略文档?

为什么我的AWS当前登录用户没有IAM用户?

AWS IAM策略允许除特定IAM之外的所有操作

不支持带有“ aws:ResourceTag”的IAM策略

使用AWS_IAM授权对AWS WebSocket API网关的请求

使用CDK创建自定义AWS IAM策略

使用Terraform与IAM用户分离策略

AWS IAM用户应具有哪些策略模板才能部署EB应用程序?

AWS IAM策略:要求用户自行配置MFA

如何让mysql使用当前有效的linux用户作为mysql中的默认用户?

使用AWS IAM用户角色凭证的AWS S3存储桶API调用:

允许用户创建具有特定策略/角色的IAM用户的AWS IAM策略

如何获取 AWS 中每个 IAM 用户使用的资源/成本摘要?

确定担任 IAM 角色的 AWS IAM 用户

如何在python boto3中获取iam用户的aws托管策略的策略文档?

如何让 metricbeat 使用 iam 策略访问其他 AWS 账户?

AWS IAM 查找具有特定策略的角色?

如何在 AWS IAM 策略上使用 jq?

AWS EKS IAM 插件策略

如何使用当前有效版本的谷歌地图 API?