Minio เป็นที่เก็บอ็อบเจ็กต์ที่ใช้งานง่าย รวดเร็ว และเข้ากันได้กับ AWS S3 Minio ได้รับการออกแบบมาเพื่อโฮสต์ข้อมูลที่ไม่มีโครงสร้าง เช่น รูปภาพ วิดีโอ ไฟล์บันทึก การสำรองข้อมูล minio ยังรองรับโหมดกระจาย ซึ่งให้ความสามารถในการเชื่อมต่อดิสก์หลายตัวเข้ากับเซิร์ฟเวอร์หน่วยเก็บข้อมูลอ็อบเจ็กต์เดียว รวมถึงดิสก์ที่อยู่บนเครื่องอื่นด้วย
จุดประสงค์ของโพสต์นี้คือเพื่อกำหนดค่า minio เพื่อให้ผู้ใช้แต่ละคนสามารถทำงานได้เฉพาะกับที่เก็บข้อมูลของตนเองเท่านั้น
โดยทั่วไป Minio เหมาะสำหรับกรณีต่อไปนี้:
- พื้นที่จัดเก็บข้อมูลแบบไม่จำลองข้อมูลบนระบบไฟล์ที่เชื่อถือได้พร้อมการเข้าถึงผ่าน S3 (พื้นที่เก็บข้อมูลขนาดเล็กและขนาดกลางที่โฮสต์บน NAS และ SAN)
- พื้นที่เก็บข้อมูลที่ไม่ซ้ำซ้อนบนระบบไฟล์ที่ไม่น่าเชื่อถือพร้อมการเข้าถึง S3 (สำหรับการพัฒนาและการทดสอบ)
- ที่เก็บข้อมูลพร้อมการจำลองบนเซิร์ฟเวอร์กลุ่มเล็ก ๆ ในแร็คเดียวที่เข้าถึงได้ผ่านโปรโตคอล S3 (ที่เก็บข้อมูลเฟลโอเวอร์ที่มีโดเมนล้มเหลวเท่ากับแร็ค)
ในระบบ RedHat เราเชื่อมต่อพื้นที่เก็บข้อมูล Minio อย่างไม่เป็นทางการ
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
สร้างและเพิ่มไปยัง MINIO_ACCESS_KEY และ MINIO_SECRET_KEY ใน /etc/minio/minio.conf
# Custom username or access key of minimum 3 characters in length.
MINIO_ACCESS_KEY=
# Custom password or secret key of minimum 8 characters in length.
MINIO_SECRET_KEY=
หากคุณจะไม่ใช้ nginx ก่อน Minio คุณจะต้องเปลี่ยน
--address 127.0.0.1:9000
บน
--address 0.0.0.0:9000
เปิดตัวมินิโอกัน
systemctl start minio
เราสร้างการเชื่อมต่อกับ Minio ที่เรียกว่า myminio
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
สร้างที่เก็บข้อมูล user1bucket
minio-mc mb myminio/user1bucket
สร้างที่เก็บข้อมูล user2bucket
minio-mc mb myminio/user2bucket
สร้างไฟล์นโยบาย user1-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutBucketPolicy",
"s3:GetBucketPolicy",
"s3:DeleteBucketPolicy",
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user1bucket"
],
"Sid": ""
},
{
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user1bucket/*"
],
"Sid": ""
}
]
}
สร้างไฟล์นโยบาย user2-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutBucketPolicy",
"s3:GetBucketPolicy",
"s3:DeleteBucketPolicy",
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user2bucket"
],
"Sid": ""
},
{
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::user2bucket/*"
],
"Sid": ""
}
]
}
สร้างผู้ใช้ user1 ด้วยรหัสผ่าน test12345
minio-mc admin user add myminio user1 test12345
สร้างผู้ใช้ user2 ด้วยรหัสผ่าน test54321
minio-mc admin user add myminio user2 test54321
เราสร้างนโยบายใน Minio ชื่อ user1-policy จากไฟล์ user1-policy.json
minio-mc admin policy add myminio user1-policy user1-policy.json
เราสร้างนโยบายใน Minio ชื่อ user2-policy จากไฟล์ user2-policy.json
minio-mc admin policy add myminio user2-policy user2-policy.json
ใช้นโยบาย user1-นโยบายกับผู้ใช้ user1
minio-mc admin policy set myminio user1-policy user=user1
ใช้นโยบาย user2-นโยบายกับผู้ใช้ user2
minio-mc admin policy set myminio user2-policy user=user2
ตรวจสอบการเชื่อมต่อของนโยบายกับผู้ใช้
minio-mc admin user list myminio
การตรวจสอบการเชื่อมต่อของนโยบายกับผู้ใช้จะมีลักษณะดังนี้
enabled user1 user1-policy
enabled user2 user2-policy
เพื่อความชัดเจนให้ไปที่เบราว์เซอร์ไปยังที่อยู่
เราเห็นว่าเราเชื่อมต่อกับ Minio ภายใต้ MINIO_ACCESS_KEY=user1 ที่เก็บข้อมูล user1bucket พร้อมใช้งานสำหรับเรา
จะสร้างที่เก็บข้อมูลไม่ได้ เนื่องจากไม่มีการดำเนินการที่เกี่ยวข้องในนโยบาย
มาสร้างไฟล์ในที่เก็บข้อมูล user1bucket
มาเชื่อมต่อกับ Minio ภายใต้ MINIO_ACCESS_KEY=user2 ที่เก็บข้อมูล user2bucket พร้อมใช้งานสำหรับเรา
และเราไม่เห็นทั้ง user1bucket หรือไฟล์จาก user1bucket
สร้างแชท Telegram โดยใช้ Minio
ที่มา: will.com