Konfiguriranje Minia tako da korisnik može raditi samo sa svojim vlastitim kantom

Minio je jednostavna, brza, AWS S3 kompatibilna trgovina objekata. Minio je dizajniran za smještaj nestrukturiranih podataka kao što su fotografije, video zapisi, datoteke evidencije, sigurnosne kopije. minio takođe podržava distribuirani režim, koji pruža mogućnost povezivanja više diskova na jedan server za skladištenje objekata, uključujući i one koji se nalaze na različitim mašinama.

Svrha ovog posta je konfigurirati minio tako da svaki korisnik može raditi samo sa svojim vlastitim kantom.

Generalno, Minio je pogodan za sljedeće slučajeve:

  • skladište bez replikacije na vrhu pouzdanog sistema datoteka sa pristupom preko S3 (mala i srednja memorija hostovana na NAS-u i SAN-u);
  • nereplicirano skladište na vrhu nepouzdanog sistema datoteka sa S3 pristupom (za razvoj i testiranje);
  • skladište sa replikacijom na maloj grupi servera u jednom rek-u sa pristupom preko S3 protokola (failover skladište sa domenom greške jednakom rack-u).

Na RedHat sistemima povezujemo nezvanično Minio spremište.

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

Generirajte i dodajte MINIO_ACCESS_KEY i MINIO_SECRET_KEY u /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=

Ako nećete koristiti nginx prije Minia, onda morate promijeniti.

--address 127.0.0.1:9000

na

--address 0.0.0.0:9000

Pokrenimo Minio.

systemctl start minio

Kreiramo vezu sa Miniom pod nazivom myminio.

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

Kreirajte kantu user1bucket.

minio-mc mb myminio/user1bucket

Kreirajte kantu user2bucket.

minio-mc mb myminio/user2bucket

Kreirajte datoteku politike 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": ""
    }
  ]
}

Kreirajte datoteku politike 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": ""
    }
  ]
}

Kreirajte korisnika user1 sa lozinkom test12345.

minio-mc admin user add myminio user1 test12345

Kreirajte korisnika user2 sa lozinkom test54321.

minio-mc admin user add myminio user2 test54321

Kreiramo politiku u Miniu pod nazivom user1-policy iz datoteke user1-policy.json.

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

Kreiramo politiku u Miniu pod nazivom user2-policy iz datoteke user2-policy.json.

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

Primijenite politiku user1 na korisnika user1.

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

Primijenite politiku user2 na korisnika user2.

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

Provjera povezanosti politika sa korisnicima

minio-mc admin user list myminio

Provjera povezanosti politika sa korisnicima izgledat će otprilike ovako

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Radi jasnoće idite kroz pretraživač na adresu http://ip-сервера-где-запущен-minio:9000/minio/

Vidimo da smo se povezali na Minio pod MINIO_ACCESS_KEY=user1. Dostupna nam je korpa user1bucket.

Konfiguriranje Minia tako da korisnik može raditi samo sa svojim vlastitim kantom

Neće biti moguće kreirati kantu jer u politici ne postoji odgovarajuća radnja.

Konfiguriranje Minia tako da korisnik može raditi samo sa svojim vlastitim kantom

Kreirajmo datoteku u kantu user1bucket.

Konfiguriranje Minia tako da korisnik može raditi samo sa svojim vlastitim kantom

Povežimo se na Minio pod MINIO_ACCESS_KEY=user2. Dostupna nam je korpa user2bucket.

I ne vidimo ni user1bucket ni fajlove iz user1bucket.

Konfiguriranje Minia tako da korisnik može raditi samo sa svojim vlastitim kantom

Kreirali ste Telegram chat koristeći Minio https://t.me/minio_s3_ru

izvor: www.habr.com