История:
У меня есть пул пользователей Cognito с пользователями.
Этот пул пользователей является поставщиком аутентификации в пуле федеративных удостоверений.
У меня есть корзина S3, в которой пользователи ограничены загрузкой по частному пути через политику в роли Auth следующим образом:
arn: aws: s3 ::: BUCKET_NAME / $ {cognito-identity.amazonaws.com:sub}/*
Пользователи загружают файлы прямо из веб-браузера через sdk aws javascript.
Теперь это отлично работает, и мои пользователи ограничены тем, куда они загружают. Файлы, которые они загружают, имеют следующие пути в корзине:
us-east-1: 0f26319c-1233-4c71-afb6-fac96a798ffb / random_file_name.txt
Затем у меня есть лямбда, которая запускается из этого ведра S3 всякий раз, когда добавляется файл. Чтобы уточнить, пользователь НЕ вызывает лямбда
Проблема:
Я хотел бы получить доступ к пользовательским атрибутам в пользовательском пуле из lamda. Я подумал, что могу сделать этот поиск, используя подпрограмму когнитивной идентификации. Однако я не могу найти способ использовать API SDK, чтобы разрешить это.
Используя этот api: http://boto3.readthedocs.io/en/latest/reference/services/cognito-identity.html#CognitoIdentity.Client.describe_identity Я могу получить логин / пул пользователей, но не имя пользователя, связанное с этим идентификатором личности.
Если бы у меня было имя пользователя, я мог бы использовать api: http://boto3.readthedocs.io/en/latest/reference/services/cognito-idp.html?highlight=cognito#CognitoIdentityProvider.Client.admin_get_user
Есть идеи, как я могу использовать Federated Identity ID для поиска атрибутов пользователя?