我想用API密钥保护AWS API网关端点。但是,API密钥必须作为查询参数的一部分发送。没有办法指示使用此端点的服务在报头中发送密钥(x-api-key)。
所以我想要这个请求:https://api_id.execute api.us -东- 1. - amazonaws.com/dev/?x - api - key=key
在发出请求时自动考虑x-api-key作为API密钥。在AWS API网关中是否有直接的方法来实现这一点?
目前API Gateway不支持此功能,出于安全考虑,不建议使用此功能,因为url(包括查询字符串参数)通常由客户端和服务器记录和/或缓存。
谢谢,瑞安
我认为解决方案是使用API网关自定义授权器
但问题是如何使用强制使用计划…
您可以使用API网关Lambda授权器。
https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.htmlAmazon API Gateway Lambda授权器(以前称为自定义授权器)是一个Lambda函数,您可以提供它来控制对API方法的访问。Lambda授权器使用承载令牌身份验证策略,例如OAuth或SAML。它还可以使用由标头、路径、查询字符串、阶段变量或上下文变量请求参数描述的信息。