【发布时间】:2018-11-08 20:25:30
【问题描述】:
我是新手,我觉得我缺少 Cognito 用户池组上的 IAM 角色和调用 lambda 函数之间的联系。
用例:我想使用 Cognito 来管理我的用户帐户,而不需要联合身份/池(我不需要联合)。 Cognito 的功能之一是组的概念,用户可以被分成不同的组,在同一个池中具有不同的关联 IAM 角色(即“管理员”“客户”等)。通过浏览器应用程序和 JavaScript(在 S3 中),用户登录并获得 accessToken(也是 idToken 和 refreshToken)。到目前为止,一切都很好。
我的问题是我想使用 'lambda.invoke' 调用函数来处理各种事情(即对 DynamoDB 进行读写),并希望避免使用 API 网关的额外步骤。
从browser-invoke-lambda-function-example 我可以看到如何使用“AWS.CognitoIdentityCredentials”来执行此操作,但据我所知,这需要联合身份。
Lambda class documentation 还记录了如何使用 IAM accessKeyId 和 secretAccessKey,但我想使用来自 Cognito 用户池/组->角色的登录用户凭证来调用 Lambda 函数。
具体来说 - 如果有人可以建议是否可以仅使用用户池和用户组从浏览器 JavaScript 中使用 lambda.invoke,我将非常感激 (假设有一个与用户组关联的 IAM 角色)?
如果可能,请提供一些示例代码/或指导,我可能会找到方法。
PS:我知道之前有人提出过类似的问题(即Is it possible to invoke a Lambda function with a cognito userpool identity? ),但问题的细节很薄,所以答案同样含糊不清。
【问题讨论】:
标签: javascript browser aws-lambda aws-cognito