MinIO创建单个buckets的读写账号
2025-07-10 17:12 WilliamZheng 阅读(337) 评论(0) 收藏 举报目录
网上找了半天,要么是旧版本的,要么是不符和需求,干脆自己下山走一遍,顺便记录下来
一、需求
minio创建一个单buckets账号,这个账号只能上传查看下载其中一个名为“data-fenfa”的buckets,别的buckets都不见,也可以用图形化界面控制台登录,但是也只能看到“data-fenfa”的buckets。
MinIO版本是2023-07-21,部署方式K8s sts。
回顾:MinIO 的权限控制依赖于 访问密钥(Access Key) 和 策略(Policy) 的绑定。需通过命令行工具 mc 或 API 实现。
二、创建过程
1. 连接MinIO
由于我的MinIO是K8s sts部署,所以得进入pod执行mc命令创建名为myminio的别名(alias)
[root@minio-0 /]# mc alias set 'myminio' 'http://minio.datag-system.svc:9000' 'minioadmin' '<secret_key>'
Added `myminio` successfully.
2. 创建用户并绑定策略
1. 创建用户
[root@minio-0 /]# mc admin user add myminio data-fenfa <secret_key>
2. 创建一个 JSON 格式的策略文件 data-fenfa-policy.json,内容如下:
这里说下,由于MinIO 的pod里默认是没有vi命令的,这里csi用的是local-path,所以可以去pvc所在宿主机挂载的目录下创建文件,当然也可以用cat > 目标文件名 << EOF的方式创建
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::data-fenfa",
"arn:aws:s3:::data-fenfa/*"
]
},
{
"Effect": "Deny",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
3. 上传策略并绑定用户
# 创建策略
mc admin policy create myminio data-fenfa-policy /data-fenfa-policy.json
# 将策略绑定到用户
mc admin policy attach myminio data-fenfa-policy --user=data-fenfa
三、验证权限
使用S3 Browser登录data-fenfa账号,只能查看上传下载data-fenfa桶。
使用MinIO Web登录data-fenfa账号,只能查看上传下载data-fenfa桶。
WilliamZheng©版权所有 转载请注明出处! 觉得对您有帮助请点个赞哟~ 运维架构师群:833329925
浙公网安备 33010602011771号