Minio
คือระบบ object storage แบบ high-performance ที่เข้ากันได้กับ Amazon S3 API ช่วยให้จัดเก็บและบริหารจัดการไฟล์ขนาดใหญ่ได้อย่างปลอดภัย รองรับการจัดการผู้ใช้งานด้วย User / Group / Policy และสามารถใช้งานผ่าน Console, CLI (mc), API/SDK
Bucket
Section titled “Bucket”ที่เก็บข้อมูล ใน MinIO หรือ S3
เปรียบเหมือน โฟลเดอร์ใหญ่ ที่เก็บไฟล์หลาย ๆ ตัว
Object
Section titled “Object”ไฟล์หรือข้อมูลที่เก็บใน bucket
Permision
Section titled “Permision”Root account คือผู้ใช้ระดับสูงสุด (superuser) เพียงคนเดียว มีสิทธิ์จัดการทุกอย่างในระบบ
ในการจัดการ permission ของ minio จะประกอบด้วย 2 องค์ประกอบดังนี้
Policy
Section titled “Policy”คือชุดกฎที่ใช้กำหนดสิทธิ์การเข้าถึง เช่น การกำหนดสิทธิ์ให้ bucket หรือบริการอื่น ๆ ในระบบโดยรูปแบบการกำหนดสิทธิ์จะเป็นแบบ json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::my-bucket/*"] }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::my-bucket"] } ]}

คือการจัดกลุ่มผู้ใช้งาน โดยเราสามารถผูก Policy หลาย ๆ ตัวเข้ากับ Group ได้ ตัวอย่างเช่น Group: contentManger ประกอบไปด้วย Policy publicAssetEdit และ contentEdit เป็นต้น



Authentication
Section titled “Authentication”ในการยืนยันตัวตน (authentication) เราสามารถใช้ 2 วิธีดังนี้
User account
Section titled “User account”ใช้ username และ password ในการยืนยันตน เหมาะสำหรับการใช้งานผ่าน MinIO Console
Service account
Section titled “Service account”ใช้ accesskey และ secretkey ในการยืนยันตน เหมาะสำหรับการใช้งานผ่าน API หรือ SDK
การสร้าง Service account จะต้องอ้างอิงกับ User account เสมอ
- หนึ่ง User account สามารถสร้าง หลาย Service account ได้
Minio client commands
Section titled “Minio client commands”
สร้าง alias ด้วยคำสั่ง
mc alias set <alias> <url> <username> <password>
alias คือชื่อที่ใช้แทน url ของ minio server
# แสดง alias ในระบบmc alias list

Bucket
Section titled “Bucket”# แสดง bucket ในระบบmc ls <alias>
# สร้าง bucketmc mb <alias>/<bucketname>
# ลบ bucket ระวังการใช้งาน! เพราะมันไม่มี confirm ก่อนmc rb <alias>/<bucketname>
Bucket permission
Section titled “Bucket permission”MinIO bucket มี สิทธิ์การเข้าถึง 4 ประเภท ดังนี้:
- public
- อ่านข้อมูลได้ (read)
- อัพโหลดไฟล์ได้ (write)
- upload
- อัพโหลดไฟล์ได้เท่านั้น (write)
- ไม่สามารถอ่านไฟล์ได้ (no read)
- download
- ดาวน์โหลดไฟล์ได้เท่านั้น (read)
- ไม่สามารถอัพโหลดไฟล์ได้ (no write)
- private
- ไม่สามารถอ่านหรือเขียนไฟล์ได้ (no read/write)
- เหมาะสำหรับเก็บข้อมูลส่วนตัว
# แสดงสิทธิ์การเข้าถึง bucketmc anonymous list <alias>/<bucketname>/<bucket-path>
# ตั้งสิทธิ์การเข้าถึง bucketmc anonymous set <permission> <alias>/<bucketname>/<bucket-path>

# แสดง group ในระบบmc admin group list <alias>
# เพิ่ม policy ให้ groupmc admin policy attach <alias> <policy> --group <groupname>
Policy
Section titled “Policy”# แสดง policy ในระบบmc admin policy list <alias>
# แสดง user ในระบบmc admin user list <alias>
# เพิ่ม user ในระบบmc admin user add <alias> <username> <password>
# แสดง policy ของ usermc admin user policy <alias> <username>
# เพิ่ม policy ให้ usermc admin policy attach <alias> <policy> --user <username>
# ลบ policy ออกจาก usermc admin policy detach <alias> <policy> --user <username>