การตั้งค่า Minio เพื่อให้ผู้ใช้สามารถทำงานกับที่เก็บข้อมูลของตัวเองเท่านั้น

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

เพื่อความชัดเจนให้ไปที่เบราว์เซอร์ไปยังที่อยู่ http://ip-сервера-где-запущен-minio:9000/minio/

เราเห็นว่าเราเชื่อมต่อกับ Minio ภายใต้ MINIO_ACCESS_KEY=user1 ที่เก็บข้อมูล user1bucket พร้อมใช้งานสำหรับเรา

การตั้งค่า Minio เพื่อให้ผู้ใช้สามารถทำงานกับที่เก็บข้อมูลของตัวเองเท่านั้น

จะสร้างที่เก็บข้อมูลไม่ได้ เนื่องจากไม่มีการดำเนินการที่เกี่ยวข้องในนโยบาย

การตั้งค่า Minio เพื่อให้ผู้ใช้สามารถทำงานกับที่เก็บข้อมูลของตัวเองเท่านั้น

มาสร้างไฟล์ในที่เก็บข้อมูล user1bucket

การตั้งค่า Minio เพื่อให้ผู้ใช้สามารถทำงานกับที่เก็บข้อมูลของตัวเองเท่านั้น

มาเชื่อมต่อกับ Minio ภายใต้ MINIO_ACCESS_KEY=user2 ที่เก็บข้อมูล user2bucket พร้อมใช้งานสำหรับเรา

และเราไม่เห็นทั้ง user1bucket หรือไฟล์จาก user1bucket

การตั้งค่า Minio เพื่อให้ผู้ใช้สามารถทำงานกับที่เก็บข้อมูลของตัวเองเท่านั้น

สร้างแชท Telegram โดยใช้ Minio https://t.me/minio_s3_ru

ที่มา: will.com