A Minio beállítása, hogy a felhasználó csak a saját bucket-jével dolgozhasson

A Minio egy egyszerű, gyors és az AWS S3-mal kompatibilis objektumtároló. A Minio-t strukturálatlan adatok, például fényképek, videofelvételek, naplófájlok, biztonsági másolatok tárolására tervezték. A minio-ban elérhető a elosztott mód (distributed mode) is, amely lehetővé teszi, hogy egy objektumtároló szerverhez több lemez csatlakozzon, akár különböző gépeken is.

Ennek a bejegyzésnek a célja a minio beállítása, hogy minden felhasználó csak a saját tárolójával dolgozhasson.

Általánosságban a Minio a következő esetekhez alkalmas:

  • tárolás replikáció nélkül megbízható fájlrendszer felett S3 hozzáféréssel (kis és közepes tárolók, NAS és SAN elhelyezés esetén);
  • tárolás replikáció nélkül megbízhatatlan fájlrendszer felett S3 hozzáféréssel (fejlesztéshez és teszteléshez);
  • tárolás replikációval egy kis kiszolgálócsoportban egy állványba S3 protokollal (hibaelhárításra alkalmas tárolás, ahol a leállási tartomány az állvány).

RedHat rendszereken csatlakozzunk a Minio nem hivatalos tárolójához.

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

Generáljuk és adjuk hozzá a MINIO_ACCESS_KEY-t és a MINIO_SECRET_KEY-t a /etc/minio/minio.conf fájlhoz.

# 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=

Ha nem használ nginx-et a Minio előtt, akkor módosítani kell.

--address 127.0.0.1:9000

Gyorsan emlékezzünk vissza, hogyan működik a moduláris aritmetika. Az óra már egy ismert koncepció. Az órák használata

--address 0.0.0.0:9000

Futtassuk a Minio-t.

systemctl start minio

Készítsünk kapcsolatot a Minio-hoz myminio néven.

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

Hozzuk létre a user1bucket nevű tárolót.

minio-mc mb myminio/user1bucket

Hozzuk létre a user2bucket nevű tárolót.

minio-mc mb myminio/user2bucket

Hozzuk létre a user1-policy.json fájt.

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

Hozzuk létre a user2-policy.json fájt.

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

Hozzuk létre a user1 felhasználót a test12345 jelszóval.

minio-mc admin user add myminio user1 test12345

Létrehozzuk a felhasználót user2 teszt54321 jelszóval.

minio-mc admin user add myminio user2 teszt54321

Létrehozzuk a politikát a Minio-ban user1-policy néven a user1-policy.json fájlból.

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

Létrehozzuk a politikát a Minio-ban user2-policy néven a user2-policy.json fájlból.

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

Alkalmazzuk a user1-policy politikát az user1 felhasználóra.

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

Alkalmazzuk a user2-policy politikát az user2 felhasználóra.

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

Ellenőrizzük, hogy a politikák kapcsolódnak a felhasználókhoz

minio-mc admin user list myminio

A politikák felhasználókhoz való kapcsolódásának ellenőrzése körülbelül így fog kinézni

enabled    user1                 user1-policy
enabled    user2                 user2-policy

A világosság kedvéért belépünk a böngészőn keresztül a következő címen http://ip-szerver-amin-minio-fut:9000/minio/

Látjuk, hogy a Miniohoz csatlakoztunk a MINIO_ACCESS_KEY=user1 felhasználónévvel. Számunkra elérhető a user1bucket tároló.

A Minio beállítása, hogy a felhasználó csak a saját bucket-jével dolgozhasson

Bucket létrehozására nem lesz lehetőség, mivel a politikában nincs megfelelő Action.

A Minio beállítása, hogy a felhasználó csak a saját bucket-jével dolgozhasson

Hozzunk létre egy fájlt a user1bucket tárolóban.

A Minio beállítása, hogy a felhasználó csak a saját bucket-jével dolgozhasson

Csatlakozunk a Miniohoz a MINIO_ACCESS_KEY=user2 felhasználónévvel. Számunkra elérhető a user2bucket tároló.

És nem látunk se user1bucket-et, se fájlokat a user1bucket-ből.

A Minio beállítása, hogy a felhasználó csak a saját bucket-jével dolgozhasson

Létrehoztam egy Telegram csoportot a Minio számára. https://t.me/minio_s3_ru

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster