故事:
我有一个包含用户的 Cognito 用户池。
此用户池是联合身份池中的身份验证提供程序。
我有一个 S3 存储桶,用户只能通过 Auth 角色上的策略上传到私有路径,如下所示:
arn:aws:s3:::BUCKET_NAME/${cognito-identity.amazonaws.com:sub}/*
用户通过 aws javascript sdk 直接从 Web 浏览器上传。
现在这很好用,我的用户仅限于他们上传的位置。他们上传的文件最终在存储桶中的路径如下所示:
us-east-1:0f26319c-1233-4c71-afb6-fac96a798ffb/random_file_name.txt
然后,我有一个 lambda,每当添加文件时都会从这个 S3 存储桶触发。为了澄清,用户不调用 lambda
问题:
我想从 lamda 访问用户池中的用户属性。我认为我可以使用 cognito-identity 子进行此查找。但是,我似乎找不到使用 SDK api 的方法来允许这样做。
使用此 api: http ://boto3.readthedocs.io/en/latest/reference/services/cognito-identity.html#CognitoIdentity.Client.describe_identity 我能够获得登录名/用户池,但不能获得与相关联的用户名此身份 ID。
如果我有用户名,那么我可以使用 api:http ://boto3.readthedocs.io/en/latest/reference/services/cognito-idp.html?highlight=cognito#CognitoIdentityProvider.Client.admin_get_user
任何想法如何使用联合身份 ID 来查找用户的属性?