如何在AWS s3上创建私有存储桶?

时间:2020-01-21 15:05:46

标签: amazon-web-services amazon-s3

我正在尝试在 AWS s3 上创建一个私有存储桶,并通过Android应用对其进行读写。

我发现了很多资源和问题,但没有一个给我完整的答案。

我做了一个私人游戏,但不知道我应该在Bucket Privacy中写什么,以及我需要从Android应用程序访问它的什么。

我该怎么办?

更多详细信息:

我的应用程序是一个具有用户的电子商务应用程序,他们将照片上传到该应用程序,并从网站和该应用程序进行查看。

服务器上除照片外的所有数据,我想将照片上传到s3上的私有存储区,并通过服务器上保存的URL 查看这些数据。我可以吗?

3 个答案:

答案 0 :(得分:1)

通常的架构是:

  • 保留Amazon S3存储桶私有(无存储桶策略)
  • Android应用程序的用户将其登录信息提供给该应用程序,以对您的后端服务进行身份验证
  • 通过身份验证后,您的后端服务可以使用AWS安全令牌服务(STS)生成临时凭证-将权限分配给这些凭证,以授予对Amazon S3的访问权限(例如,仅用于特定路径)在特定的存储桶中)
  • 然后,移动应用可以使用这些临时凭证直接与Amazon S3通信以上传/下载对象

您可以使用 Amazon Cognito 进行身份验证和凭证配置,或者可以编写自己的身份验证流程(例如,根据自己的数据库进行检查)。

参考:

如果您只想查看照片,那么后端将使用一种更简单的方法来生成 Amazon S3预先签名的URL ,该URL受到时间限制访问Amazon S3中的私有对象。

请参阅:Amazon S3 pre-signed URLs

答案 1 :(得分:0)

限制对S3存储桶的IAM角色的访问。在Android App中使用此角色。

答案 2 :(得分:0)

您可以通过以下两种方式来做到这一点:

  1. 为特定IAM用户创建存储区策略
  2. 为帐户创建ACL策略,然后将权限委派给特定用户