如何为一个用户最好地保护s3文件



我制作了一个面板,用户可以在其中上传文件。我想让用户只能访问S3 URL,这些URL是他们上传的文件。我怎样才能做到这一点?

用户是基于应用程序的,这意味着在我的案例中,他们是Django用户。

谢谢!任何帮助!!

由于这完全是基于应用程序的,因此可以采取一些步骤来尝试和减轻意外暴露。

首先,以使用用户名前缀的方式组织S3文件夹结构,从层次结构的角度来看,可以限制用户对象的存储范围。我所说的前缀是指密钥可能看起来像users/$USERNAME/file.txt,其中$USERNAME实际上是用户的用户名。

您可以在您的应用程序中通过扩展使用Cognito来增强这一点,您创建的每个用户都有一个单独的用户。当用户登录到您的应用程序时,您也可以通过Cognito用户进行登录(这可以通过编程实现(。

成功登录后,您将获得IAM的临时凭据,所有用户都可以分配到Cognito组,该组可以附加IAM角色。当您登录时,它将承担此角色,这允许IAM中支持一些特殊属性。

通过使用${cognito-identity.amazonaws.com:sub},您实际上可以将IAM权限限制为仅访问S3存储桶的前缀。这将责任从您的应用程序转移到Cognito和IAM。

有关这方面的更多信息,请访问:Amazon S3:允许Amazon Cognito用户访问其Bucket中的对象。

最新更新