在 CentOS 上保障 MinIO 的安全性
一 基础加固
sudo useradd -s /sbin/nologin -d /opt/minio minio-usersudo chown -R minio-user:minio-user /opt/minio /minioUser=minio-user、Group=minio-user/etc/security/limits.conf 以便会话继承。sudo firewall-cmd --permanent --add-port=9000/tcp --add-port=9001/tcp && sudo firewall-cmd --reload二 传输与身份认证
--certs-dir 指定;同时设置 MINIO_SERVER_URL=https://your.domain 确保控制台与客户端使用 HTTPS。示例:
sudo certbot certonly --standalone -d minio.example.comExecStart=/usr/local/bin/minio server --certs-dir /etc/letsencrypt/live/minio.example.com/ /minio/data{1..4}mc 创建业务用户、分组与策略,禁用或删除默认根密钥;为应用使用最小权限的访问密钥(Access Key/Secret Key),并定期轮换。示例:
mc admin user add local appuser 'StrongPass!23'mc admin policy set local readwrite user=appuser三 数据安全与高可用
mc mirror 到独立集群/云桶),并定期校验与演练恢复流程。四 审计监控与合规
ntpdate time.nist.gov 并配置定时任务。五 快速检查清单
| 检查项 | 期望状态/做法 |
|---|---|
| 运行身份 | 专用用户(如 minio-user),禁用登录,目录与二进制仅该用户可访问 |
| 端口与防火墙 | 仅开放 9000/9001,来源 IP 白名单化 |
| 传输加密 | 全站 HTTPS/TLS,证书有效且自动续期(如 certbot) |
| 身份与授权 | 禁用默认根密钥,按业务创建用户/策略,最小权限与定期轮换 |
| 加密与冗余 | 启用 SSE-KMS,纠删码/副本策略合理,容量与容灾阈值达标 |
| 审计与监控 | 开启访问日志,Prometheus/Grafana 监控与阈值告警 |
| 备份与演练 | 定期离线/异地备份,定期校验与恢复演练 |
| 系统基线 | 时间同步、文件描述符与内核参数按建议值配置 |