问题描述
我创建了一个AWS API GATEWAY,并将lambda函数添加为API网关的端点。
我已启用IAM身份验证,如果他们需要向此API网关发出请求。
我已启用API GATEWAY以将所有日志推送到cloudwatch。
如果任何用户需要向API网关提出请求,则必须在Postman中提供其IAM访问ID和密钥。
所有这些调用日志均已推送到cloudwatch,但我无法找到哪个用户在发出API请求。
我找不到任何参数来检查此详细信息,任何人都可以帮助我如何查找哪个IAM用户向API网关发出了请求
解决方法
您似乎没有在阶段启用Custom Access Logging:
因为,根据指定的日志格式,您还可以记录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的输出中定义日志,以包括所需的信息。