如何在AWS S3中设置文件公开权限但禁止文件夹访问
解决AWS S3存储桶禁止访问带末尾斜杠的文件夹路径问题
当前你的存储桶策略允许所有用户访问桶内文件,但访问带末尾斜杠的路径时,S3会将其视为对象(若存在对应键的空对象)或返回默认空内容,导致返回200并下载空文件。你可以通过添加拒绝策略拦截这类请求,同时保留文件的正常访问权限。
修改后的存储桶策略
{ "Id": "Policy1666356335738", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFileAccess", "Action": ["s3:GetObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket-name/*", "Principal": "*" }, { "Sid": "DenyFolderPathAccess", "Action": ["s3:GetObject"], "Effect": "Deny", "Resource": "arn:aws:s3:::bucket-name/*/", "Principal": "*" } ] }
策略说明
- AllowFileAccess:保留原有允许规则,确保所有路径不以斜杠结尾的文件可正常访问。
- DenyFolderPathAccess:新增拒绝规则,匹配所有以
/*/结尾的资源路径,拦截对带末尾斜杠的“文件夹”路径的GetObject请求,返回403权限错误。
额外配置注意事项
- 清理空文件夹对象:检查存储桶中是否存在手动创建的以斜杠结尾的0字节对象(比如
folder/),这类对象是模拟文件夹用的,删除它们不会影响文件组织,但能避免被误访问。 - 静态网站托管设置:如果存储桶开启了静态网站托管,需确保未设置索引文档(或设置为不存在的文件名),防止S3自动返回索引页面内容。
内容的提问来源于stack exchange,提问作者Dim13i
相关产品推荐
相关产品推荐

