Minio เจธเฉˆเจŸ เจ…เจช เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจฟเจฐเจซ เจ†เจชเจฃเฉ€ เจฌเจพเจฒเจŸเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เฉ‡

Minio เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ, เจคเฉ‡เจœเจผ, AWS S3 เจ…เจจเฉเจ•เฉ‚เจฒ เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐ เจนเฉˆเฅค เจฎเจฟเจจเฉ€เจ“ เจจเฉ‚เฉฐ เจซเฉ‹เจŸเฉ‹เจ†เจ‚, เจตเฉ€เจกเฉ€เจ“เจœเจผ, เจฒเฉŒเจ— เจซเจพเจˆเจฒเจพเจ‚, เจฌเฉˆเจ•เจ…เฉฑเจช เจตเจฐเจ—เฉ‡ เจ—เฉˆเจฐ-เจธเฉฐเจ—เจ เจฟเจค เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฎเฉ‡เจœเจผเจฌเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค 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

เจ…เจธเฉ€เจ‚ เจฎเจฟเจจเฉ€เจ“ เจจเจพเจฒ เจ‡เฉฑเจ• เจ•เจจเฉˆเจ•เจธเจผเจจ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจœเจฟเจธเจจเฉ‚เฉฐ 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 เจจเจพเจฒ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ user12345 เจฌเจฃเจพเจ“.

minio-mc admin user add myminio user1 test12345

เจชเจพเจธเจตเจฐเจก test2 เจจเจพเจฒ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ user54321 เจฌเจฃเจพเจ“.

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 เจฌเจพเจฒเจŸเฉ€ เจธเจพเจกเฉ‡ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจนเฉˆเฅค

เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจฏเฉ‚เจœเจผเจฐ 1 เจฌเฉฑเจ•เฉ‡เจŸ เจœเจพเจ‚ เจฏเฉ‚เจœเจผเจฐ 1 เจฌเฉฑเจ•เฉ‡เจŸ เจคเฉ‹เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเจนเฉ€เจ‚ เจตเฉ‡เจ–เจฆเฉ‡.

Minio เจธเฉˆเจŸ เจ…เจช เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจฟเจฐเจซ เจ†เจชเจฃเฉ€ เจฌเจพเจฒเจŸเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เฉ‡

เจฎเจฟเจจเฉ€เจ“ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจšเฉˆเจŸ เจฌเจฃเจพเจ‡เจ† https://t.me/minio_s3_ru

เจธเจฐเฉ‹เจค: www.habr.com