Minio seadistamine, et kasutaja saaks töötada ainult enda bucket'iga

Minio on lihtne, kiire ja AWS S3-ga ühilduv objektihoidla lahendus. Minio on loodud mitte-struktureeritud andmete, nagu fotod, videod, logifailid ja varukoopiad, salvestamiseks. Minio toetab ka jaotatud režiimi (distributed mode), mis võimaldab ühendada ühe objektihoidla serveri mitmeid kettaid, sealhulgas erinevatesse masinatesse.

Selle postituse eesmärk on seadistada Minio nõnda, et iga kasutaja saaks töötada ainult enda bucket'iga.

Üldiselt sobib Minio järgmiste juhtumite jaoks:

  • hoidla ilma replikatsioonita usaldusväärse failisüsteemi peal, mis toetab S3-iga ligipääsu (väiksed ja keskmised hoidlad, mis on paigutatud NAS-i ja SAN-i);
  • hoidla ilma replikatsioonita usaldusväärse failisüsteemi peal, mis toetab S3-iga ligipääsu (arendamiseks ja testimiseks);
  • hoidla replikatsiooniga väikeses grupis serverites ühes rack'is, mis toetab S3-protokolli (katkestustaluv hoidla, mille katkestused on tasemel rack).

RedHat süsteemides ühendame mitteformaalset Minio repot.

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 failisse /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't, siis tuleb muuta.

--address 127.0.0.1:9000

. Tundub, et

--address 0.0.0.0:9000

Käivitame Minio.

systemctl start minio

Loome ühenduse Minio'ga 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.

{
  "Versioon": "2012-10-17",
  "Astatement": [
    {
      "Tegevus": [
        "s3:PutBucketPolicy",
        "s3:GetBucketPolicy",
        "s3:DeleteBucketPolicy",
        "s3:ListAllMyBuckets",
        "s3:ListBucket"
      ],
      "Mõju": "Luba",
      "Ressurss": [
        "arn:aws:s3:::user2bucket"
      ],
      "Sid": ""
    },
    {
      "Tegevus": [
        "s3:AbortMultipartUpload",
        "s3:DeleteObject",
        "s3:GetObject",
        "s3:ListMultipartUploadParts",
        "s3:PutObject"
      ],
      "Mõju": "Luba",
      "Ressurss": [
        "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

Kohaldame poliitika user1-policy kasutajale user1.

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

Kohaldame poliitika user2-policy kasutajale user2.

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

Kontrollime poliitikate rakendust kasutajatele.

minio-mc admin user list myminio

Poliitikate rakendamise kontrollimisel võiks olla selline väljund.

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Selguse huvides logime sisse brauseri kaudu aadressil http://ip-serveri-kus-minio-on-käivitunud:9000/minio/

Näeme, et oleme sisse loginud Miniosse MINIO_ACCESS_KEY=user1 alla. Meile on saadaval bucket user1bucket.

Minio seadistamine, et kasutaja saaks töötada ainult enda bucket'iga

Bucketi loomine ei õnnestu, kuna poliitikas puudub vastav tegevus.

Minio seadistamine, et kasutaja saaks töötada ainult enda bucket'iga

Loome faili bucketis user1bucket.

Minio seadistamine, et kasutaja saaks töötada ainult enda bucket'iga

Logime sisse Miniosse MINIO_ACCESS_KEY=user2 alla. Meile on saadaval bucket user2bucket.

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

Minio seadistamine, et kasutaja saaks töötada ainult enda bucket'iga

Looming Minio jaoks Telegrami vestlus. https://t.me/minio_s3_ru

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster