4

我们正在使用 AWS App Sync 构建应用程序,我们仍处于非常早期的阶段。

我们的应用程序通过用户登录有一个受限区域,该区域通过 aws cognito 用户池进行管理。这很好。

我们在不需要任何身份验证的公共区域遇到问题。

我们如何保护这些公共端点?

我们对硬编码 api 密钥(我们知道可以旋转)有一些疑问,这是一个好的做法(文档页面说它不适合生产)?

有什么方法可以授权原产地吗?(又名,来自 www.foobar.baz 的任何请求都可以)

4

2 回答 2

2

我建议使用 Amazon Cognito 联合身份来控制对 api 的经过身份验证和未经身份验证的访问。为了将 Amazon Cognito 联合身份与 AWS AppSync 一起使用,您需要使用基于 AWS IAM 的授权。

对于经过身份验证的访问,您可以使用 Amazon Cognito 用户池并联合到 Amazon Cognito 联合身份,并且由于联合身份还可以允许未经身份验证的用户,因此您可以控制一些可以通过 IAM 策略公开的 api。

有关更多信息,请在此处阅读我们安全指南的 AWS IAM 部分

于 2018-07-31T17:26:25.563 回答
0

在您设置用户池配置的 AppSync 应用程序的设置菜单下,有一个设置默认操作的选项。您可以将其更改为 DENY,所有未经身份验证的请求都将被拒绝。另一种方法是允许一切,并手动将@aws_auth 指令添加到您关心限制的每个查询/变异/订阅字段。

于 2018-08-01T00:31:56.190 回答