Minio seadistamine, et kasutaja saaks töötada ainult oma bucketiga

Minio on lihtne, kiire ja AWS S3-ga ühilduv objektide salvestus. Minio on loodud struktureerimata andmete, näiteks fotode, videote, logifailide ja varukoopiate salvestamiseks. Minio toetab ka jaotatud režiimi (distributed mode), mis võimaldab ühe objektide salvestamise serveriga ühendada mitmeid kettaid, sealhulgas erinevates masinates.

Selle postituse eesmärk on seadistada Minio nii, et iga kasutaja saaks töötada ainult oma bucketiga.

Üldiselt sobib Minio järgmisteks juhtumiteks:

  • salvestus, millel ei ole replikatsiooni usaldusväärse failisüsteemi peal S3 juurdepääsuga (väikesed ja keskmised salvestused, mis on paigutatud NAS-i ja SAN-i);
  • salvestus, millel ei ole replikatsiooni usaldusväärse failisüsteemi peal S3 juurdepääsuga (arendamiseks ja testimiseks);
  • salvestus replikatsiooniga väikese grupi serverite peal ühes rackis S3 protokolli juurdepääsuga (vigasuskindel salvestus, mille katkestamise domeen on racki tasemel).

RedHat süsteemides ühendame mitteametliku Minio hoidla.

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

Genereerime ja lisame MINIO_ACCESS_KEY ja MINIO_SECRET_KEY faili /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=

Kui te ei kasuta nginx'i enne Minio'd, peab see olema muudetud.

--address 127.0.0.1:9000

järgnevaga

--address 0.0.0.0:9000

Käivitame Minio.

systemctl start minio

Loome Minio ühenduse nimega myminio.

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

Loome bucket'i user1bucket.

minio-mc mb myminio/user1bucket

Loome bucket'i user2bucket.

minio-mc mb myminio/user2bucket

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

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

Loome kasutaja user1 parooliga test12345.

minio-mc admin user add myminio user1 test12345

Loome kasutaja user2 parooliga test54321.

minio-mc admin user add myminio user2 test54321

Loome Minio-s poliitika nimega user1-policy failist user1-policy.json.

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

Loome Minio-s poliitika nimega user2-policy failist user2-policy.json.

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

Rakendame poliitika user1-policy kasutajale user1.

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

Rakendame poliitika user2-policy kasutajale user2.

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

Kontrollime poliitikate rakendamist kasutajatele

minio-mc admin user list myminio

Poliitikate rakendamise kontrollimine kasutajatele näeb välja umbes selline

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Kergesti nähtavuse saavutamiseks siseneme brauseriga aadressile http://ip-serveeri-aadress-kus-minio-on-jooksutatud:9000/minio/

Näeme, et oleme Minio'sse подключitud MINIO_ACCESS_KEY=user1 all. Meile on saadaval bucket user1bucket.

Minio seadistamine, et kasutaja saaks töötada ainult oma bucketiga

Bucket'i loomine ei õnnestu, kuna vastavat Action politses ei ole.

Minio seadistamine, et kasutaja saaks töötada ainult oma bucketiga

Loome faili bucket'is user1bucket.

Minio seadistamine, et kasutaja saaks töötada ainult oma bucketiga

Ühendame Minio'sse MINIO_ACCESS_KEY=user2 all. Meile on saadaval bucket user2bucket.

Ja me ei näe ei user1bucket'i ega faile user1bucket'ist.

Minio seadistamine, et kasutaja saaks töötada ainult oma bucketiga

Loomin Telegrami chati Minio kohta https://t.me/minio_s3_ru

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster