我已经尝试了几乎所有可能的存储桶策略。还尝试向用户添加策略,但是每次尝试使用AWS控制台从s3存储桶下载对象时,都会遇到访问被拒绝的情况。
值区政策:
{
"Version": "2012-10-17",
"Id": "MyPolicy",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12345678901011:user/my-username"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
},
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"XX.XXX.XXX.XXX/24",
"XXX.XXX.XXX.XXX/24"
]
}
}
}
]
}
那不起作用,因此我尝试将策略添加到我的用户名:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "StmtXXXXXXXXXX",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}
听起来很奇怪,但可以将拥有存储桶的帐户无法访问的对象上传到Amazon S3 。
将对象上载到Amazon S3(PutObject
)后,可以指定访问控制列表(ACL)。可能的值为:
通常,您应该使用bucket-owner-full-control
ACL上传对象。这允许存储桶的所有者访问对象,并具有控制对象的权限(例如,删除对象)。
如果未提供此权限,则他们将无法访问或修改该对象。
我知道这与您认为存储桶应该工作的方式相矛盾,但这是事实!
解决方法:
bucket-owner-full-control
ACL重新上传对象,或者CopyObject
使用新的ACL进行就地操作。这样无需重新上传即可更改权限。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句