Чтобы получить список того, что на самом деле используется, вы можете использовать AWS CloudWatch Insight Вам также необходимо настроить CloudTrail для отправки потока журнала в CloudWatch .
У этого подхода есть два недостатка. Это только показывает, какие роли фактически используются. И вам необходимо включить ведение журнала CloudTrail.
- В консоли AWS go CloudWatch -> Журналы -> Insight.
- В поле «Выбрать группы журналов» выберите настроенный вами поток CloudTrail над.
- Введите приведенный ниже запрос
fields userAgent, requestParameters.roleArn
| filter eventName == "AssumeRole"
| stats count(*) by userAgent, requestParameters.roleArn
Он выдаст список служб, которые используют роли.
Обратите внимание, что в этот запрос будут включены все 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