Cognito:联合身份标识和用户属性

ble*_*shi 10 amazon-s3 federated-identity amazon-web-services aws-lambda aws-cognito

故事:

我有一个Cognito用户池与用户.

此用户池是联合身份池中的身份验证提供程序.

我有一个S3存储桶,用户只能通过Auth Role上的策略上传到私有路径,如下所示:

阿尔恩:AWS:S3 ::: BUCKET_NAME/$ {cognito-identity.amazonaws.com:sub}/*

用户通过aws javascript sdk直接从Web浏览器上传.

现在这很好用,我的用户仅限于他们上传的位置.他们上传的文件最终会显示桶中的路径,如下所示:

美东1:0f26319c-1233-4c71-afb6-fac96a798ffb/random_file_name.txt

然后我有一个lambda,只要添加一个文件,就会从这个S3桶中触发.为了澄清,用户不会调用lambda

问题:

我想从lamda访问用户池中的用户属性.我以为我可以使用cognito-identity sub进行查找.但是,我似乎无法找到使用SDK api的方法来实现这一点.

使用此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

有关如何使用联合身份ID查找用户属性的任何想法?

Vit*_*ich -1

如果将文件存储在
arn:aws:s3:::BUCKET_NAME/${cognito-idp.us-east-1.amazonaws.com:sub}

这将被解析为文件夹名称,例如
f4cfd4a8-0e94-4287-8c5e-1b01538dd2a1

使用Cognito 用户池中sub的用户,您可以列出具有该 sub 的用户,例如在 cli 中:
aws cognito-idp list-users --user-pool-id=us-east-1_ndhjGJQYE --filter "sub = 'f4cfd4a8-0e94-4287-8c5e-example'"