amazon-web-services - 识别担任 IAM 角色的 AWS IAM 用户

标签 amazon-web-services amazon-iam assume-role amazon-guardduty

我正在开发一个从 Amazon GuardDuty 接收新发现的系统。我们组织中的大多数访问权限都委托(delegate)给 IAM 角色,而不是直接委托(delegate)给用户,因此调查结果通常来自假定角色的操作,而 GuardDuty 调查结果的参与者身份如下所示:

  "resource": {
    "accessKeyDetails": {
      "accessKeyId": "ASIALXUWSRBXSAQZECAY",
      "principalId": "AROACDRML13PHK3X7J1UL:129545928468",
      "userName": "my-permitted-role",
      "userType": "AssumedRole"
    },
    "resourceType": "AccessKey"
  },

我知道 accessKeyId 是在安全主体执行 iam:AssumeRole 操作时创建的。但我无法告诉首先承担了这个角色!如果是 IAM 用户,我想知道用户名。有没有办法以编程方式将临时 AWS STS key (以 ASIA... 开头)映射回原始用户?

理想情况下,我正在寻找一种运行时间不超过 30 秒的方法,这样我就可以将其用作安全事件管道的一部分,通过缺失的信息丰富 GuardDuty 发现结果。

我已经查看了 aws-cli 并找到了 aws cloudtrail Lookup-events,但它缺乏将查询范围缩小到特定 accessKeyId 的能力,因此需要花费很长时间> 运行时间到了。我研究过 CloudTrail 控制台,但它的功能仅与 aws-cli 相当。我尝试将 CloudTrail 日志保存到 S3 并运行 Athena 查询,但这也相当慢。

这似乎是一个常见的要求。我是否遗漏了一些明显的东西?

最佳答案

实际上,aws-cli 可以对 session 执行查找!只需确保将 ResourceName 指定为查找属性中的属性键即可。

$ aws cloudtrail lookup-events \
  --lookup-attributes 'AttributeKey=ResourceName,AttributeValue=ASIALXUWSRBXSAQZECAY' \
  --query 'Events[*].Username'

[
    "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1d69757833686e786f5d78657c706d7178337e7270" rel="noreferrer noopener nofollow">[email protected]</a>"
]

关于amazon-web-services - 识别担任 IAM 角色的 AWS IAM 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62096052/

相关文章:

mysql - 无法在 RDS 实例上启用加密

amazon-web-services - 使用 AWS_IAM 向 AWS WebSocket API 网关授权请求

java - 无法使用 IAM 用户的访问 key 代入第三方 AWS 账户的角色

eclipse - 适用于 Eclipse 的 AWS 工具包 : Running AwsConsoleApp issue?

amazon-web-services - 创建 Amazon EC2 (AWS) 实例需要很长时间吗?

amazon-web-services - AWS Cloudwatch + ECS - 要设置什么权限?

java - AssumeRoleResult 不返回任何内容

aws-sdk - Quicksight 仪表板嵌入 url 显示 us-east-1 而不是 eu-west-1

amazon-web-services - AWS EventBridge 规则触发两次

amazon-web-services - 如何在 CloudFormation 模板中使用另一个 AWS 账户的 AssumeRole?