ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Minio, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ потрСбитСлят Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само със собствСната си ΠΊΠΎΡ„Π°

Minio Π΅ просто, Π±ΡŠΡ€Π·ΠΎ ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎ с AWS S3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Minio Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π΄Π° хоства нСструктурирани Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ снимки, Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅, рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия. minio ΡΡŠΡ‰ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° мноТСство дисковС към Π΅Π΄ΠΈΠ½ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚Π΅Π·ΠΈ, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ машини.

Π¦Π΅Π»Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ публикация Π΅ Π΄Π° настрои minio, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само със собствСната си ΠΊΠΎΡ„Π°.

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

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

Π’ систСмитС 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

ΠŸΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° 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, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ потрСбитСлят Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само със собствСната си ΠΊΠΎΡ„Π°

Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΡ„Π° няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° няма ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ дСйствиС.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Minio, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ потрСбитСлят Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само със собствСната си ΠΊΠΎΡ„Π°

НСка създадСм Ρ„Π°ΠΉΠ» Π² ΠΊΠΎΡ„Π° user1bucket.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Minio, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ потрСбитСлят Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само със собствСната си ΠΊΠΎΡ„Π°

Π‘Π²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ сС с Minio ΠΏΠΎΠ΄ MINIO_ACCESS_KEY=user2. Bucket user2bucket Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° нас.

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

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Minio, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ потрСбитСлят Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само със собствСната си ΠΊΠΎΡ„Π°

БъздадСн Telegram Ρ‡Π°Ρ‚ ΠΎΡ‚ Minio https://t.me/minio_s3_ru

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