إعداد 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

قم بتشغيل 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

bucket 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-policy user1.


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

user2-policy 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. bucket user1bucket.



bucket , Action .



إنشاء ملف في دلو user1bucket.



الاتصال بـ Minio ضمن MINIO_ACCESS_KEY = user2. دلو user2bucket متاح لنا.


ولا نرى ملفات user1bucket ولا ملفات user1bucket.



تم إنشاء دردشة Telegram على Minio https://t.me/minio_s3_en


All Articles