我正在尝试使用LookupEvents API,使用Postman作为用户代理。当我在Body中设置filter为raw Json时,我仍然会得到所有日志,而不是一个。知道怎么做吗?方法:张贴内容类型:application/json或内容类型:application/x-amz-json-1.0我还尝试将原始正文作为text/json。
{
"LookupAttributes": [
{
"AttributeKey": "EventName",
"AttributeValue": "ConsoleLogin"
}
],
"MaxResults": 1
}
多么糟糕的API文档!我最终完成了这项工作,但步骤并不容易找到。
确保您的请求:
- 方法为
POST
- 没有查询字符串参数
- 包括
application/x-amz-json-1.1
的Content-Type
- 包含一个值为
com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.LookupEvents
的x-amz-target
标头
"Common Parameters"文档有点误导,因为它似乎暗示Action
属于查询字符串。事实并非如此。
在实践中,在查询字符串中包含Action
似乎可以带回具有任何EventName
的事件,并且不会限制结果的数量。就好像整个请求正文都被忽略了。
cURL命令,删除了AWS签名内容:
curl --location --request POST 'https://cloudtrail.us-east-1.amazonaws.com'
--header 'Content-Type: application/x-amz-json-1.1'
--header 'Accept: application/json'
--header 'x-amz-target: com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.LookupEvents'
--data-raw '{
"LookupAttributes": [
{
"AttributeKey": "EventName",
"AttributeValue": "ConsoleLogin"
}
],
"MaxResults": 2
}'
我在任何地方都找不到记录的x-amz-target
。为了获得该值,我设置了mitmproxy
,并查看了CLI命令生成的调用。