ΠŸΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Minio Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ корисникот ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само со сопствСната ΠΊΠΎΡ„Π°

Minio Π΅ Сдноставна, Π±Ρ€Π·Π°, ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½Π° со AWS S3 ΠΏΡ€ΠΎΠ΄Π°Π²Π½ΠΈΡ†Π° Π·Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ. Minio Π΅ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ Π΄Π° хостира нСструктурирани ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, Π²ΠΈΠ΄Π΅Π°, Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ. Minio ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΠΈ дистрибуиран Ρ€Π΅ΠΆΠΈΠΌ, кој ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° моТност Π·Π° ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° повСќС дискови Π½Π° Π΅Π΄Π΅Π½ сСрвСр Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΈ, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΈ ΠΈ ΠΎΠ½ΠΈΠ΅ Π»ΠΎΡ†ΠΈΡ€Π°Π½ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ машини.

Π¦Π΅Π»Ρ‚Π° Π½Π° ΠΎΠ²Π°Π° објава Π΅ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° ΠΌΠΈΠ½ΠΈΠΎ Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ сСкој корисник ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само со сопствСната ΠΊΠΎΡ„Π°.

Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Minio Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° слСднивС случаи:

  • ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π±Π΅Π· Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° сигурСн Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ‡Π΅Π½ систСм со пристап ΠΏΡ€Π΅ΠΊΡƒ S3 (ΠΌΠ°Π»ΠΎ ΠΈ срСдно ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ хостирано Π½Π° NAS ΠΈ SAN);
  • Π½Π΅-Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° нСсигурСн Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ‡Π΅Π½ систСм со S3 пристап (Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅);
  • ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ со Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° ΠΌΠ°Π»Π° Π³Ρ€ΡƒΠΏΠ° сСрвСри Π²ΠΎ Π΅Π΄Π΅Π½ rack со пристап ΠΏΡ€Π΅ΠΊΡƒ S3 ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΡ‚ (failover ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ со Π΄ΠΎΠΌΠ΅Π½ Π½Π° Π΄Π΅Ρ„Π΅ΠΊΡ‚ Π΅Π΄Π½Π°ΠΊΠΎΠ² Π½Π° rack).

На систСмитС RedHat Π³ΠΎ ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΠΌΠ΅ Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΎΡ‚ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Π½Π° Minio.

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

Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ΠΈ Π΄ΠΎΠ΄Π°Ρ˜Ρ‚Π΅ Π²ΠΎ MINIO_ACCESS_KEY ΠΈ MINIO_SECRET_KEY Π²ΠΎ /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=

Ако Π½Π΅ΠΌΠ° Π΄Π° користитС nginx ΠΏΡ€Π΅Π΄ Minio, Ρ‚ΠΎΠ³Π°Ρˆ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅.

--address 127.0.0.1:9000

Π½Π°

--address 0.0.0.0:9000

Π”Π° Π³ΠΎ лансирамС Minio.

systemctl start minio

НиС создавамС врска со Minio Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° myminio.

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

Π‘ΠΎΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΡ„Π° user1bucket.

minio-mc mb myminio/user1bucket

Π‘ΠΎΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΡ„Π° user2bucket.

minio-mc mb myminio/user2bucket

НаправСтС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° со ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° 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": ""
    }
  ]
}

НаправСтС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° со ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° 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": ""
    }
  ]
}

ΠšΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ корисник user1 со Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° test12345.

minio-mc admin user add myminio user1 test12345

ΠšΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ корисник user2 со Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° test54321.

minio-mc admin user add myminio user2 test54321

НиС создавамС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π²ΠΎ Minio Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° user1-policy ΠΎΠ΄ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° user1-policy.json.

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

НиС создавамС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π²ΠΎ Minio Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° user2-policy ΠΎΠ΄ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° user2-policy.json.

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

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Ρ‚Π΅ ја ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° корисник1 Π½Π° корисникот корисник1.

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

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Ρ‚Π΅ ја ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° корисник2 Π½Π° корисникот корисник2.

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° поврзаноста Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅ со корисницитС

minio-mc admin user list myminio

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° поврзаноста Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅ со корисницитС ќС ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΡ‚ΠΏΡ€ΠΈΠ»ΠΈΠΊΠ° Π²Π°ΠΊΠ°

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Π—Π° Ρ˜Π°ΡΠ½ΠΎΡΡ‚, ΠΎΠ΄Π΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΊΡƒ прСлистувачот Π΄ΠΎ адрСсата http://ip-сСрвСра-Π³Π΄Π΅-Π·Π°ΠΏΡƒΡ‰Π΅Π½-minio:9000/minio/

Π“Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° сС ΠΏΠΎΠ²Ρ€Π·Π°Π²ΠΌΠ΅ со Minio ΠΏΠΎΠ΄ MINIO_ACCESS_KEY=user1. ΠšΠΎΡ„Π°Ρ‚Π° user1bucket Π½ΠΈ Π΅ достапна.

ΠŸΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Minio Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ корисникот ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само со сопствСната ΠΊΠΎΡ„Π°

НСма Π΄Π° Π±ΠΈΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС создадС ΠΊΠΎΡ„Π°, бидСјќи Π½Π΅ΠΌΠ° соодвСтно Π΄Π΅Ρ˜ΡΡ‚Π²ΠΎ Π²ΠΎ полисата.

ΠŸΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Minio Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ корисникот ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само со сопствСната ΠΊΠΎΡ„Π°

АјдС Π΄Π° создадСмС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π²ΠΎ ΠΊΠΎΡ€ΠΏΠ°Ρ‚Π° user1bucket.

ΠŸΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Minio Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ корисникот ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само со сопствСната ΠΊΠΎΡ„Π°

АјдС Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅ΠΌΠ΅ со Minio ΠΏΠΎΠ΄ MINIO_ACCESS_KEY=user2. ΠšΠΎΡ„Π°Ρ‚Π° user2bucket Π½ΠΈ Π΅ достапна.

И Π½Π΅ Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½ΠΈΡ‚Ρƒ user1bucket Π½ΠΈΡ‚Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ΄ user1bucket.

ΠŸΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Minio Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ корисникот ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само со сопствСната ΠΊΠΎΡ„Π°

Π‘ΠΎΠ·Π΄Π°Π΄Π΅ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ Π·Π° Telegram ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Minio https://t.me/minio_s3_ru

Π˜Π·Π²ΠΎΡ€: www.habr.com