有推荐的工具吗?
是否可以通过编程方式执行此操作?如果是这样,以编程方式完成此任务的最佳方法是什么?
答案 0 :(得分:0)
要获取实际使用的列表,可以使用AWS CloudWatch Insight。您还需要拥有CloudTrail configured to send a log stream to CloudWatch。
此方法有2个缺点。它仅显示实际使用的角色。并且您需要已启用CloudTrail日志记录。
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
关于analyzing logs with CloudWatch Insight.的更多信息
如果要获取角色列表以及可以使用这些角色的服务,请使用aws cli命令,它可能会使您接近所需的角色。
$ aws iam list-roles --query 'Roles[].[RoleName,AssumeRolePolicyDocument.Statement[].Principal.Service]' --output json