Определите AWS пользователя IAM, который взял на себя роль IAM - PullRequest
0 голосов
/ 30 мая 2020

Я работаю над системой, которая получает новые данные от Amazon GuardDuty . Большая часть доступа в нашей организации делегируется ролям IAM, а не напрямую пользователям, поэтому результаты обычно являются результатом действий предполагаемых ролей, а идентификатор субъекта при обнаружении GuardDuty выглядит примерно так:

  "resource": {
    "accessKeyDetails": {
      "accessKeyId": "ASIALXUWSRBXSAQZECAY",
      "principalId": "AROACDRML13PHK3X7J1UL:129545928468",
      "userName": "my-permitted-role",
      "userType": "AssumedRole"
    },
    "resourceType": "AccessKey"
  },

Я знаю, что accessKeyId создается, когда участник безопасности выполняет действие iam:AssumeRole. Но я не могу сказать , кто взял на себя эту роль в первую очередь! Если это был пользователь IAM, я хочу знать имя пользователя. Есть ли способ программно сопоставить временные AWS ключи STS (начинающиеся с ASIA ...) с исходным пользователем?

В идеале я ищу метод, который выполняется менее чем за 30 секунд поэтому я могу использовать его как часть моего конвейера событий безопасности, чтобы обогатить результаты GuardDuty недостающей информацией.

Я уже просмотрел aws -cli и нашел aws cloudtrail lookup-events, но у него нет возможности сузить запрос к указанному c accessKeyId, поэтому для его выполнения требуется loooong времени. Я исследовал консоль CloudTrail, но здесь она примерно такая же, как aws -cli. Я попытался сохранить журналы CloudTrail на S3 и запустить запрос Athena, но это тоже было довольно медленно.

Похоже, это обычное требование. Есть ли что-то очевидное, что мне не хватает?

1 Ответ

1 голос
/ 30 мая 2020

Фактически, aws -cli может выполнять поиск в сеансе! Просто не забудьте указать ResourceName в качестве ключа атрибута в атрибутах поиска.

$ aws cloudtrail lookup-events \
  --lookup-attributes 'AttributeKey=ResourceName,AttributeValue=ASIALXUWSRBXSAQZECAY' \
  --query 'Events[*].Username'

[
    "the.user@example.com"
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...