Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 Amazon S3中的子帐户(如Nirvanix)(子帐户、客户帐户)_Amazon S3_Cloud_Cloud Hosting - Fatal编程技术网

Amazon s3 Amazon S3中的子帐户(如Nirvanix)(子帐户、客户帐户)

Amazon s3 Amazon S3中的子帐户(如Nirvanix)(子帐户、客户帐户),amazon-s3,cloud,cloud-hosting,Amazon S3,Cloud,Cloud Hosting,我们正在从亚马逊S3迁移到亚马逊S3 我需要的是模拟S3存储的Nirvanix风格 (简而言之,它们提供具有预定义限制的独立存储,并为每个子用户提供单独的身份验证,仍然由同一主帐户管理) 我们将有100多个用户,因此每个用户的存储桶将无法工作(这仍然限制在100个,对吗?) 存储是直接从桌面应用程序使用的(例如,不是通过我们的服务器,尽管有一个中央服务器,如果这有帮助的话) 我们想要一个单一的S3账单账户来支付所有费用,但我们希望我们的客户对象安全地相互分割 Nirvanix提供了开箱即用的功能

我们正在从亚马逊S3迁移到亚马逊S3

我需要的是模拟S3存储的Nirvanix风格

(简而言之,它们提供具有预定义限制的独立存储,并为每个子用户提供单独的身份验证,仍然由同一主帐户管理)

我们将有100多个用户,因此每个用户的存储桶将无法工作(这仍然限制在100个,对吗?)

存储是直接从桌面应用程序使用的(例如,不是通过我们的服务器,尽管有一个中央服务器,如果这有帮助的话)

我们想要一个单一的S3账单账户来支付所有费用,但我们希望我们的客户对象安全地相互分割

Nirvanix提供了开箱即用的功能(http://developer.nirvanix.com/sitefiles/1000/API.html#_TocCreatingChildAccounts)-这就是我试图用S3复制的内容

我了解如何为每个子用户分割对象,例如使用对象的“前缀”符号(例如“USER1/object1”、“USER2/something_其他”)

我不明白的是:

1)如何设置权限,使每位客户只能访问其文件

如果我允许“应用程序”访问S3存储,那么这显然意味着应用程序的每个用户都可以访问任何人的文件

看起来你可以设置丰富的ACL,但我不明白的是你可以对谁设置权限。是否只有AWS用户?这是否意味着唯一的方法是让我的客户都拥有一个AWS帐户

如果是,我可以代表他们创建帐户吗?例如,通过API调用

我们当然不能允许每个用户都通过AWS网站创建一个帐户(糟糕!)

2)关于管理每位客户配额的最佳方法有什么想法

这让我担心,因为据我所知,我们必须从桌面应用程序中限制这一点。这显然是滥用的时机,因为S3将继续允许更多的数据

我想我们可以接受每天运行的脚本,它检查存储限制是否存在“滥用”,但只是想知道是否有更好的方法

谢谢大家


John

亚马逊推出了一项新的测试版服务,名为,它可以让你细分你的存储桶

在文档的一节中,有一些示例描述了您的用例:

示例1:允许每个用户在AmazonS3中拥有一个主目录

在本例中,我们创建一个策略 我们将附加到名为 Bob。该策略允许Bob访问 下面是Amazon中的主目录 S3:
my\u corporate\u bucket/home/bob
。 Bob只允许访问 中所示的特定Amazon S3操作 策略,并且仅与对象一起使用 在他的主目录中

{
   "Statement":[{
      "Effect":"Allow",
      "Action":["s3:PutObject","s3:GetObject","s3:GetObjectVersion",
      "s3:DeleteObject","s3:DeleteObjectVersion"],
      "Resource":"arn:aws:s3:::my_corporate_bucket/home/bob/*"
   }
   ]
}
不幸的是,我认为您目前无法使用IAM强制执行配额

此外,根据您的平台,您可能希望使用其中一种可用服务来简化与这些服务的交互


您绝对不希望在桌面应用程序中分发您的标准
密钥
,而不采取一些严重的预防措施。任何拥有您的密钥的用户都可以完全访问您的所有AWS服务。

太好了,我来看看。