Я хотел бы использовать boto3 для получения временных учетных данных для доступа к сервисам AWS.Вариант использования следующий: пользователь из моего пула пользователей Cognito входит в систему на моем сервере, и я хочу, чтобы код сервера предоставил этому пользователю временные учетные данные для доступа к другим службам AWS.
У меня есть пул пользователей Cognito, гдемои пользователи хранятся.У меня есть Cognito Identity Pool, который НЕ разрешает несанкционированный доступ, доступ только пользователям из Cognito User Pool.
Итак, вот код, с которого я начинаю:
import boto3
client = boto3.client('cognito-identity','us-west-2')
resp = client.get_id(AccountId='<ACCNTID>',
IdentityPoolId='<IDPOOLID>')
Однако,простое выполнение этих трех строк кода вызывает исключение:
botocore.errorfactory.NotAuthorizedException: An error
occurred (NotAuthorizedException) when calling
the GetId operation: Unauthenticated access is not
supported for this identity pool.
Поскольку мой Cognito Identity Pool не настроен для доступа без аутентификации, кажется, что я не могу вызвать get_id, пока я где-то не аутентифицируюсь.
Как мне решить это?Что именно мне нужно сделать для аутентификации, чтобы я мог вызвать get_id?
UPDATE: похоже, мне нужно передать поле Logins и данные в вызов функции get_id, но для этого мне нужен токен JWT для входа в систему.,Если я запускаю это в веб-приложении (например, в бэкенде Django), где я использую предварительно настроенные экраны входа в AWS Cognito, то да, я могу получить это с URL-адреса домашней страницы после перенаправления с успешного входа в систему.Но сейчас я пишу несколько тестовых сценариев, которые не имеют ничего общего с веб-сайтом.Есть ли способ использовать boto или boto3 или какой-либо другой пакет python для входа в систему с именем пользователя и паролем и получения токена JWT?