
如何在 MinIO 中添加副管理员并分配用户管理的最小权限策略【免费下载链接】minioMinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.项目地址: https://gitcode.com/GitHub_Trending/mi/minioMinIO 除了服务器启动时创建的默认 operator 凭据外支持添加多个管理员用户并且可以为这些用户配置允许或拒绝不同的管理操作。本文的任务是在一台已运行的 MinIO 服务器上添加一个副管理员文档示例中为admin1并只授予其用户管理所需的最小权限策略最后用该副管理员自己的凭据验证它确实能创建/管理其他用户。前提条件以 多用户管理指南 为准已安装 mcMinIO Client已安装并启动 MinIO 服务器已用 root 凭据配置好 mc alias。文档中的命令统一使用 alias 名myminio指向服务器地址后续验证步骤中为http://localhost:9000。创建仅含用户管理权限的策略文件默认管理员拥有全部管理权限。要实现最小权限先按 多用户管理员指南 创建一个自定义策略文件adminManageUser.json。该策略的 admin 动作只包含admin:CreateUser、admin:DeleteUser、admin:ConfigUpdate三项文档说明该策略“启用管理员用户管理其他用户”cat adminManageUser.json EOF { Version: 2012-10-17, Statement: [ { Action: [ admin:CreateUser, admin:DeleteUser, admin:ConfigUpdate ], Effect: Allow, Sid: }, { Action: [ s3:* ], Effect: Allow, Resource: [ arn:aws:s3:::* ], Sid: } ] } EOF第二个s3:*语句是文档示例策略的一部分保留原样即可。然后用该文件在服务器上创建名为userManager的策略mc admin policy attach myminio userManager adminManageUser.json创建副管理员用户并挂载策略用 root 凭据通过mc admin user创建副管理员用户admin1示例密码admin123mc admin user add myminio admin1 admin123用户创建成功后把userManager策略挂载给admin1mc admin policy attach myminio userManager --useradmin1执行到这里admin1就成为一个只允许执行用户创建/删除操作的副管理员。文档明确说明该管理员用户随后可以通过mc admin user执行创建/删除用户操作。用副管理员凭据验证用户管理能力验证思路是切换到admin1自己的凭据看它能否完成用户管理。先按 多用户管理指南 中同样的mc alias set形式为admin1配置一个独立 aliasmc alias set myminio-admin1 http://localhost:9000 admin1 admin123 --api s3v4然后以admin1身份创建普通用户user1并挂载一个策略文档示例用user1policy与策略文件~/user1policy.json其中策略内容需按 多用户指南 第 2 节的方法自行准备mc admin user add myminio-admin1 user1 user123 mc admin policy attach myminio-admin1 user1policy ~/user1policy.json mc admin policy attach myminio-admin1 user1policy --useruser1如果这几条命令用admin1的凭据执行成功说明最小权限策略已按预期生效admin1拥有创建用户和挂载策略的入口能力。另外可以用 root 凭据列出所有用户确认admin1和user1都已存在于服务器上该命令来自 多用户指南 第 7 节mc admin user list myminio调整最小权限集时参考哪些 admin 动作如果admin1的职责不止创建/删除用户可以从 多用户管理员指南 列出的管理权限清单里按需挑选避免直接给admin:*全量权限。与用户/组管理直接相关的动作有用户管理admin:CreateUser、admin:DeleteUser、admin:ListUsers、admin:EnableUser、admin:DisableUser、admin:GetUser用户/组管理admin:AddUserToGroup、admin:RemoveUserFromGroup、admin:GetGroup、admin:ListGroups、admin:EnableGroup、admin:DisableGroup策略管理admin:CreatePolicy、admin:DeletePolicy、admin:GetPolicy、admin:AttachUserOrGroupPolicy、admin:ListUserPolicies服务账户管理admin:CreateServiceAccount、admin:UpdateServiceAccount、admin:RemoveServiceAccount、admin:ListServiceAccounts配置管理admin:ConfigUpdate文档示例的最小策略只取了前两组中的一部分CreateUser、DeleteUser、ConfigUpdate。文档同时提醒admin:*表示授予全部管理权限只在需要时才使用。限制条件如果服务器配置了 AD/LDAP则 MinIO 不支持内部定义的长期用户只允许 AD/LDAP 用户以及 root 用户此时mc admin user/mc admin group的大部分操作也不可用仅mc admin user info和mc admin group info可用见 LDAP 配置说明。也就是说本文的副管理员流程适用于未配置 AD/LDAP 的内部用户体系。如果管理员用户改由外部 IDP 管理则按 多用户管理员指南 第 5 节的说法通过配置带上述特殊权限的管理员策略、并走 STS 流程来管理用户。完成上述步骤后服务器上就存在一个仅能做用户管理的副管理员root 凭据继续负责全部管理操作日常的用户创建、删除与策略挂载可以下放给admin1且其权限面被限定在userManager策略声明的范围内。【免费下载链接】minioMinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.项目地址: https://gitcode.com/GitHub_Trending/mi/minio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考