跟踪哪个IAM用户发出了AWS API网关请求

问题描述

我创建了一个AWS API GATEWAY,并将lambda函数添加为API网关的端点。

我已启用IAM身份验证,如果他们需要向此API网关发出请求。

我已启用API GATEWAY以将所有日志推送到cloudwatch。

如果任何用户需要向API网关提出请求,则必须在Postman中提供其IAM访问ID和密钥。

所有这些调用日志均已推送到cloudwatch,但我无法找到哪个用户在发出API请求。

我找不到任何参数来检查此详细信息,任何人都可以帮助我如何查找哪个IAM用户向API网关发出了请求

解决方法

您似乎没有在阶段启用Custom Access Logging

enter image description here

因为,根据指定的日志格式,您还可以记录IAM用户

我的试用版输出示例:

{
{
    "requestId": "1f51a513-250f-4849-936f-c9e1ced767ab","ip": "xxx.xxx.xxx.xxx","caller": "AIDA3VGCKVNJRL7CJ4OCF","user": "arn:aws:iam::xxxxxxx:user/<user-name-who-made-request>","requestTime": "14/Aug/2020:08:01:36 +0000","httpMethod": "GET","resourcePath": "/","status": "200","protocol": "HTTP/1.1","responseLength": "1310"
}
}
,

我认为,Cloudwatch Logs或Cloudtrail不提供源的用户名和密码或密钥,而仅提供源IP。

您可以仔细查看日志正文,以查看日志是否包含在正文中。

如果要跟踪键,我认为您应该从Lambda的输出中定义日志,以包括所需的信息。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...