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

时间:2020-02-12 00:08:54

标签: amazon-web-services amazon-iam

有推荐的工具吗?

是否可以通过编程方式执行此操作?如果是这样,以编程方式完成此任务的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

要获取实际使用的列表,可以使用AWS CloudWatch Insight。您还需要拥有CloudTrail configured to send a log stream to CloudWatch

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

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

它将产生使用哪些角色的服务列表。 enter image description here

请注意,此查询将包含所有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