在Ubuntu下设置MinIO的安全配置主要包括启用TLS加密、设置访问密钥和密码、以及配置防火墙等。以下是详细步骤:
首先,你需要为MinIO生成TLS证书。这可以通过使用kes(Key Management Service)工具来完成。以下是具体步骤:
下载并解压kes:
git clone https://github.com/minio/kes.git cd kes ./configure make sudo make install 为kes生成证书:
./kes identity new --key ./certs/kes-tls.key --cert ./certs/kes-tls.crt --ip 172.19.0.30 --expiry=87600h localhost --force 为MinIO生成证书:
./kes identity new --key ./certs/minio-tls.key --cert ./certs/minio-tls.crt --ip 172.19.0.30 --expiry=87600h minio --force 修改MinIO配置文件:
编辑MinIO的配置文件/data/config/minio.conf,添加或修改以下内容:
[global] server_addr = 172.19.0.30 server_port = 9000 https_port = 9090 access_key = admin secret_key = admin123 tls_cert_file = /certs/kes-tls.crt tls_key_file = /certs/kes-tls.key 重启MinIO服务:
sudo systemctl restart minio 在启动MinIO容器时,可以通过环境变量MINIO_ROOT_USER和MINIO_ROOT_PASSWORD来设置管理员用户名和密码。
docker run -d --name minio \ -p 9000:9000 \ -p 9090:9090 \ -e "MINIO_ROOT_USER=admin" \ -e "MINIO_ROOT_PASSWORD=admin123" \ -v /data:/data \ minio/minio server /data \ --console-address ":9090" 为了提高安全性,你可能还需要配置防火墙,只允许特定的IP地址访问MinIO服务。例如,使用ufw(Uncomplicated Firewall):
sudo ufw allow 9000/tcp sudo ufw allow 9090/tcp sudo ufw enable 为了提供HTTPS支持,可以使用Nginx作为反向代理。以下是一个简单的Nginx配置示例:
server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/private.key; location / { proxy_pass http://127.0.0.1:9000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } 将上述配置保存为/etc/nginx/sites-available/minio,然后创建符号链接到sites-enabled目录,并测试配置:
sudo ln -s /etc/nginx/sites-available/minio /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx 完成以上步骤后,你的MinIO实例将在Ubuntu上以安全的方式运行,提供了TLS加密、强密码策略以及可选的HTTPS支持。