Amazon web services 授予对S3文件夹的跨帐户访问权限仅限于每个帐户的特定文件夹
我的帐户有一个S3存储桶。我想提供多个帐户访问bucket,但只访问bucket中为他们在bucket中创建的文件夹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
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/