Minio کو ترتیب دینا تاکہ صارف صرف اپنی بالٹی سے کام کر سکے۔

Minio ایک سادہ، تیز، AWS S3 ہم آہنگ آبجیکٹ اسٹور ہے۔ Minio کو غیر ساختہ ڈیٹا جیسے کہ تصاویر، ویڈیوز، لاگ فائلز، بیک اپس کی میزبانی کے لیے ڈیزائن کیا گیا ہے۔ minio ڈسٹری بیوٹڈ موڈ کو بھی سپورٹ کرتا ہے، جو متعدد ڈسکوں کو ایک آبجیکٹ اسٹوریج سرور سے جوڑنے کی صلاحیت فراہم کرتا ہے، بشمول مختلف مشینوں پر موجود۔

اس پوسٹ کا مقصد minio کو ترتیب دینا ہے تاکہ ہر صارف صرف اپنی بالٹی سے کام کر سکے۔

عام طور پر، Minio مندرجہ ذیل صورتوں کے لیے موزوں ہے:

  • S3 کے ذریعے رسائی کے ساتھ ایک قابل بھروسہ فائل سسٹم کے اوپر غیر نقل کا ذخیرہ (NAS اور SAN پر میزبانی کی گئی چھوٹی اور درمیانی اسٹوریج)؛
  • S3 رسائی (ترقی اور جانچ کے لیے) کے ساتھ غیر معتبر فائل سسٹم کے اوپر غیر نقل شدہ اسٹوریج؛
  • S3 پروٹوکول کے ذریعے رسائی کے ساتھ ایک ریک میں سرورز کے ایک چھوٹے گروپ پر نقل کے ساتھ اسٹوریج (ریک کے برابر ناکامی والے ڈومین کے ساتھ فیل اوور اسٹوریج)۔

RedHat سسٹمز پر ہم غیر سرکاری Minio repository کو جوڑتے ہیں۔

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

پاس ورڈ ٹیسٹ 1 کے ساتھ صارف صارف 12345 بنائیں۔

minio-mc admin user add myminio user1 test12345

پاس ورڈ ٹیسٹ 2 کے ساتھ صارف صارف 54321 بنائیں۔

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

یوزر 1 کی پالیسی کو صارف user1 پر لاگو کریں۔

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

یوزر 2 کی پالیسی کو صارف 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_ACCESS_KEY=user1 کے تحت Minio سے منسلک ہیں۔ user1bucket بالٹی ہمارے لیے دستیاب ہے۔

Minio کو ترتیب دینا تاکہ صارف صرف اپنی بالٹی سے کام کر سکے۔

بالٹی بنانا ممکن نہیں ہوگا، کیونکہ پالیسی میں کوئی متعلقہ کارروائی نہیں ہے۔

Minio کو ترتیب دینا تاکہ صارف صرف اپنی بالٹی سے کام کر سکے۔

آئیے بالٹی user1bucket میں ایک فائل بناتے ہیں۔

Minio کو ترتیب دینا تاکہ صارف صرف اپنی بالٹی سے کام کر سکے۔

آئیے MINIO_ACCESS_KEY=user2 کے تحت Minio سے جڑیں۔ user2bucket بالٹی ہمارے لیے دستیاب ہے۔

اور ہمیں صارف1بکٹ یا user1bucket سے فائلیں نظر نہیں آتیں۔

Minio کو ترتیب دینا تاکہ صارف صرف اپنی بالٹی سے کام کر سکے۔

Minio کا استعمال کرتے ہوئے ایک ٹیلیگرام چیٹ بنایا https://t.me/minio_s3_ru

ماخذ: www.habr.com