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










