我正在为我的lambda函数设置API网关,并使用Proxy集成。我还为此API创建使用计划和API密钥,并与两个客户c1和c2共享API密钥k1和k2。

当客户使用密钥k2进行呼叫时,是否可以从我的lambda函数中找到由c2发出的请求?

我有一个实现RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent>的Java处理程序

但不幸的是,我没有在APIGatewayProxyRequestEvent中找到客户环境

最佳答案

API keys事件不会获得客户上下文。可以在多个usage plans中为不同的API共享API密钥。因此,它们不能与任何一种API部署捆绑在一起。如果您要执行此操作,则可以自己进行管理(例如,将1个API限制为1个客户,将API密钥映射为客户)。

我认为AWS不提供此服务的原因之一是因为API keys仅用于usage plans。需要使用其他技术(例如IAMCognito user poolscustom authorizer)进行任何类型的身份验证/授权(其中,用户标识很重要)。请参阅this


  要将API方法包括在使用计划中,必须配置单个API方法以要求使用API​​密钥。为了进行用户身份验证和授权,请不要使用API​​密钥。使用IAM角色,Lambda授权者或Amazon Cognito用户池。

07-24 09:39
查看更多