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 web services 授予对S3文件夹的跨帐户访问权限仅限于每个帐户的特定文件夹_Amazon Web Services_Amazon S3_Amazon Iam - Fatal编程技术网

Amazon web services 授予对S3文件夹的跨帐户访问权限仅限于每个帐户的特定文件夹

Amazon web services 授予对S3文件夹的跨帐户访问权限仅限于每个帐户的特定文件夹,amazon-web-services,amazon-s3,amazon-iam,Amazon Web Services,Amazon S3,Amazon Iam,我的帐户有一个S3存储桶。我想提供多个帐户访问bucket,但只访问bucket中为他们在bucket中创建的文件夹 E.g Account No. 1111111111 would have permissions to write to only S3://TestBucketName/1111111111/ Account No. 2222222222 would have permissions to write to only S3://TestBucketName/22222222

我的帐户有一个S3存储桶。我想提供多个帐户访问bucket,但只访问bucket中为他们在bucket中创建的文件夹

E.g 
Account No. 1111111111 would have permissions to write to only S3://TestBucketName/1111111111/
Account No. 2222222222 would have permissions to write to only S3://TestBucketName/2222222222/
Account No. 3333333333 would have permissions to write to only S3://TestBucketName/3333333333/
随着时间的推移,帐户的数量将增加。有没有办法在资源策略中添加占位符,而不是像下面所示那样为每个帐户添加资源策略,这样尝试写入对象的帐户只能在为该帐户创建的文件夹中这样做? 我的帐户将在Bucket中创建文件夹

"Statement": [
        {
            "Sid": "AllowGetObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::1111111111:root"
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::TestBucketName/1111111111/*",
                "arn:aws:s3:::TestBucketName/1111111111"
            ]
        }
    ]

如果他们帐户的文件夹不存在,他们就不能上传bucket中的对象。

我认为只有其他帐户使用他们的root用户时才有可能。如果是这种情况,IAM变量
aws:userid
将保留帐户id。如果其IAM用户或角色执行来自其他帐户的请求,
aws:userid
将保留用户/角色id,不是帐户id。如何提供对其他帐户的访问权限,而不考虑用于在前缀位置上载对象的用户?我想知道在主帐户中拥有角色是否会有所帮助。该角色可由其他帐户中的用户承担。然后,在bucket策略中,
aws:userid
将具有
角色id:caller指定的角色名
。这可以将您的bucket策略简化为一条语句。我还没有证实,这只是一个想法。@learningMyWayThru用户只上传一个文件,还是很多文件?他们将如何与S3接口(例如管理控制台、AWS CLI或程序/脚本)?他们将上载多个文件并使用S3 API/CLI
E.g 
Account No. 1111111111 would have permissions to write to only S3://TestBucketName/1111111111/
Account No. 2222222222 would have permissions to write to only S3://TestBucketName/2222222222/
Account No. 3333333333 would have permissions to write to only S3://TestBucketName/3333333333/