Amazon web services AWS S3浏览器上载获取访问被拒绝错误
我正在尝试使用AWS签名后版本4从浏览器直接将文件上载到S3存储桶。最初,我遇到了签名验证错误,我设法解决了这些错误,但现在我遇到了以下错误:Amazon web services AWS S3浏览器上载获取访问被拒绝错误,amazon-web-services,amazon-s3,amazon,Amazon Web Services,Amazon S3,Amazon,我正在尝试使用AWS签名后版本4从浏览器直接将文件上载到S3存储桶。最初,我遇到了签名验证错误,我设法解决了这些错误,但现在我遇到了以下错误: <Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>9343E20EAA0FD14E</RequestId <HostId>RldZp4h5n6t
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>9343E20EAA0FD14E</RequestId
<HostId>RldZp4h5n6tK8R5WKmWnn0k8PNvJGxb6m...</HostId>
</Error>
我在S3 bucket中启用了日志记录,但它们是最小的,并且不提供任何额外的细节
我有以下政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::000000000000:user/username"
},
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::bucketname/*"
}
]
}
当我使用API key/secret of my user从我的计算机或EC2实例上载文件时,它可以工作,但使用带签名策略的浏览器上载时,会出现上述错误。我找到了答案。我将请求(和内部策略)中的acl设置为公共读取,这需要在bucket策略中添加权限。我将“s3:PutObjectAcl”添加到操作列表中,它起了作用。对于我来说,我需要访问IAM控制台,并将策略附加到我用来签署策略的用户的访问密钥和机密。我附加的策略是
AmazonS3FullAccess
可能的解决方案是添加No,这不是CORS错误。我花了2个小时搜索web,结果发现是操作列表让我抓狂。但真正奇怪的是,当我在本地主机上运行时,我能够上传对象,但不能从真正的服务器上传。无论如何,谢谢你。