1. MinIO policy 如何实现 RBAC?
请说明 MinIO 如何通过 policy 实现基于角色的访问控制(RBAC)?
- policy 的 JSON 结构(Statement/Effect/Action/Resource)
- 用户、组、服务账号与 policy 的绑定
- 内置策略与自定义策略
MinIO 采用 S3 兼容的 IAM 策略实现 RBAC。策略是 JSON 文档,包含 Statement 数组,每个 Statement 有 Effect(Allow/Deny)、Action(如 s3:GetObject、s3:PutObject)、Resource(arn:aws:s3:::bucket/prefix/*)。通过 mc admin policy create 创建自定义策略,mc admin user add 建用户,mc admin policy attach 将策略绑定到用户或组。可使用内置策略(readonly、readwrite、consoleAdmin、diagnostics)或自定义细粒度策略。组可用于批量授权,服务账号(service account)用于程序访问。RBAC 通过"策略 + 用户/组/服务账号"组合实现最小权限控制。
MinIO RBAC = S3 兼容策略 + 用户/组/服务账号绑定,核心是 Action/Resource 的细粒度定义与最小权限原则。
mc admin policy create myminio diag --file policy.json
mc admin user add myminio alice secret123
mc admin policy attach myminio diag --user alice
mc admin policy list myminio