仅允许经过身份验证的应用程序用户访问 S3 存储桶

问题描述 投票:0回答:1

几周后我将在 Playstore 上发布我的应用程序。 在此应用程序中,注册用户将有可能看到其他用户的照片(如社交媒体应用程序),并且有可能上传、删除自己的照片。 这些图片应仅对应用程序的注册用户可见。

我在AWS S3中创建了一个存储桶来存储所有这些图像,但该存储桶当前设置为“公共访问”。 如何更改此设置而不阻止注册用户访问图片?

用户将能够使用 Facebook/Instagram、Gmail 和电话号码等 SMA 通过 Firebase 进行身份验证。

非常感谢您的帮助。

我已经尝试阻止公共访问,但似乎我必须添加一些特定规则(ACL??)以允许该应用程序的用户。

amazon-s3 acl restriction
1个回答
0
投票

您可以使用预签名网址

预签名 URL 是有时间限制的 URL,可授予对特定 S3 对象的临时访问权限。您可以在服务器端生成预签名 URL 并将其提供给经过身份验证的用户,允许他们访问私有 S3 对象,而无需暴露您的 S3 存储桶或将其公开。

以下是如何使用预签名 URL 来实现您所需的功能:

当用户上传图像时,您的应用程序的后端会生成一个预签名的 将存储图像的 S3 对象的 URL。该网址将 过期时间有限,通常是几分钟到几分钟 小时。然后,应用程序将此预签名 URL 提供给用户的设备。 用户设备使用预签名的URL直接上传图片 到 S3 存储桶。

通过使用预签名 URL,您可以保持对 S3 对象访问的控制,同时为经过身份验证的用户提供安全且临时的方式与其交互。预签名 URL 还确保用户不需要知道您的 S3 存储桶的凭据或可以直接访问该存储桶,从而增强应用程序和数据的安全性。

有关更多信息,您可以参考这些 aws 文档 - https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html https://docs.aws.amazon.com/AmazonS3/latest/userguide/example_s3_Scenario_PresignedUrl_section.html

© www.soinside.com 2019 - 2024. All rights reserved.