使用存储桶策略限制 S3 文件上传大小的任何方法?
Any way to limit S3 file upload size using bucket policy?
我正在基于浏览器上传到我的 S3 存储桶,当然,当这样做时,没有什么可以阻止最终用户上传任意大小的任何文件。
有没有办法修改存储桶策略以防止此类滥用?
这是我当前的存储桶策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::mybucket/*"
},
{
"Sid": "Statement2",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucketVersions",
"Resource": "arn:aws:s3:::mybucket"
}
]
}
Is there a way to modify the bucket policy to prevent abuse of this kind?
没有。相反,您必须完全修改您的应用程序并只允许 授权用户 上传内容。您对 "Principal": "*",
和 s3:PutObject
的政策是 不良做法 导致了您的问题。
所以你必须实现某种登录系统(可以使用 Amazon Congito),只有登录后授权用户才能上传文件。但不能直接上桶。相反,您应该使用 S3 presigned urls.
同样,应该禁止直接从S3下载文件。相反,应该使用 CloudFront with S3。
我正在基于浏览器上传到我的 S3 存储桶,当然,当这样做时,没有什么可以阻止最终用户上传任意大小的任何文件。
有没有办法修改存储桶策略以防止此类滥用?
这是我当前的存储桶策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::mybucket/*"
},
{
"Sid": "Statement2",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucketVersions",
"Resource": "arn:aws:s3:::mybucket"
}
]
}
Is there a way to modify the bucket policy to prevent abuse of this kind?
没有。相反,您必须完全修改您的应用程序并只允许 授权用户 上传内容。您对 "Principal": "*",
和 s3:PutObject
的政策是 不良做法 导致了您的问题。
所以你必须实现某种登录系统(可以使用 Amazon Congito),只有登录后授权用户才能上传文件。但不能直接上桶。相反,您应该使用 S3 presigned urls.
同样,应该禁止直接从S3下载文件。相反,应该使用 CloudFront with S3。