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 AWS S3浏览器上载获取访问被拒绝错误_Amazon Web Services_Amazon S3_Amazon - Fatal编程技术网

Amazon web services AWS 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

我正在尝试使用AWS签名后版本4从浏览器直接将文件上载到S3存储桶。最初,我遇到了签名验证错误,我设法解决了这些错误,但现在我遇到了以下错误:

<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,结果发现是操作列表让我抓狂。但真正奇怪的是,当我在本地主机上运行时,我能够上传对象,但不能从真正的服务器上传。无论如何,谢谢你。