首页 > 解决方案 > 我应该使用 API 网关作为 S3 的代理吗?

问题描述

我正在学习无服务器架构,目前正在阅读Martin Fowler 博客上的这篇文章

所以我看到了这个方案,并尝试用 AWS 解决方案替换抽象组件。我想知道不使用 API 网关来控制对 S3 的访问是否是一个好主意(在图像上,2 号数据库没有使用它)。Martin 谈到了 Google Firebase,我不熟悉它与 S3 的比较。

https://martinfowler.com/articles/serverless/sps.svg

将 S3 暴露给客户端应用程序而不将 API 网关配置为它们之间的代理是一种常见的策略吗?

标签: amazon-web-servicesamazon-s3serverless

解决方案


Aws S3 不是数据库,它是对象存储服务。

可以公开访问 S3 存储桶,但不建议这样做,但是您可以通过 CLI 或 SDK 使用 S3 API 访问其对象。

回到评论中关于是否直接从前端使用 API(假设您的意思是使用 JS)肯定是一种不好的做法的问题,因为 AWS 强烈建议您安全地存储您的 API 凭证(密钥),并作为任何 AWS API 调用应该包括 AWS 为您的 IAM 用户提供的 API 凭证(密钥),那么显然任何使用您的 Web 应用程序的人都可以看到这些密钥。

希望这回答了你的问题。


推荐阅读