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

Ստեղծեք դույլ 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՝ test12345 գաղտնաբառով:

minio-mc admin user add myminio user1 test12345

Ստեղծեք օգտվողի օգտվող2՝ 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-ի ներքո: Մեզ հասանելի է user1bucket դույլը:

Minio-ի կարգավորումն այնպես, որ օգտատերը կարողանա աշխատել միայն իր սեփական դույլով

Դույլ ստեղծել հնարավոր չի լինի, քանի որ քաղաքականության մեջ համապատասխան Գործողություն չկա։

Minio-ի կարգավորումն այնպես, որ օգտատերը կարողանա աշխատել միայն իր սեփական դույլով

Եկեք ստեղծենք ֆայլ bucket user1bucket-ում:

Minio-ի կարգավորումն այնպես, որ օգտատերը կարողանա աշխատել միայն իր սեփական դույլով

Եկեք միանանք Minio-ին MINIO_ACCESS_KEY=user2-ի ներքո: Մեզ հասանելի է user2bucket դույլը:

Եվ մենք չենք տեսնում ոչ user1bucket, ոչ էլ ֆայլեր user1bucket-ից:

Minio-ի կարգավորումն այնպես, որ օգտատերը կարողանա աշխատել միայն իր սեփական դույլով

Minio-ի միջոցով ստեղծեց Telegram զրույց https://t.me/minio_s3_ru

Source: www.habr.com