Настройка Π½Π° Minio, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ потрСбитСлят Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само с нСговия bucket

Minio Π΅ просто, Π±ΡŠΡ€Π·ΠΎ ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎ с AWS S3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Minio Π΅ създадСн Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° нСструктурирани Π΄Π°Π½Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ снимки, видСозаписи, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия. Π’ Minio ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ (distributed mode), ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ дисковС, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ машини, към Π΅Π΄ΠΈΠ½ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ.

Π¦Π΅Π»Ρ‚Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ пост Π΅ Π΄Π° настроим Minio Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само с нСговия bucket.

ΠšΠ°Ρ‚ΠΎ цяло, Minio Π΅ подходящ Π·Π° слСднитС случаи:

  • Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π±Π΅Π· рСпликация Π²ΡŠΡ€Ρ…Ρƒ Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма с Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΏΠΎ S3 (ΠΌΠ°Π»ΠΊΠΈ ΠΈ срСдни Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° NAS ΠΈ SAN);
  • Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π±Π΅Π· рСпликация Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма с Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΏΠΎ S3 (Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ тСстванС);
  • Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с рСпликация Π½Π° ΠΌΠ°Π»ΠΊΠ° Π³Ρ€ΡƒΠΏΠ° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π² Π΅Π΄Π½Π° стСлаТ с Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° S3 (отказоустойчиво Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π½Π° ΠΎΡ‚ΠΊΠ°Π·Π° Ρ€Π°Π²Π΅Π½ Π½Π° стСлаТа).

На систСми 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

БъздавамС bucket user1bucket.

minio-mc mb myminio/user1bucket

БъздавамС bucket 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

ΠŸΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° user1-policy към потрСбитСля user1.

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

ΠŸΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° user2-policy към потрСбитСля user2.

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. Π—Π° нас Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ bucket user1bucket.

Настройка Π½Π° Minio, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ потрСбитСлят Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само с нСговия bucket

НС ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° създадСм bucket, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰ΠΎΡ‚ΠΎ Action Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° липсва.

Настройка Π½Π° Minio, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ потрСбитСлят Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само с нСговия bucket

БъздавамС Ρ„Π°ΠΉΠ» Π² bucket user1bucket.

Настройка Π½Π° Minio, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ потрСбитСлят Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само с нСговия bucket

Π‘Π²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ сС с Minio ΠΏΠΎΠ΄ MINIO_ACCESS_KEY=user2. Π—Π° нас Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ bucket user2bucket.

И Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΈΡ‚ΠΎ user1bucket, Π½ΠΈΡ‚ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ user1bucket.

Настройка Π½Π° Minio, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ потрСбитСлят Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само с нСговия bucket

Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ… Telegram Ρ‡Π°Ρ‚ ΠΏΠΎ Minio https://t.me/minio_s3_ru

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster