Minio ynstelle sadat de brûker allinnich mei syn eigen bak wurkje kin

Minio is in ienfâldige, rappe, AWS S3-kompatibele objektwinkel. Minio is ûntworpen om net-strukturearre gegevens te hostjen lykas foto's, fideo's, logbestannen, backups. minio stipet ek ferdielde modus, dy't de mooglikheid biedt om meardere skiven te ferbinen oan ien objektopslachtsjinner, ynklusyf dy op ferskate masines.

It doel fan dizze post is om minio te konfigurearjen sadat elke brûker allinich mei syn eigen bak kin wurkje.

Yn 't algemien is Minio geskikt foar de folgjende gefallen:

  • net-replikaasje opslach boppe op in betrouber bestânsysteem mei tagong fia S3 (lytse en middelgrutte opslach hosted op NAS en SAN);
  • net-replikearre opslach boppe op in ûnbetrouber bestânsysteem mei S3-tagong (foar ûntwikkeling en testen);
  • opslach mei replikaasje op in lytse groep servers yn ien rack mei tagong fia it S3 protokol (failover opslach mei in mislearre domein lyk oan it rack).

Op RedHat-systemen ferbine wy ​​it net-offisjele Minio-repository.

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

Generearje en tafoegje oan MINIO_ACCESS_KEY en MINIO_SECRET_KEY yn /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=

As jo ​​nginx net brûke foardat Minio, dan moatte jo feroarje.

--address 127.0.0.1:9000

op

--address 0.0.0.0:9000

Litte wy Minio lansearje.

systemctl start minio

Wy meitsje in ferbining mei Minio neamd myminio.

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

Meitsje in bucket user1bucket.

minio-mc mb myminio/user1bucket

Meitsje in bucket user2bucket.

minio-mc mb myminio/user2bucket

Meitsje in beliedsbestân 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": ""
    }
  ]
}

Meitsje in beliedsbestân 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": ""
    }
  ]
}

Meitsje in brûker brûker1 mei it wachtwurd test12345.

minio-mc admin user add myminio user1 test12345

Meitsje in brûker brûker2 mei it wachtwurd test54321.

minio-mc admin user add myminio user2 test54321

Wy meitsje in belied yn Minio neamd user1-policy út it bestân user1-policy.json.

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

Wy meitsje in belied yn Minio neamd user2-policy út it bestân user2-policy.json.

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

Tapasse it belied fan brûker1 op de brûker brûker1.

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

Tapasse it belied fan brûker2 op de brûker brûker2.

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

Kontrolearje de ferbining fan belied oan brûkers

minio-mc admin user list myminio

It kontrolearjen fan de ferbining fan belied mei brûkers sil der sa útsjen

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Foar dúdlikens, gean troch de browser nei it adres http://ip-сервера-где-запущен-minio:9000/minio/

Wy sjogge dat wy ferbûn binne mei Minio ûnder MINIO_ACCESS_KEY = brûker1. De user1bucket-emmer is foar ús beskikber.

Minio ynstelle sadat de brûker allinnich mei syn eigen bak wurkje kin

It sil net mooglik wêze om in bak te meitsjen, om't d'r gjin oerienkommende Aksje yn it belied is.

Minio ynstelle sadat de brûker allinnich mei syn eigen bak wurkje kin

Litte wy in bestân oanmeitsje yn 'e bucket user1bucket.

Minio ynstelle sadat de brûker allinnich mei syn eigen bak wurkje kin

Litte wy ferbine mei Minio ûnder MINIO_ACCESS_KEY=brûker2. De user2bucket-emmer is foar ús beskikber.

En wy sjogge gjin user1bucket of bestannen fan user1bucket.

Minio ynstelle sadat de brûker allinnich mei syn eigen bak wurkje kin

In Telegram-petear makke mei Minio https://t.me/minio_s3_ru

Boarne: www.habr.com