204 字
1 分钟
MinIO 存储桶安全策略配置
2026-01-21

将 MinIO 存储桶配置为 public 后,任何人均可通过 HTTP 请求直接操作存储桶内容。应通过自定义存储桶策略限制操作权限。

尚未部署 MinIO?参见 MinIO 对象存储安装指南

问题原因#

MinIO 的 public 策略等同于完全开放,包括列目录(s3:ListBucket)、上传(s3:PutObject)、删除(s3:DeleteObject)等操作均无限制。

推荐策略:仅允许公共读#

以下策略允许任何人读取文件(GetObject),但禁止写入、删除和列目录:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::your-bucket-name/*"]
},
{
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:PutObject",
"s3:DeleteObject",
"s3:PutBucketPolicy",
"s3:DeleteBucketPolicy"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}

仅禁止列目录#

如果只需防止目录遍历,可单独添加以下 Deny 规则:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::your-bucket-name"
}
]
}

your-bucket-name 替换为实际存储桶名称,然后在 MinIO Console 的 Bucket → Access Policy 中粘贴并保存即可。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

MinIO 存储桶安全策略配置
https://blog.olinl.com/posts/minio-bucket-policy/
作者
顾拾柒
发布于
2026-01-21
许可协议
CC BY-NC-SA 4.0

目录