Nastavitev Minia tako, da lahko uporabnik dela le s svojim lastnim vedrom

Minio je preprosta, hitra, združljiva shramba predmetov AWS S3. Minio je zasnovan za gostovanje nestrukturiranih podatkov, kot so fotografije, videoposnetki, dnevniške datoteke, varnostne kopije. minio podpira tudi porazdeljeni način, ki omogoča povezovanje več diskov na en strežnik za shranjevanje objektov, vključno s tistimi, ki se nahajajo na različnih strojih.

Namen te objave je konfigurirati minio tako, da lahko vsak uporabnik dela samo s svojim vedrom.

Na splošno je Minio primeren za naslednje primere:

  • shranjevanje brez podvajanja na vrhu zanesljivega datotečnega sistema z dostopom prek S3 (majhno in srednje veliko shranjevanje, ki gostuje na NAS in SAN);
  • nepodvojeno shranjevanje na vrhu nezanesljivega datotečnega sistema z dostopom S3 (za razvoj in testiranje);
  • shranjevanje z replikacijo na manjši skupini strežnikov v enem racku z dostopom preko protokola S3 (failover storage with failure domain equal to rack).

Na sisteme RedHat priklopimo neuradni repozitorij Minio.

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

Ustvarite in dodajte MINIO_ACCESS_KEY in MINIO_SECRET_KEY v /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=

Če ne boste uporabljali nginx pred Miniom, potem morate spremeniti.

--address 127.0.0.1:9000

o

--address 0.0.0.0:9000

Zaženimo Minio.

systemctl start minio

Ustvarimo povezavo z Minio, imenovano myminio.

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

Ustvarite vedro user1bucket.

minio-mc mb myminio/user1bucket

Ustvarite vedro user2bucket.

minio-mc mb myminio/user2bucket

Ustvarite datoteko pravilnika 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": ""
    }
  ]
}

Ustvarite datoteko pravilnika 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": ""
    }
  ]
}

Ustvarite uporabnika user1 z geslom test12345.

minio-mc admin user add myminio user1 test12345

Ustvarite uporabnika user2 z geslom test54321.

minio-mc admin user add myminio user2 test54321

V Miniu ustvarimo pravilnik z imenom user1-policy iz datoteke user1-policy.json.

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

V Miniu ustvarimo pravilnik z imenom user2-policy iz datoteke user2-policy.json.

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

Uporabite pravilnik user1-policy za uporabnika user1.

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

Uporabite pravilnik user2-policy za uporabnika user2.

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

Preverjanje povezave pravilnikov z uporabniki

minio-mc admin user list myminio

Preverjanje povezave pravilnikov z uporabniki bo videti nekako takole

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Zaradi jasnosti pojdite skozi brskalnik do naslova http://ip-сервера-где-запущен-minio:9000/minio/

Vidimo, da smo se povezali z Miniom pod MINIO_ACCESS_KEY=user1. Na voljo nam je vedro user1bucket.

Nastavitev Minia tako, da lahko uporabnik dela le s svojim lastnim vedrom

Vedra ne bo mogoče ustvariti, ker v pravilniku ni ustreznega dejanja.

Nastavitev Minia tako, da lahko uporabnik dela le s svojim lastnim vedrom

Ustvarimo datoteko v vedru user1bucket.

Nastavitev Minia tako, da lahko uporabnik dela le s svojim lastnim vedrom

Povežimo se z Miniom pod MINIO_ACCESS_KEY=user2. Na voljo nam je vedro user2bucket.

In ne vidimo niti user1bucket niti datotek iz user1bucket.

Nastavitev Minia tako, da lahko uporabnik dela le s svojim lastnim vedrom

Ustvaril klepet Telegram z uporabo Minia https://t.me/minio_s3_ru

Vir: www.habr.com