Quản lý User, Permission và Bucket trong MinIO qua CLI
MinIO là một giải pháp lưu trữ đối tượng tương thích với S3, nhẹ và nhanh, thường được triển khai trong các container như Docker hoặc Kubernetes. Phiên bản mới nhất của MinIO đã chuyển hầu hết chức năng quản lý người dùng, khóa bí mật và chính sách sang CLI (mc), trong khi Console (GUI) ở cổng 9001 tập trung vào việc giám sát và quan sát.
Trong bài viết này, chúng ta sẽ khám phá cách thực hiện các thao tác quản lý như tạo người dùng, cấp quyền và quản lý bucket bằng cách sử dụng mc (MinIO Client).
Mục lục
- Setup Awal
- Tạo Người Dùng Mới
- Tạo Bucket
- Cấp Quyền (Policy)
- Xóa Bucket
- Thực Hành Tốt Nhất
- Kết Luận
- Câu Hỏi Thường Gặp (FAQ)
1. Setup Awal
Cài đặt MinIO Client
Bạn cần tải xuống và cài đặt mc trên máy chủ:
bash
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
Thêm Alias cho Server MinIO
Sau khi cài đặt, bạn cần thêm alias cho server MinIO:
bash
mc alias set myminio http://localhost:9000 admin forward098
Ở đây, admin và forward098 là thông tin xác thực root (được xác định qua MINIO_ROOT_USER & MINIO_ROOT_PASSWORD).
2. Tạo Người Dùng Mới
Để tạo một người dùng mới, hãy sử dụng lệnh sau:
bash
mc admin user add myminio carteluser CartelS3cretKey123
Người dùng carteluser với khóa bí mật CartelS3cretKey123 sẽ được thêm vào.
Để kiểm tra danh sách người dùng:
bash
mc admin user list myminio
3. Tạo Bucket
Để tạo một bucket mới với tên cartel, bạn có thể sử dụng lệnh:
bash
mc mb myminio/cartel
Nếu bucket đã tồn tại, lệnh này sẽ hiển thị thông báo lỗi nhưng không làm hỏng dữ liệu.
Để kiểm tra các bucket hiện có:
bash
mc ls myminio
4. Cấp Quyền (Policy)
MinIO cung cấp các chính sách có sẵn:
readwrite→ toàn quyền truy cập vào tất cả bucketreadonly→ chỉ đọc tất cả bucketwriteonly→ chỉ ghi vào tất cả bucket
Để gán chính sách cho người dùng:
bash
mc admin policy attach myminio readwrite --user carteluser
Để kiểm tra thông tin chi tiết của người dùng:
bash
mc admin user info myminio carteluser
Lưu ý: Nếu bạn cần quyền hạn hạn chế chỉ cho một bucket, hãy tạo chính sách tùy chỉnh trong định dạng JSON.
5. Xóa Bucket
Nếu bucket đã trống, bạn có thể sử dụng lệnh sau để xóa:
bash
mc rb myminio/cartel
Nếu bucket chứa đối tượng và bạn muốn xóa tất cả cùng một lúc:
bash
mc rb myminio/cartel --force
6. Thực Hành Tốt Nhất
- Không sử dụng thông tin xác thực root cho ứng dụng sản xuất.
- Tạo người dùng khác nhau cho mỗi ứng dụng/dịch vụ để dễ dàng kiểm tra và thu hồi quyền.
- Sử dụng chính sách với mức độ hạn chế nhất có thể (least privilege).
- Lưu trữ thông tin xác thực trong công cụ quản lý bí mật (Vault, Kubernetes Secret, v.v.), không lưu trong tệp cấu hình thô.
7. Kết Luận
Quản lý người dùng, quyền và bucket trong MinIO hiện nay hoàn toàn có thể thực hiện thông qua CLI mc. Với một số lệnh đơn giản, bạn có thể tạo người dùng mới, tạo bucket, cấp chính sách và xóa bucket một cách an toàn. Cách tiếp cận này không chỉ nhất quán mà còn dễ dàng tự động hóa, phù hợp với các thực tiễn tốt nhất trong việc quản lý lưu trữ đối tượng hiện đại.
8. Câu Hỏi Thường Gặp (FAQ)
MinIO có hỗ trợ multi-tenancy không?
Có, MinIO hỗ trợ multi-tenancy qua việc quản lý người dùng và chính sách.
Làm thế nào để phục hồi dữ liệu đã xóa trong MinIO?
Khi một bucket đã bị xóa, dữ liệu không thể phục hồi. Hãy chắc chắn rằng bạn có các biện pháp sao lưu thích hợp.
MinIO có thể chạy trên nền tảng nào?
MinIO có thể chạy trên bất kỳ nền tảng nào hỗ trợ Docker hoặc Kubernetes.