在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支持。