Какой плохо документированный API! В конце концов у меня это получилось, но найти шаги было непросто.
Убедитесь, что ваш запрос:
- Метод
POST
.
- Не имеет параметров строки запроса
- Включает
Content-Type
из application/x-amz-json-1.1
.
- Содержит заголовок
x-amz-target
со значением com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.LookupEvents
.
Документация «Общие параметры» немного вводит в заблуждение, так как похоже, подразумевается, что 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.
person
Mike Patrick
schedule
17.02.2020