首页 > 首页 > 文件存储 > 对象存储 > Minio > [原创] Minio 限制用户访问特定bucket的方法
2025
09-01

[原创] Minio 限制用户访问特定bucket的方法

Minio Web 控制台操作方法

1、访问 MinIO 控制台,使用管理员账户登录。

2、创建存储桶

[原创] Minio 限制用户访问特定bucket的方法 - 第1张  | 架构迷

3、创建Policy策略

在左侧菜单中,点击 "Access Management"(访问管理)。

在 "Policies"(策略)页面,点击 "Create Policy"(创建策略)按钮。

输入策略名称(如 test-policy)

[原创] Minio 限制用户访问特定bucket的方法 - 第2张  | 架构迷

在编辑框中输入以下 JSON 策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::test",
                "arn:aws:s3:::test/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        }
    ]
}

或者写成如下的具体策略:

{
     "Version": "2012-10-17",
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:GetObject",   // 允许获取桶中对象
                 "s3:ListBucket",  // 允许列出桶中的对象
                 "s3:PutObject"    // 允许上传对象到桶
             ],
             "Resource": [
                 "arn:aws:s3:::test",          // 允许列出桶中的对象(ListBucket权限)
                 "arn:aws:s3:::test/*"        // 允许访问桶中的对象(GetObject 和 PutObject权限)
             ]
         }
     ]
}

在这个策略文件中:

Version指定了策略的版本,这里采用的是 AWS S3 兼容的策略版本。

Statement数组包含了具体的策略声明。当前示例中的声明表示允许用户执行以下操作:

  • s3:GetObject:获取存储桶中的对象。
  • s3:ListBucket:列出存储桶中的对象列表。
  • s3:PutObject:将对象上传到存储桶中。

Resource字段定义了策略适用的资源,需要将your-bucket替换为实际的存储桶名称。

  • arn:aws:s3:::your-bucket表示整个存储桶
  • arn:aws:s3:::yourbucket/*表示存储桶中的所有对象

4、创建用户并分配策略

创建用户时候选择刚才创建的策略

[原创] Minio 限制用户访问特定bucket的方法 - 第3张  | 架构迷

5、用户权限验证

登录刚才创建的test用户,可以看到此用户只能看到指定的test bucket桶,看不到其他bucket

[原创] Minio 限制用户访问特定bucket的方法 - 第4张  | 架构迷

通过Mc 命令操作方法

1、创建用户test

# mc admin user add myminio test

2、创建一个 bucket

# mc mb myminio/test

3、创建一个 JSON 格式的策略文件

在服务器上创建一个test-policy.json 策略文件,内容如下,需要指定访问权限bucket信息

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::test",
                "arn:aws:s3:::test/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        }
    ]
}

4、上传策略并绑定用户

创建策略

# mc admin policy create myminio test-policy test-policy.json

将策略绑定到用户

# mc admin policy attach myminio test-policy --user=test

最后编辑:
作者:摘星怪
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。