如何仅从静态 s3 站点调用 API Gateway

man*_*lmc 5 amazon-s3 amazon-web-services aws-api-gateway

我在 S3 存储桶中托管了一个静态站点,其中包含指向我使用 Amazon API Gateway 部署的 REST API 的链接。现在我希望 REST API 的方法只能从静态站点调用。

为了编写资源策略,我不能允许使用静态 IP,因为 AWS 非常清楚 S3 站点的 IP 是动态的。我能想到的唯一选择是在API网关中启用CORS并将Access-Control-Allow-Origin配置为静态站点的域。但这对我来说似乎不太有说服力..

有更好的选择吗?

Mat*_*t D 2

无论如何,您都无法这样做,因为 API 网关请求来自访问者的浏览器,而不是来自 S3 托管服务的服务器端。

CORS 会限制其他网站使用常规浏览器调用您的 API,但 REST API 客户端可以不受限制地调用它。

如果您想限制访问,请使用 API 密钥(比安全性更隐蔽)或在 API Gateway 中实现自定义授权器来授权您的客户端。请参阅此处: https: //docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html