Как я могу создать список всех моих ролей IAM и сервисов, использующих эти роли на AWS - PullRequest
0 голосов
/ 12 февраля 2020

Есть ли рекомендуемый инструмент для этого?

Есть ли способ сделать это программно? Если да, то какой будет наилучший подход для программного достижения этой задачи?

1 Ответ

0 голосов
/ 13 февраля 2020

Чтобы получить список того, что на самом деле используется, вы можете использовать AWS CloudWatch Insight Вам также необходимо настроить CloudTrail для отправки потока журнала в CloudWatch .

У этого подхода есть два недостатка. Это только показывает, какие роли фактически используются. И вам необходимо включить ведение журнала CloudTrail.

  1. В консоли AWS go CloudWatch -> Журналы -> Insight.
  2. В поле «Выбрать группы журналов» выберите настроенный вами поток CloudTrail над.
  3. Введите приведенный ниже запрос
fields userAgent, requestParameters.roleArn
| filter eventName == "AssumeRole"
| stats count(*) by userAgent, requestParameters.roleArn

Он выдаст список служб, которые используют роли. enter image description here

Обратите внимание, что в этот запрос будут включены все AWS удостоверения. Чтобы ограничить только AWS запрашиваемыми службами, используйте следующий запрос, который фильтрует для AWS служб.

fields userAgent, requestParameters.roleArn
| filter eventName == "AssumeRole"
| filter userIdentity.type == "AWSService"
| stats count(*) by userAgent, requestParameters.roleArn

Дополнительная информация о анализе журналов с помощью CloudWatch Insight.

И если вы хотите получить список ролей и какие службы могут их использовать, то здесь есть aws команда cli, которая, вероятно, приблизит вас к желаемому.

$ aws iam list-roles --query 'Roles[].[RoleName,AssumeRolePolicyDocument.Statement[].Principal.Service]' --output json
...