MinIO自定义权限控制浅研

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


MinIO搭建好之后,出于不同场景的需要,有时候需要对不同的用户和Bucket做一些针对性的权限控制。

MinIO的权限控制配置方式不是很友好,需要自己修改策略的配置代码。最近研究测试了一些可能用到的权限做了一下实验,或许你也遇到过相同的需求......

环境搭建

1. 部署一个minio(minio单点和集群的部署可参考《圣诞来了,介绍个对象》《Look,一群对象来了》);

2. 并创建一个名为sre01、一个sre02的Bucket用于测试权限;

权限实验

前提说明:后面的权限实验中,针对指定Bucket的场景,均默认指定sre01这个Bucket。

1. 拥有全部Bucket的只读权限

权限说明:能看到minio里面的全部Bucket,但无法看到里面有哪些文件。这个就是minio默认的readonly权限,无需自己编辑权限策略:

Bucket查看文件UploadDownloadShareDelete
ALLNNNNN

1.1 创建名为sre的用户,并赋予readonly权限

1.2 权限验证

2. 对指定Bucket的只读权限

权限说明:只能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以生成分享链接,但不能上传、下载和删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YNNYN

2.1 创建一个名为sre01-read的权限策略

策略代码:

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

2.2 修改用户sre权限,改为sre01-read权限

2.3 权限验证

登录sre用户验证权限,对sre01下的文件可分享,不可上传、下载和删除:

3. 对指定Bucket的下载&分享权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以生成分享链接和下载,但是不能上传&下载和删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YNYYN

3.1 创建一个名为sre01-download的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

3.2 修改用户sre权限,改为sre01-download权限

3.3 权限验证

登录sre用户验证权限,对sre01下的文件可分享&下载,不可上传&删除:

4. 对指定Bucket的上传&分享权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以上传文件到sre01,对文件可以生成分享链接,但不能下载和删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YYNYN

4.1 创建一个名为sre01-uplouad的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",  #如果去掉这一行,就只拥有uplouad权限,看不到bucket下的文件
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

4.2 创建修改用户sre权限,改为sre01-upload权限

4.3 权限验证

登录sre用户,验证权限,可分享可上传,不可下载,不可删除:

5. 对指定Bucket的上传&分享&下载权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以在sre01执行文件上传和下载,对文件可以生成分享链接,但不能删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YYYYN

5.1 创建一个名为sre01-uplouad-download的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

5.2 创建修改用户sre权限,改为sre01-uplouad-download权限

5.3 权限验证

登录sre用户,验证权限,可分享可上传,不可下载,不可删除:

6. 对指定Bucket的全控制权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以在sre01执行文件上传、下载和删除,对文件可以生成分享链接。

Bucket查看文件UploadDownloadShareDelete
sre01YYYYY

6.1 创建一个名为sre01-uplouad-download-delete的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

6.2 创建修改用户sre权限,改为sre01-uplouad-download权限

6.3 权限验证

登录sre用户,验证权限,可分享可上传,不可下载,不可删除:

以上就是实验的几种minio用户权限控制场景。那么问题来了:

在上面几种权限控制中,只要拥有Bucket下文件的查看权限,就会拥有生成分享链接的share权限。那么在用户不拥有download权限的场景下(如sre-read、sre-upload)该用户能利用自身的share权限,将Bucket下的文件生成下载链接,供自己在浏览器访问链接下载文件吗?

图片

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值