使用 Cognito 用户池授权程序时,使用来自 API Gateway 的调用者凭据调用 Lambda

问题描述 投票:0回答:1

我在 AWS API Gateway 中创建了一个 API,以及一个使用 Cognito 用户池的授权方。 我想使用 Cognito 用户凭证调用 Lambda 函数,但在 AWS 控制台中,“使用调用者凭证调用”复选框被禁用。

enter image description here 有什么方法可以设置这个选项,可以通过 cli 吗?

amazon-web-services aws-lambda aws-api-gateway amazon-cognito aws-cli
1个回答
0
投票

为了使用调用者凭证调用 Lambda,您必须使用

AWS_IAM
授权类型,而不是 Cognito 用户池授权者。 Cognito 用户池不出售 AWS 凭证,因此令牌不能用于执行 IAM 操作。 如果您想使用 Cognito 用户池令牌,则必须首先使用 Cognito 身份池 将其交换为 IAM 凭证。 正如评论者所提到的,这可能不是您想要的。 您可以使用 Cognito 身份池凭证直接调用 AWS 服务,但是当您使用 Lambda 抽象调用时,您可以使用具有代表任何用户调用服务的权限的 Lambda 执行角色,并使用用户名/用户子/身份您在处理程序中编写的 ID 和授权代码,以限制他们有权访问的内容。

© www.soinside.com 2019 - 2024. All rights reserved.