Minio เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡เชฅเซ€ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชซเช•เซเชค เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชฌเช•เซ‡เชŸเชฅเซ€ เชœ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡

Minio เช เชเช• เชธเชฐเชณ, เชเชกเชชเซ€, AWS S3 เชธเซเชธเช‚เช—เชค เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐ เช›เซ‡. Minio เชจเซ‡ เช…เชจเชธเซเชŸเซเชฐเช•เซเชšเชฐเซเชก เชกเซ‡เชŸเชพ เชœเซ‡เชฎ เช•เซ‡ เชซเซ‹เชŸเชพ, เชตเชฟเชกเชฟเชฏเซ‹, เชฒเซ‹เช— เชซเชพเช‡เชฒเซ‹, เชฌเซ‡เช•เช…เชช เชนเซ‹เชธเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. minio เชกเชฟเชธเซเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸเซ‡เชก เชฎเซ‹เชกเชจเซ‡ เชชเชฃ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชเช• เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เชฌเชนเซเชตเชฟเชง เชกเชฟเชธเซเช•เชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชชเซ‚เชฐเซ€ เชชเชพเชกเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชฎเชถเซ€เชจเซ‹ เชชเชฐ เชธเซเชฅเชฟเชค เช›เซ‡.

เช† เชชเซ‹เชธเซเชŸเชจเซ‹ เชนเซ‡เชคเซ เชฎเชฟเชจเซ€เชฏเซ‹เชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡ เชœเซ‡เชฅเซ€ เชฆเชฐเซ‡เช• เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชซเช•เซเชค เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชฌเช•เซ‡เชŸเชฅเซ€ เชœ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, 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

/etc/minio/minio.conf เชฎเชพเช‚ MINIO_ACCESS_KEY เช…เชจเซ‡ MINIO_SECRET_KEY เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‹ เช…เชจเซ‡ เช‰เชฎเซ‡เชฐเซ‹.

# 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=

เชœเซ‹ เชคเชฎเซ‡ Minio เชชเชนเซ‡เชฒเชพเช‚ nginx เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชฌเชฆเชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

--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": ""
    }
  ]
}

เชชเชพเชธเชตเชฐเซเชก test1 เชธเชพเชฅเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ12345 เชฌเชจเชพเชตเซ‹.

minio-mc admin user add myminio user1 test12345

เชชเชพเชธเชตเชฐเซเชก test2 เชธเชพเชฅเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ54321 เชฌเชจเชพเชตเซ‹.

minio-mc admin user add myminio user2 test54321

เช…เชฎเซ‡ user1-policy.json เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ Minioเชฎเชพเช‚ user1-policy เชจเชพเชฎเชจเซ€ เชจเซ€เชคเชฟ เชฌเชจเชพเชตเซ€เช เช›เซ€เช.

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

เช…เชฎเซ‡ user2-policy.json เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ Minioเชฎเชพเช‚ user2-policy เชจเชพเชฎเชจเซ€ เชจเซ€เชคเชฟ เชฌเชจเชพเชตเซ€เช เช›เซ€เช.

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_ACCESS_KEY=user1 เชนเซ‡เช เชณ Minio เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เชฅเชฏเชพ เช›เซ€เช. user1bucket เชฌเช•เซ‡เชŸ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เช›เซ‡.

Minio เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡เชฅเซ€ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชซเช•เซเชค เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชฌเช•เซ‡เชŸเชฅเซ€ เชœ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡

เชฌเช•เซ‡เชŸ เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เชฌเชจเชถเซ‡ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชจเซ€เชคเชฟเชฎเชพเช‚ เช•เซ‹เชˆ เช…เชจเซเชฐเซ‚เชช เช•เซเชฐเชฟเชฏเชพ เชจเชฅเซ€.

Minio เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡เชฅเซ€ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชซเช•เซเชค เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชฌเช•เซ‡เชŸเชฅเซ€ เชœ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡

เชšเชพเชฒเซ‹ เชฌเช•เซ‡เชŸ user1bucket เชฎเชพเช‚ เชซเชพเชˆเชฒ เชฌเชจเชพเชตเซ€เช.

Minio เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡เชฅเซ€ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชซเช•เซเชค เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชฌเช•เซ‡เชŸเชฅเซ€ เชœ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡

เชšเชพเชฒเซ‹ MINIO_ACCESS_KEY=user2 เชนเซ‡เช เชณ Minio เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เช. user2bucket เชฌเช•เซ‡เชŸ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เช›เซ‡.

เช…เชจเซ‡ เช…เชฎเซ‡ เช•เซเชฏเชพเช‚ เชคเซ‹ user1bucket เช…เชฅเชตเชพ user1bucket เชฎเชพเช‚เชฅเซ€ เชซเชพเช‡เชฒเซ‹ เชœเซ‹เชคเชพ เชจเชฅเซ€.

Minio เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡เชฅเซ€ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชซเช•เซเชค เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชฌเช•เซ‡เชŸเชฅเซ€ เชœ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡

Minio เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชšเซ‡เชŸ เชฌเชจเชพเชตเซ€ https://t.me/minio_s3_ru

เชธเซ‹เชฐเซเชธ: www.habr.com