无法下载共享帐户s3存储区上传的文件
我在亚马逊S3上创建了一个存储桶,并添加了存储桶策略,让另一个用户帐户可以将文件上传到其中。 我添加了以下存储桶策略。
但是,现在我自己无法下载共享者上传的文件。 我想我没有给他们授予权利。 我应该如何继续下载文件。 他们可以授予他们上传文件的权限吗?
{
"Version": "2008-10-17",
"Id": "Policyxxxxxxxxxxxx",
"Statement": [
{
"Sid": "Stmtxxxxxxxxxxxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account_number>:root"
},
"Action": [
"s3:AbortMultipartUpload",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::<bucket_name>/*"
},
{
"Sid": "Stmtxxxxxxxxxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account_number>:root"
},
"Action": [
"s3:PutBucketLogging",
"s3:PutBucketNotification",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::<bucket_name>"
}
]
}
所以问题是,亚马逊S3桶将桶策略应用于桶拥有者拥有的对象。 因此,如果您是存储桶所有者并通过存储桶政策授予对象许可权,这意味着您还需要确保他们在对象上传过程中授予您许可权。 虽然授予跨账户权限上传对象,但只能限制仅具有读取权限的对象。
资料来源:http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html相关讨论:https://forums.aws.amazon.com/thread.jspa?messageID=524342&%20#524342示例存储桶政策:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"111",
"Effect":"Allow",
"Principal":{
"AWS":"1111111111"
},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::examplebucket/*"
},
{
"Sid":"112",
"Effect":"Deny",
"Principal":{
"AWS":"1111111111"
},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition":{
"StringNotEquals":{
"s3:x-amz-grant-full-control":[
"emailAddress=xyz@amazon.com"
]
}
}
}
]
}
我面临类似的问题
我复制从文件<sharerprofile>
到一个新的亚马逊帐户在桶<bucketname>
我无法从亚马逊的新帐户下载,因为访问保护的文件。
所以我做了以下几点:
aws --profile <sharerprofile> s3api put-object-acl --acl authenticated-read --bucket <bucketname> --key <pathofthefileInBucket>
我没有找到如何为多个文件自动执行此操作,因此我必须为每个文件重复相同的命令
面临类似的情况,即目标帐户未被授予完全访问权限,因此存储桶策略授予cloudfront读取访问权限不起作用。
除OP的"s3:x-amz-grant-full-control":[ "emailAddress=xyz@amazon.com" ]
或id=xxx
,另一种方法是使用Canned ACL。 通过使用bucket-owner-full-control
,我们不必列出特定的电子邮件或规范标识。
{
"Statement":[
{
"Effect":"Allow",
"Principal":{"AWS":"111111111111"},
"Action":"s3:PutObject",
"Resource":["arn:aws:s3:::examplebucket/*","arn:aws:s3:::examplebucket"]
},
{
"Effect":"Deny",
"Principal":{"AWS":"111111111111"},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition": {
"StringNotEquals": {"s3:x-amz-acl":"bucket-owner-full-control"}
}
}
]
}
链接地址: http://www.djcxy.com/p/59951.html
上一篇: Can't download files uploaded by shared account s3 bucket
下一篇: Download a file in amazon s3 account to another s3 account using cakephp