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
  • 使用
  • 创建用户

minio policy 使用_html

 

 

  • 创建桶

minio policy 使用_参考资料_02

 

 

  • 创建策略
    比如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 桶
]
}
]
}


{

 

 

 

分配策略

minio policy 使用_参考资料_03

 

 

  • 效果

demoapp 访问

minio policy 使用_新版本_04

 

 

说明

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​