我们正在使用AWS App Sync构建应用程序,我们仍处于早期阶段。
我们的应用程序通过用户登录有一个受限区域,该区域由aws cognito用户池管理。很好。
我们在公共区域遇到了不需要任何身份验证的问题。
我们如何保护这些公共端点?
我们对api键的硬编码(我们知道可以旋转)存有疑问,这是一个好习惯吗(文档页面说它不适合生产)?
有什么办法可以授权原产地? (aka,来自www.foobar.baz的任何请求都可以)
答案 0 :(得分:2)
我建议使用Amazon Cognito联合身份来控制对api的经过身份验证和未经身份验证的访问。为了在AWS AppSync中使用Amazon Cognito联合身份,您需要使用基于AWS IAM的授权。
对于经过身份验证的访问,您可以使用Amazon Cognito用户池并与Amazon Cognito联合身份联盟,并且由于联合身份还可以允许未经身份验证的用户使用,因此您可以控制可以通过IAM策略公开的某些api。
有关更多信息,请阅读我们的安全指南here
的AWS IAM部分答案 1 :(得分:0)
在您设置用户池配置的AppSync应用的“设置”菜单下,有一个选项可以设置默认操作。您可以将其更改为DENY,所有未认证的请求将被拒绝。另一种方法是允许所有内容,然后将@aws_auth指令手动添加到您关心限制的每个查询/变异/订阅字段中。