繁体   English   中英

如何生成我的所有 IAM 角色以及在 AWS 上使用这些角色的服务的列表

[英]How can I generate a list of all my IAM roles and the services using those roles on AWS

是否有推荐的工具来执行此操作?

有没有办法以编程方式执行此操作? 如果是这样,以编程方式完成此任务的最佳方法是什么?

要获取实际使用的列表,您可以使用AWS CloudWatch Insight您还需要配置 CloudTrail 以将日志 stream 发送到 CloudWatch

这种方法有两个缺点。 它仅显示实际使用的角色。 并且您需要已启用 CloudTrail 日志记录。

  1. 在 AWS 控制台 go CloudWatch -> Logs -> Insight。
  2. 在“选择日志组”字段 select 中,您在上面配置的 CloudTrail stream。
  3. 输入以下查询
fields userAgent, requestParameters.roleArn
| filter eventName == "AssumeRole"
| stats count(*) by userAgent, requestParameters.roleArn

它将生成使用哪些角色的服务列表。 在此处输入图像描述

请注意,此查询将包括所有 AWS 身份。 要像您要求的那样仅限于 AWS 服务,请使用以下过滤 AWS 服务的查询。

fields userAgent, requestParameters.roleArn
| filter eventName == "AssumeRole"
| filter userIdentity.type == "AWSService"
| stats count(*) by userAgent, requestParameters.roleArn

有关使用 CloudWatch Insight 分析日志的更多信息。

如果你想获得角色列表以及哪些服务可以使用它们,这里有一个 aws cli 命令,它可能会让你接近你想要的。

$ aws iam list-roles --query 'Roles[].[RoleName,AssumeRolePolicyDocument.Statement[].Principal.Service]' --output json

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM