我正在开发一个从亚马逊GuardDuty获得新发现的系统。在我们的组织中,大多数访问都委托给IAM角色,而不是直接委托给用户,因此发现的结果通常来自假定角色的操作,GuardDuty查找的参与者身份如下所示:
"resource": {
"accessKeyDetails": {
"accessKeyId": "ASIALXUWSRBXSAQZECAY",
"principalId": "AROACDRML13PHK3X7J1UL:129545928468",
"userName": "my-permitted-role",
"userType": "AssumedRole"
},
"resourceType": "AccessKey"
},我知道,accessKeyId是在安全主体执行iam:AssumeRole操作时创建的。但我不知道谁一开始就扮演了这个角色!如果是IAM用户,我想知道用户名。是否有一种方法以编程方式映射临时AWS键(以ASIA.开头)回到原来的用户那里?
理想情况下,我正在寻找一种在30秒内运行的方法,这样我就可以使用它作为安全事件管道的一部分来用缺失的信息丰富GuardDuty发现。
我已经查看了aws并找到了aws cloudtrail lookup-events,但是它缺乏将查询缩小到特定accessKeyId的能力,因此运行起来需要相当长的时间。我已经探索过CloudTrail控制台,但它仅限于这里的aws。我尝试将我的CloudTrail日志保存到S3并运行雅典娜查询,但这也很慢。
这似乎是一个共同的要求。有什么明显的东西我错过了吗?
发布于 2020-05-30 00:32:38
实际上,aws可以在会话上执行查找!只需确保将ResourceName指定为查找属性中的属性键。
$ aws cloudtrail lookup-events \
--lookup-attributes 'AttributeKey=ResourceName,AttributeValue=ASIALXUWSRBXSAQZECAY' \
--query 'Events[*].Username'
[
"the.user@example.com"
]https://stackoverflow.com/questions/62096052
复制相似问题