เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Minio เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฑเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

Minio เปเบกเปˆเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš AWS S3 เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, เป„เบง. Minio เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเป‚เบฎเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบŠเบฑเปˆเบ™: เบฎเบนเบšเบžเบฒเบš, เบงเบดเบ”เบตเป‚เบญ, เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ, เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™. minio เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบผเบฒเบเปเบœเปˆเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบงเบฑเบ”เบ–เบธเบซเบ™เบถเปˆเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ•เบญเบšเบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ configure minio เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš bucket เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, Minio เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบœเปˆเบฒเบ™ S3 (เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡เบ—เบตเปˆเป‚เบฎเบ”เบขเบนเปˆเปƒเบ™ NAS เปเบฅเบฐ SAN);
  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ S3 (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš);
  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ™เบซเบ™เบถเปˆเบ‡ rack เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™ S3 (เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบเบฑเบšเป‚เบ”เป€เบกเบ™เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป€เบ—เบปเปˆเบฒเบเบฑเบš 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

เบชเป‰เบฒเบ‡ 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-เบ™เบฐเป‚เบเบšเบฒเบเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ user1.

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

เบ™เบณเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบ user2-เบ™เบฐเป‚เบเบšเบฒเบเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ 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. เบ–เบฑเบ‡ user1bucket เบกเบตเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒ.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Minio เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฑเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡ bucket เป„เบ”เป‰, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เปƒเบ™เบ™เบฐเป‚เบเบšเบฒเบ.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Minio เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฑเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

เบกเบฒเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเปƒเบ™ bucket user1bucket.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Minio เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฑเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

เปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Minio เบžเบฒเบเปƒเบ•เป‰ MINIO_ACCESS_KEY=user2. เบ–เบฑเบ‡ user2bucket เบกเบตเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒ.

เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป€เบซเบฑเบ™เบ—เบฑเบ‡ user1bucket เบซเบผเบทเป„เบŸเบฅเปŒเบˆเบฒเบ user1bucket.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Minio เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฑเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

เบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ Telegram เป‚เบ”เบเปƒเบŠเป‰ Minio https://t.me/minio_s3_ru

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com