Minio-ni foydalanuvchi faqat o'z chelak bilan ishlashi uchun sozlash

Minio oddiy, tezkor, AWS S3 mos ob'ektlar do'koni. Minio fotosuratlar, videolar, jurnal fayllari, zaxira nusxalari kabi tuzilmagan ma'lumotlarni joylashtirish uchun mo'ljallangan. minio shuningdek, bir nechta disklarni bitta ob'ektni saqlash serveriga, shu jumladan turli mashinalarda joylashganlarga ulash imkoniyatini beruvchi taqsimlangan rejimni qo'llab-quvvatlaydi.

Ushbu postning maqsadi minio-ni har bir foydalanuvchi faqat o'z chelak bilan ishlashi uchun sozlashdir.

Umuman olganda, Minio quyidagi holatlar uchun javob beradi:

  • S3 (NAS va SAN-da joylashgan kichik va o'rta saqlash) orqali kirish imkoniyatiga ega ishonchli fayl tizimining tepasida takrorlanmaydigan saqlash;
  • S3 ruxsatiga ega ishonchsiz fayl tizimining tepasida takrorlanmagan saqlash (ishlab chiqish va sinov uchun);
  • S3 protokoli orqali kirish imkoniyatiga ega bo'lgan bitta rafdagi kichik serverlar guruhida replikatsiya bilan saqlash (rakka teng bo'lgan nosozlik domeniga ega bo'lmagan saqlash).

RedHat tizimlarida biz norasmiy Minio omborini ulaymiz.

yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc

MINIO_ACCESS_KEY va MINIO_SECRET_KEY kalitlarini /etc/minio/minio.conf-da yarating va qo'shing.

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

Agar siz Minio-dan oldin nginx-dan foydalanmasangiz, uni o'zgartirishingiz kerak.

--address 127.0.0.1:9000

haqida

--address 0.0.0.0:9000

Minio-ni ishga tushiramiz.

systemctl start minio

Biz Minio bilan myminio deb nomlangan ulanishni yaratamiz.

minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY 
MINIO_SECRET_KEY

user1bucket paqir yarating.

minio-mc mb myminio/user1bucket

user2bucket paqir yarating.

minio-mc mb myminio/user2bucket

user1-policy.json siyosat faylini yarating.

{
  "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 siyosat faylini yarating.

{
  "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 paroli bilan foydalanuvchi12345 yarating.

minio-mc admin user add myminio user1 test12345

test2 paroli bilan foydalanuvchi54321 yarating.

minio-mc admin user add myminio user2 test54321

Biz Minio'da user1-policy.json faylidan user1-policy deb nomlangan siyosat yaratamiz.

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

Biz Minio'da user2-policy.json faylidan user2-policy deb nomlangan siyosat yaratamiz.

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

user1 siyosatini foydalanuvchi user1ga qo'llang.

minio-mc admin policy set myminio user1-policy user=user1

user2 siyosatini foydalanuvchi user2ga qo'llang.

minio-mc admin policy set myminio user2-policy user=user2

Siyosatlarning foydalanuvchilarga ulanishini tekshirish

minio-mc admin user list myminio

Siyosatlarning foydalanuvchilarga ulanishini tekshirish shunday ko'rinadi

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Aniqlik uchun brauzer orqali manzilga o'ting http://ip-сСрвСра-Π³Π΄Π΅-Π·Π°ΠΏΡƒΡ‰Π΅Π½-minio:9000/minio/

Biz Minio-ga MINIO_ACCESS_KEY=user1 ostida ulanganimizni ko'ramiz. user1bucket paqir bizda mavjud.

Minio-ni foydalanuvchi faqat o'z chelak bilan ishlashi uchun sozlash

Chelak yaratish mumkin bo'lmaydi, chunki siyosatda tegishli harakat yo'q.

Minio-ni foydalanuvchi faqat o'z chelak bilan ishlashi uchun sozlash

User1bucket paqirida fayl yarataylik.

Minio-ni foydalanuvchi faqat o'z chelak bilan ishlashi uchun sozlash

MINIO_ACCESS_KEY=user2 ostida Minio-ga ulanamiz. user2bucket paqir bizda mavjud.

Biz na user1bucket-ni, na user1bucket-dan fayllarni ko'rmayapmiz.

Minio-ni foydalanuvchi faqat o'z chelak bilan ishlashi uchun sozlash

Minio yordamida Telegram chatini yaratdi https://t.me/minio_s3_ru

Manba: www.habr.com