Konfiguroni Minio, në mënyrë që përdoruesi të mund të punojë vetëm me bucket-in e tij

Minio është një ruajtje objektesh e thjeshtë, e shpejtë dhe e përputhshme me AWS S3. Minio është krijuar për të ruajtur të dhëna jo-strukturore si fotografi, video, skedarë logu dhe kopje rezervë. Në Minio mbështetet gjithashtu moda e shpërndarë (distributed mode), e cila ofron mundësinë për t'u lidhur me një server ruajtjeje objektesh me shumë disqe, përfshirë edhe ato që ndodhen në makina të ndryshme.

Qëllimi i këtij postimi është të konfigurojë Minio në mënyrë që çdo përdorues të mund të punojë vetëm me bucket-in e tij.

Në përgjithësi, Minio është i përshtatshëm për rastet e mëposhtme:

  • ruajtje pa replikim mbi një sistem skedari të besueshëm me qasje përmes S3 (ruajtje të vogla dhe mesatare, të vendosura në NAS dhe SAN);
  • ruajtje pa replikim mbi një sistem skedari të pabesueshëm me qasje përmes S3 (për zhvillim dhe testim);
  • ruajtje me replikim në një grup të vogël serverash në një raft me qasje përmes protokollit S3 (ruajtje e qëndrueshme me domenin e pranimit të dështimeve të barabarta me rafte).

Në sistemet RedHat, lidhim repositorin jo-official të Minio.

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

Gjenerojmë dhe shtojmë në MINIO_ACCESS_KEY dhe MINIO_SECRET_KEY në /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=

Nëse nuk do të përdorni nginx përpara Minio, duhet të ndryshoni.

--address 127.0.0.1:9000

në

--address 0.0.0.0:9000

Nisemi Minio.

systemctl start minio

Krijojmë një lidhje me Minio me emrin myminio.

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

Krijojmë një bucket me emrin user1bucket.

minio-mc mb myminio/user1bucket

Krijojmë një bucket me emrin user2bucket.

minio-mc mb myminio/user2bucket

Krijojmë një skedar politike me emrin 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": ""
    }
  ]
}

Krijojmë një skedar politik me emrin 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": ""
    }
  ]
}

Krijojmë një përdorues me emrin user1 dhe fjalëkalimin test12345.

minio-mc admin user add myminio user1 test12345

Krijojmë përdoruesin user2 me fjalëkalimin test54321.

minio-mc admin user add myminio user2 test54321

Krijojmë një politikë në Minio me emrin user1-policy nga përmbajtja e skedarit user1-policy.json.

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

Krijojmë një politikë në Minio me emrin user2-policy nga përmbajtja e skedarit user2-policy.json.

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

E aplikojmë politikën user1-policy në përdoruesin user1.

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

E aplikojmë politikën user2-policy në përdoruesin user2.

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

Kontrollojmë lidhjen e politikave me përdoruesit.

minio-mc admin user list myminio

Kontrollimi i lidhjes së politikave me përdoruesit do të duket më ose më pak në këtë mënyrë.

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Për të qenë më i qartë, hapim nëpërmjet shfletuesit në adresën http://ip-serverit-ku-është-në-funksion-minio:9000/minio/

Shohim që jemi lidhur me Minio me MINIO_ACCESS_KEY=user1. Për ne është i disponueshëm bucket user1bucket.

Konfiguroni Minio, në mënyrë që përdoruesi të mund të punojë vetëm me bucket-in e tij

Nuk do të mund të krijojmë një bucket, sepse nuk ka përveç 'Action' në politikë.

Konfiguroni Minio, në mënyrë që përdoruesi të mund të punojë vetëm me bucket-in e tij

Do të krijojmë një skedare në bucket user1bucket.

Konfiguroni Minio, në mënyrë që përdoruesi të mund të punojë vetëm me bucket-in e tij

Do të lidhemi me Minio me MINIO_ACCESS_KEY=user2. Për ne është i disponueshëm bucket user2bucket.

Dhe nuk shohim as user1bucket as skedarët nga user1bucket.

Konfiguroni Minio, në mënyrë që përdoruesi të mund të punojë vetëm me bucket-in e tij

Krijova një bisedë Telegram për Minio. https://t.me/minio_s3_ru

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster