Minio-nun konfiqurasiyası istifadəçinin yalnız öz kovası ilə işləyə bilməsi üçün

Minio sadə, sürətli və AWS S3 uyğun obyekt mağazasıdır. Minio, fotoşəkillər, videolar, log faylları, ehtiyat nüsxələri kimi strukturlaşdırılmamış məlumatları yerləşdirmək üçün nəzərdə tutulmuşdur. minio həmçinin müxtəlif maşınlarda yerləşənlər də daxil olmaqla birdən çox diski bir obyekt saxlama serverinə qoşmaq imkanı verən paylanmış rejimi dəstəkləyir.

Bu yazının məqsədi minio qurmaqdır ki, hər bir istifadəçi yalnız öz vedrəsi ilə işləyə bilsin.

Ümumiyyətlə, Minio aşağıdakı hallar üçün uyğundur:

  • S3 girişi olan təhlükəsiz fayl sisteminin üstündə təkrarlanmayan yaddaş (NAS və SAN-da yerləşdirilmiş kiçik və orta yaddaş);
  • S3 üzərindən çıxışı olan etibarsız fayl sistemi üzərində təkrarlanmadan saxlama (inkişaf və sınaq üçün);
  • S3 protokolu ilə çıxışı olan bir rəkdə kiçik serverlər qrupunda replikasiya ilə saxlama (raka bərabər olan nasazlıq domeni ilə əvəzetmə yaddaşı).

RedHat sistemlərində biz qeyri-rəsmi Minio repozitoriyasını birləşdiririk.

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

Biz /etc/minio/minio.conf-da MINIO_ACCESS_KEY və MINIO_SECRET_KEY açarlarını yaradırıq və əlavə edirik.

# 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-dan əvvəl nginx-dən istifadə etməyəcəksinizsə, dəyişdirməlisiniz.

--address 127.0.0.1:9000

haqqında

--address 0.0.0.0:9000

Minio-ya başlayırıq.

systemctl start minio

Minio ilə myminio adlı bir əlaqə yaradırıq.

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

Bucket user1bucket yaradın.

minio-mc mb myminio/user1bucket

Bucket user2bucket yaradın.

minio-mc mb myminio/user2bucket

user1-policy.json siyasət faylı yaradın.

{
  "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 siyasət faylı yaradın.

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

parol test1 ilə istifadəçi user12345 yaradın.

minio-mc admin user add myminio user1 test12345

parol test2 ilə istifadəçi user54321 yaradın.

minio-mc admin user add myminio user2 test54321

Minio-da user1-policy.json faylından user1-policy adlı siyasət yaradın.

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

Minio-da user2-policy.json faylından user2-policy adlı siyasət yaradın.

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

İstifadəçi1 siyasətini istifadəçi istifadəçiyə tətbiq edirik.

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

İstifadəçi2 siyasətini istifadəçi istifadəçiyə tətbiq edirik.

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

Siyasətlərin istifadəçilərlə əlaqəsinin yoxlanılması

minio-mc admin user list myminio

Siyasətlərin istifadəçilərlə əlaqəsini yoxlamaq bu kimi bir şey olacaq

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Aydınlıq üçün ünvandakı brauzerdən keçirik http://ip-сервера-где-запущен-minio:9000/minio/

MINIO_ACCESS_KEY=user1 altında Minio-ya qoşulduğumuzu görürük. Bucket user1bucket bizim üçün mövcuddur.

Minio-nun konfiqurasiyası istifadəçinin yalnız öz kovası ilə işləyə bilməsi üçün

Siyasətdə müvafiq Fəaliyyət olmadığı üçün vedrə yaratmaq işləməyəcək.

Minio-nun konfiqurasiyası istifadəçinin yalnız öz kovası ilə işləyə bilməsi üçün

Bucket user1bucket-də fayl yaradaq.

Minio-nun konfiqurasiyası istifadəçinin yalnız öz kovası ilə işləyə bilməsi üçün

MINIO_ACCESS_KEY=user2 altında Minio-ya qoşulun. Bucket user2bucket bizim üçün mövcuddur.

Biz nə user1bucket, nə də user1bucket-dən faylları görmürük.

Minio-nun konfiqurasiyası istifadəçinin yalnız öz kovası ilə işləyə bilməsi üçün

Minio tərəfindən Telegram çatı yaradılmışdır https://t.me/minio_s3_ru

Mənbə: www.habr.com