繁体   English   中英

为什么我需要通过预签名 url 上传到 s3 的存储桶策略?

[英]Why do I need a bucket policy for uploading to s3 via presigned url?

我创建了一个预签名的 URL 供用户将文件上传到 s3 存储桶。 但是他们出现AccessDenied错误。 经过一番搜索后,我发现我可以通过添加存储桶策略来适应它:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicPutObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::mybucket/*"
        }
    ]
}

但这将使我的存储桶向公众开放。 我想知道为什么我需要一个预签名 URL 的策略。它不是已经有上传文件的权限了吗? 我正在构建一个反应网站,它将使用这个预签名的 URL 将文件上传到 s3 存储桶。 我应该制定什么样的政策?

我想出了解决办法。 问题是我使用 lambda 生成预签名的 URL 但它没有对 s3 存储桶的权限。 它可以通过将 s3 存储桶 PutObject 权限策略附加到 lambda 角色来修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM