首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于100%公开、未经验证的API的AppSync安全最佳实践

用于100%公开、未经验证的API的AppSync安全最佳实践
EN

Stack Overflow用户
提问于 2019-10-31 15:04:40
回答 1查看 891关注 0票数 1

我们目前正在使用无服务器应用程序同步插件和无服务器框架(自然)部署到AppSync。

我们的API是100%的公共和未经认证的。所有的查询和突变基本上都是公开的,因为此时我们不需要用户(例如,通过认知池)。

我们使用api密钥添加了第一层安全性,但这无疑并不多,因为api密钥包含在前端源中。我们希望添加额外的路障,使恶意用户更难滥用这个前端API。

我想到了几件事:

  1. 速率限制(目前不支持AppSync,但我已经读到它显然正在进行中)。例如,我不想使用Lambda中的自定义解决方案来完成这个任务。
  2. 确保只允许来自网站的流量使用我们的API,除了我们自己的开发工具.我也许可以用管道解析器来完成这个任务,但是我并不热衷于用那种晦涩和笨拙的VTL语言来完成这个任务。
  3. cors ..。

我正在考虑切换到阿波罗服务器,因为这个解决方案看起来更开放和可配置.

EN

回答 1

Stack Overflow用户

发布于 2019-11-05 14:13:27

我建议使用AppSync的IAM选项,然后使用亚马逊科尼图身份池向客户端应用程序提供临时AWS凭据。身份池(相对于用户池)提供临时AWS凭据,这些凭据承担您选择的角色的访问权限。在配置标识池时,您可以定义一个完全访问AppSync API的角色,或者可以有选择地提供访问。在客户端应用程序中,使用临时凭据使用SigV4将请求签名到SigV4,而AppSync只允许执行具有有效签名的请求。临时凭据还提供了额外的安全层,就好像它们被破坏了一样,每个凭据只提供最多允许的访问时间。

我还要补充一点,您可以使用AppSync API一次使用多个auth模式。这允许您保护上面提到的所有字段,然后选择性地标记特定的其他字段,以便通过其他机制(如用户池或OIDC )授权它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58646238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档