ื”ื’ื“ืจืช Minio ื›ืš ืฉื”ืžืฉืชืžืฉ ื™ื•ื›ืœ ืœืขื‘ื•ื“ ืจืง ืขื ื”ื“ืœื™ ืฉืœื•

Minio ื”ื™ื ื—ื ื•ืช ืื•ื‘ื™ื™ืงื˜ื™ื ืคืฉื•ื˜ื” ื•ืžื”ื™ืจื” ืชื•ืืžืช AWS S3. Minio ื ื•ืขื“ ืœืืจื— ื ืชื•ื ื™ื ืœื ืžื•ื‘ื ื™ื ื›ื’ื•ืŸ ืชืžื•ื ื•ืช, ืกืจื˜ื•ื ื™ื, ืงื•ื‘ืฆื™ ื™ื•ืžืŸ, ื’ื™ื‘ื•ื™ื™ื. minio ืชื•ืžืš ื’ื ื‘ืžืฆื‘ ืžื‘ื•ื–ืจ, ื”ืžืกืคืง ืืช ื”ื™ื›ื•ืœืช ืœื—ื‘ืจ ื“ื™ืกืงื™ื ืžืจื•ื‘ื™ื ืœืฉืจืช ืื—ืกื•ืŸ ืื•ื‘ื™ื™ืงื˜ื™ื ืื—ื“, ื›ื•ืœืœ ืืœื” ื”ืžืžื•ืงืžื™ื ื‘ืžื›ื•ื ื•ืช ืฉื•ื ื•ืช.

ืžื˜ืจืช ื”ืคื•ืกื˜ ื”ื–ื” ื”ื™ื ืœื”ื’ื“ื™ืจ ืžื™ื ื™ื• ื›ืš ืฉื›ืœ ืžืฉืชืžืฉ ื™ื•ื›ืœ ืœืขื‘ื•ื“ ืจืง ืขื ื”ื“ืœื™ ืฉืœื•.

ื‘ืื•ืคืŸ ื›ืœืœื™, Minio ืžืชืื™ื ืœืžืงืจื™ื ื”ื‘ืื™ื:

  • ืื—ืกื•ืŸ ืœืœื ืฉื›ืคื•ืœ ืขืœ ื’ื‘ื™ ืžืขืจื›ืช ืงื‘ืฆื™ื ืืžื™ื ื” ืขื ื’ื™ืฉื” ื“ืจืš S3 (ืื—ืกื•ืŸ ืงื˜ืŸ ื•ื‘ื™ื ื•ื ื™ ื”ืžืชืืจื— ื‘-NAS ื•-SAN);
  • ืื—ืกื•ืŸ ืœื ืžืฉื•ื›ืคืœ ืขืœ ื’ื‘ื™ ืžืขืจื›ืช ืงื‘ืฆื™ื ืœื ืืžื™ื ื” ืขื ื’ื™ืฉืช S3 (ืœืคื™ืชื•ื— ื•ื‘ื“ื™ืงื”);
  • ืื—ืกื•ืŸ ืขื ืฉื›ืคื•ืœ ืขืœ ืงื‘ื•ืฆื” ืงื˜ื ื” ืฉืœ ืฉืจืชื™ื ื‘ืžื“ืฃ ืื—ื“ ืขื ื’ื™ืฉื” ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ S3 (ืื—ืกื•ืŸ ื›ืฉืœ ืขื ืชื—ื•ื ื›ืฉืœ ืฉื•ื•ื” ืœ-rack).

ื‘ืžืขืจื›ื•ืช RedHat ืื ื• ืžื—ื‘ืจื™ื ืืช ืžืื’ืจ ื”ืžื™ื ื™ื• ื”ืœื ืจืฉืžื™.

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

ืื ื• ื™ื•ืฆืจื™ื ื—ื™ื‘ื•ืจ ืœืžื™ื ื™ื• ื‘ืฉื 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": ""
    }
  ]
}

ืฆื•ืจ ืžืฉืชืžืฉ ืžืฉืชืžืฉ1 ืขื ื”ืกื™ืกืžื” test12345.

minio-mc admin user add myminio user1 test12345

ืฆื•ืจ ืžืฉืชืžืฉ ืžืฉืชืžืฉ2 ืขื ื”ืกื™ืกืžื” test54321.

minio-mc admin user add myminio user2 test54321

ืื ื• ื™ื•ืฆืจื™ื ืžื“ื™ื ื™ื•ืช ื‘ืžื™ื ื™ื• ื‘ืฉื user1-policy ืžื”ืงื•ื‘ืฅ user1-policy.json.

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

ืื ื• ื™ื•ืฆืจื™ื ืžื“ื™ื ื™ื•ืช ื‘ืžื™ื ื™ื• ื‘ืฉื user2-policy ืžื”ืงื•ื‘ืฅ user2-policy.json.

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 ืชื—ืช MINIO_ACCESS_KEY=user1. ื“ืœื™ user1bucket ื–ืžื™ืŸ ืœื ื•.

ื”ื’ื“ืจืช Minio ื›ืš ืฉื”ืžืฉืชืžืฉ ื™ื•ื›ืœ ืœืขื‘ื•ื“ ืจืง ืขื ื”ื“ืœื™ ืฉืœื•

ืœื ื ื™ืชืŸ ื™ื”ื™ื” ืœื™ืฆื•ืจ ื“ืœื™, ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืคืขื•ืœื” ืžืชืื™ืžื” ื‘ืžื“ื™ื ื™ื•ืช.

ื”ื’ื“ืจืช Minio ื›ืš ืฉื”ืžืฉืชืžืฉ ื™ื•ื›ืœ ืœืขื‘ื•ื“ ืจืง ืขื ื”ื“ืœื™ ืฉืœื•

ื‘ื•ืื• ื ื™ืฆื•ืจ ืงื•ื‘ืฅ ื‘-bucket user1bucket.

ื”ื’ื“ืจืช Minio ื›ืš ืฉื”ืžืฉืชืžืฉ ื™ื•ื›ืœ ืœืขื‘ื•ื“ ืจืง ืขื ื”ื“ืœื™ ืฉืœื•

ื‘ื•ืื• ื ืชื—ื‘ืจ ืœ-Minio ืชื—ืช MINIO_ACCESS_KEY=ืžืฉืชืžืฉ2. ื“ืœื™ user2bucket ื–ืžื™ืŸ ืœื ื•.

ื•ืื ื—ื ื• ืœื ืจื•ืื™ื ืืช user1bucket ืื• ืงื‘ืฆื™ื ืž-user1bucket.

ื”ื’ื“ืจืช Minio ื›ืš ืฉื”ืžืฉืชืžืฉ ื™ื•ื›ืœ ืœืขื‘ื•ื“ ืจืง ืขื ื”ื“ืœื™ ืฉืœื•

ื™ืฆืจ ืฆ'ืื˜ ื‘ื˜ืœื’ืจื ื‘ืืžืฆืขื•ืช Minio https://t.me/minio_s3_ru

ืžืงื•ืจ: www.habr.com