You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制MinIO存储桶文件删除?权限配置疑问及异常排查

为什么用户仍能获取存储桶对象?

MinIO默认情况下,存储桶策略仅对匿名请求生效,经过身份验证的用户(比如你配置了IAM策略的这个用户)会忽略存储桶策略的规则。你的用户已经通过IAM策略获得了s3:*的全局允许权限,而存储桶的Deny策略因为默认不作用于认证用户,所以无法覆盖用户的Allow权限。

要让存储桶策略对认证用户生效,需要在MinIO配置中开启policy_enforce参数(可通过启动参数--policy-enforce或配置文件设置)。

如何拒绝存储桶的读取/删除操作?

有两种可靠方式:

  1. 修改用户的IAM策略:直接在用户策略中添加Deny语句,限制特定存储桶的读取/删除操作,示例如下:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteBucket"
            ],
            "Resource": [
                "arn:aws:s3:::images/*",
                "arn:aws:s3:::images"
            ]
        }
    ]
}

这种方式无需额外配置,直接作用于用户,优先级最高。

  1. 启用存储桶策略对认证用户生效:先开启policy_enforce配置,再修改存储桶策略(建议指定具体用户ARN而非*,避免影响其他用户),示例如下:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012:user/your-readwrite-user"
                ]
            },
            "Action": [
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteBucket"
            ],
            "Resource": [
                "arn:aws:s3:::images/*",
                "arn:aws:s3:::images"
            ]
        }
    ]
}

是否可以对minioadmin进行此类权限限制?

默认情况下,minioadmin是MinIO的根管理员用户,拥有所有资源的完全权限,无法通过普通IAM策略或存储桶策略限制其权限。但可通过以下方式实现类似限制:

  • 使用mc admin policy attach命令为minioadmin附加自定义策略,覆盖其默认权限(操作需谨慎,避免锁死管理员权限);
  • 创建新的管理员用户并分配受限权限,之后禁用minioadmin用户(通过修改MinIO根凭证配置)。

内容的提问来源于stack exchange,提问作者Nazar Kalytiuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:33:06