如何启用 Amazon S3 文件保护



我正在开发一个Web应用程序,其中包含两个基于移动(Android和iOS)的应用程序。目前上传的文件对所有人开放,这意味着任何拥有直接图像链接的人都可以使用 Web 浏览器打开它。

如何保护或限制我的移动应用程序或 Web 应用程序用户的文件访问?

注意:作为初学者,我不确定要提供的配置详细信息以及问题,如果我需要提供有关我的 s3 配置的更多详细信息。 请指定它,我可以将其添加到 s 问题中以使问题更有意义,因此给您带来不便,深表歉意。

我认为比预签名网址更简单的方法是使用 Amazon Cognito 为您的受信任应用程序提供对 AWS 资源的访问权限,即使是未经身份验证的用户也是如此。

为此,您需要为应用程序创建一个身份池(只需为所有 3 个客户端创建一个身份池),然后对其进行配置,以便在客户端提供有效的身份池 ID 时,他们可以代入有权访问 AWS 资源的 IAM 角色。

然后,您可以控制他们代入的 IAM 角色将具有哪些 S3 存储桶权限 - 您可以允许未经身份验证的用户访问读取 S3 对象,或强制他们创建能够读取/写入 S3 存储桶的账户(这在 Cognito 中非常容易 - 用户可以使用 facebook、gmail、他们自己的电子邮件、 等)

此处提供了使用 Cognito 设置身份池的分步指南,然后允许未经身份验证的用户代入可以访问 S3 存储桶内容的 IAM 角色

上述情况会导致所有访客用户账户具有相同的权限集 - 这些账户已通过 Amazon Cognito 代入 IAM 角色,将自己标识为身份池的一部分。

编辑:我应该指出,如果您通过 Cognito 进行身份验证,则需要通过 AWS 开发工具包中的 S3 传输管理器访问 S3 存储桶

最新更新