Я не верю, что события данных видны так же, как события управления. Это, безусловно, имеет место, если вы просматриваете историю событий в консоли AWS.
Как предлагается в другом месте, наложение таблицы Athena на место s3, где хранятся события данных, работает хорошо - что-то вроде этого скажет вам, кто / что загрузил объект:
SELECT
useridentity
, json_extract_scalar(requestparameters,'$.bucketName')
, json_extract_scalar(requestparameters,'$.key')
FROM cloudtrail_logs
WHERE eventname IN ('PutObject')
AND json_extract_scalar(requestparameters,'$.bucketName') = 'xxx'
AND json_extract_scalar(requestparameters,'$.key') = 'yyy';
Где cloudtrail_logs
создается в соответствии с документами по адресу:
https://docs.aws.amazon.com/athena/latest/ug/cloudtrail-logs.html
useridentity
не всегда будет пользователем IAM - это может быть служба AWS, внешняя учетная запись, а также предполагаемая роль - вы можете использовать элемент .type для фильтрации по мере необходимости или просто извлекать все элементы.
В зависимости от количества объектов в S3 / размера ваших cloudtrail_logs в S3, вы можете уточнить местоположение s3 таблицы cloudtrail_logs по дате - например:
s3://<BUCKETNAME>/AWSLogs/<ACCOUNTNUMBER>/CloudTrail/<REGION>/2018/08/17
Если вы хотите, вы можете выполнить запрос Athena, используя boto3, сохранив вывод в S3-местоположении, а затем извлечь эти данные из S3, также используя boto3.