我有一个简单的Lambda函数,可以通过SES发送电子邮件。我可以使用带有所需数据的POST请求来调用它,它会发送一封电子邮件。我的问题是,我可以用什么方法来保护这个功能?目前,任何人都可以调用该端点并使用任何数据执行该功能。
答案 0 :(得分:7)
您需要为API网关设置授权程序。这个tutorial是一个很好的起点。
总之,您需要:
您的 serverless.yml 将使用 authorizer 配置显示如下:
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: post
authorizer:
arn: YOUR_USER_POOL_ARN
您不需要限制为Cognito授权人。您可以使用为Google+,Facebook等配置授权程序
此设置意味着Lamba功能仅由经过身份验证的用户触发,您可以通过检查event
对象来识别用户ID:
event.requestContext.authorizer.claims.sub