minio 参考aws s3 实现了用户的iam 访问控制,使用体验是一致的,而且比较方便,比如我们创建了一个用户或者组之后就需要进行权限创建分配
环境准备
- docker-compose 文件
version: '3'
services:
minio:
image: minio/minio
ports:
- "9000:9000"
- "19001:19001"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
command: server --console-address :19001 --quiet /data
使用
- 创建用户
- 创建桶
- 创建策略
比如demoapp 使用test 桶,demoappv2 使用demoapp 桶
test policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow", // 允许
"Action": [
"s3:*" // 所有权限
],
"Resource": [
"arn:aws:s3:::test" // 访问test 桶
]
}
]
}
demoapp policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow", // 允许
"Action": [
"s3:*" // 所有权限
],
"Resource": [
"arn:aws:s3:::demoapp" // 访问test 桶
]
}
]
}
分配策略
- 效果
demoapp 访问
说明
minio 的mc 也是可以进行管理(新版本名称修改为了mcli),当前也已经内置的一些策略consoleAdmin,diagnostics,readonly,readwrite
参考标准模版
{
"Effect": "Allow|Deny", // 允许
"Action": [
"s3:*" // 所有权限
],
"Resource": [
"arn:aws:s3:::demoapp" // 需要访问的资源
]
}
实际上aws 的iam 是比较强大的一个东西,很值得学习下,是一个面向云资源管控很不错的一给权限模式
同时minio 还支持一个group 的能力,方便给多个用户进行策略分配,比如graylog,shiro 就支持基于此模式的授权(urn 模式)
参考资料
https://docs.aws.amazon.com/iam/index.html
https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management.html
https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management/policy-based-access-control.html