Хэрэглэгч зөвхөн өөрийн хувингаар ажиллах боломжтой байхаар 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

/etc/minio/minio.conf дотор MINIO_ACCESS_KEY болон MINIO_SECRET_KEY-г үүсгэж, нэмнэ үү.

# 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=

Хэрэв та Minio-ээс өмнө nginx ашиглахгүй бол өөрчлөх хэрэгтэй.

--address 127.0.0.1:9000

тухай

--address 0.0.0.0:9000

Minio-г ажиллуулцгаая.

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": ""
    }
  ]
}

Нууц үг test1 ашиглан хэрэглэгч12345 үүсгэнэ үү.

minio-mc admin user add myminio user1 test12345

Нууц үг test2 ашиглан хэрэглэгч54321 үүсгэнэ үү.

minio-mc admin user add myminio user2 test54321

Бид Minio дээр user1-policy.json файлаас user1-policy нэртэй бодлогыг үүсгэдэг.

minio-mc admin policy add myminio user1-policy user1-policy.json

Бид Minio дээр user2-policy.json файлаас user2-policy нэртэй бодлогыг үүсгэдэг.

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-г тохируулах

Minio ашиглан Telegram чат үүсгэсэн https://t.me/minio_s3_ru

Эх сурвалж: www.habr.com