我们目前正在使用无服务器应用程序同步插件和无服务器框架(自然)部署到AppSync。
我们的API是100%的公共和未经认证的。所有的查询和突变基本上都是公开的,因为此时我们不需要用户(例如,通过认知池)。
我们使用api密钥添加了第一层安全性,但这无疑并不多,因为api密钥包含在前端源中。我们希望添加额外的路障,使恶意用户更难滥用这个前端API。
我想到了几件事:
我正在考虑切换到阿波罗服务器,因为这个解决方案看起来更开放和可配置.
发布于 2019-11-05 14:13:27
我建议使用AppSync的IAM选项,然后使用亚马逊科尼图身份池向客户端应用程序提供临时AWS凭据。身份池(相对于用户池)提供临时AWS凭据,这些凭据承担您选择的角色的访问权限。在配置标识池时,您可以定义一个完全访问AppSync API的角色,或者可以有选择地提供访问。在客户端应用程序中,使用临时凭据使用SigV4将请求签名到SigV4,而AppSync只允许执行具有有效签名的请求。临时凭据还提供了额外的安全层,就好像它们被破坏了一样,每个凭据只提供最多允许的访问时间。
我还要补充一点,您可以使用AppSync API一次使用多个auth模式。这允许您保护上面提到的所有字段,然后选择性地标记特定的其他字段,以便通过其他机制(如用户池或OIDC )授权它们。
https://stackoverflow.com/questions/58646238
复制相似问题