每个租户都有自己的照片库,可以在Amazon S3上存储照片.看作S3对我来说相对较新,我正在寻找一些关于如何在存储桶,IAM组/用户,安全性,使用情况报告以及可能的计费方面进行管理的建议和最佳实践.
我看到它的方式是我有两个选择.
选项1: 一个主桶.每个租户都有一个存储照片的子目录.我将为整个应用程序创建一个IAM组,并为每个租户创建一个新的IAM用户,只能访问他们的子目录.将来,如果我想知道租户使用多少S3空间,那么很容易报告?我是否希望为每个租户提供唯一的AWS访问密钥和密钥,即使他们要访问同一个存储桶?
选项2: 每个租户都有自己的桶.每个租户都会获得自己的IAM用户,只能访问他们的存储桶.此选项是否更适合报告使用情况?
一般的问题:
两种选择都有任何重大缺陷吗?
还有其他我不知道的选择吗?
我可以通过IAM用户的活动报告存储,还是在桶级别报告?
BraveNewCurr.. 9
我认为你正试图将你的S3帐户变成一个多用户的东西,但事实并非如此.
每个租户都有自己的桶
你只限于100桶,所以这可能不是你想要的.(除非它是一个非常独特的网络服务:)
一个主桶
好
每个租户的IAM用户
嗯,我认为IAM用户也有限制.
如果我想知道租户使用多少S3空间,那么很容易报告?
您可以轻松编写脚本.
计费
您可以使用DevPay存储桶,在这种情况下,每个 用户可以拥有100个存储桶.但这需要每个用户注册AWS和其他复杂情况.
我可以通过IAM用户的活动报告存储,还是在桶级别报告?
IAM仅在"ingress"处检查.在那之后,它只是"你的帐户".所以这些文件没有不同的"所有者".
还有其他我不知道的选择吗?
通常的方法是使用一个控制安全性的瘦EC2服务:
您编写了一个Web应用程序并在EC2上运行它.它知道如何验证您的用户.
当用户想要上传时,他们要么将其POST到EC2(并且它复制到S3,并且可能无论如何都要调整它).或者,您为浏览器生成一个签名的POST/PUT URL,以便直接上传到S3(一旦理解就很容易做到.)
当用户想要查看文件时,他们会点击您的服务以获取允许他们访问其文件的签名URL.但是访问时间过了一段时间.没关系,因为他们只通过您的EC2网页访问文件.
结果是你的EC2盒子很小,因为它只是为浏览器创建URL.