У меня есть сценарий использования, когда несколько учетных записей aws отправляют сообщения в мою очередь sqs, и я хочу однозначно определить, кто и что отправил. В сообщении SQS я вижу Sender Account ID
, который является userId для пользователя / роли IAM, который отправил сообщение.
Есть ли способ, которым я могу преобразовать этот userId в userArn, чтобы я мог определить, какой аккаунт пришло сообщение. Единственный API, который я вижу, это GetUser , но он ожидает учетные данные авторизации. Я не хочу использовать userId, так как это увеличит накладные расходы на операции, чтобы выяснить все userId всех пользователей / ролей Arns, у которых есть разрешение на отправку сообщения.
<User>
<UserId>AIDACKCEVSQ6C2EXAMPLE</UserId>
<Path>/division_abc/subdivision_xyz/</Path>
<UserName>Bob</UserName>
<Arn>arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/Bob</Arn>
<CreateDate>2013-10-02T17:01:44Z</CreateDate>
<PasswordLastUsed>2014-10-10T14:37:51Z</PasswordLastUsed>
</User>
This userId - это уникальный для чтения уникальный идентификатор, присутствующий для каждого пользователя / роли. Чего я хочу добиться, так это userArn, передавая userId. Эта документация предоставляет информацию о userId.
Если говорить более теоретически, если я не могу получить userArn из userId публично без учетных данных пользователя, что может быть причиной, по которой он не был предоставлен.
Если мы посмотрим на один из ответов API getUser, он будет выглядеть примерно так -