ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืžื™ื ื™ืึธ ืึทื–ื•ื™ ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืขืžืขืจ

ืžื™ื ื™ืึธ ืื™ื– ืึท ืคึผืฉื•ื˜, ืฉื ืขืœ, AWS S3 ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ื›ื™ื™ืคืขืฅ ืงืจืึธื. ืžื™ื ื™ืึธ ืื™ื– ื“ื™ื–ื™ื™ื ื“ ืฆื• ื‘ืึทืœืขื‘ืึธืก ืึทื ืกื˜ืจืึทืงื˜ืฉืขืจื“ ื“ืึทื˜ืŸ ืึทื–ืึท ื•ื•ื™ ืคืึธื˜ืึธืก, ื•ื•ื™ื“ื™ืืก, ืงืœืึธืฅ ื˜ืขืงืขืก, ื‘ืึทืงืึทืคึผืก. ืžื™ื ื™ืึธ ืื•ื™ืš ืฉื˜ื™ืฆื˜ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืžืึธื“ืข, ื•ื•ืึธืก ื’ื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืงื™ื™ืคืœ ื“ื™ืกืงืก ืฆื• ืื™ื™ืŸ ืึทื‘ื“ื–ืฉืขืงื˜ ืกื˜ืึธืจื™ื“ื–ืฉ ืกืขืจื•ื•ืขืจ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ื•ื•ืึธืก ื–ืขื ืขืŸ ืœื™ื’ืŸ ืื•ื™ืฃ ืคืึทืจืฉื™ื“ืขื ืข ืžืืฉื™ื ืขืŸ.

ื“ืขืจ ืฆื™ืœ ืคื•ืŸ ื“ืขื ืคึผืึธืกื˜ืŸ ืื™ื– ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืžื™ื ื™ืึธ ืึทื–ื•ื™ ืึทื– ื™ืขื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืขืžืขืจ.

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืžื™ื ื™ืึธ ืื™ื– ืคึผืึทืกื™ืง ืคึฟืึทืจ ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึทืกืขืก:

  • ื ื™ื˜-ืจืขืคึผืœืึทืงื™ื™ืฉืึทืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ืึท ืคืึทืจืœืึธื–ืœืขืš ื˜ืขืงืข ืกื™ืกื˜ืขื ืžื™ื˜ ืึทืงืกืขืก ื“ื•ืจืš S3 (ืงืœื™ื™ืŸ ืื•ืŸ ืžื™ื˜ืœ ืกื˜ืึธืจื™ื“ื–ืฉ ื›ืึธื•ืกื˜ื™ื“ ืื•ื™ืฃ NAS ืื•ืŸ SAN);
  • ื ื™ื˜-ืจืขืคึผืœื™ืงื™ื™ื˜ื™ื“ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ืึทืŸ ืึทื ืจื™ืœื™ื™ืึทื‘ืึทืœ ื˜ืขืงืข ืกื™ืกื˜ืขื ืžื™ื˜ S3 ืึทืงืกืขืก (ืคึฟืึทืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’);
  • ืกื˜ืึธืจื™ื“ื–ืฉ ืžื™ื˜ ืจืขืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ื™ืฃ ืึท ืงืœื™ื™ืŸ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืกืขืจื•ื•ืขืจืก ืื™ืŸ ืื™ื™ืŸ ื’ืขืฉื˜ืขืœ ืžื™ื˜ ืึทืงืกืขืก ื“ื•ืจืš ื“ื™ S3 ืคึผืจืึธื˜ืึธืงืึธืœ (ืคื™ื™ื™ืœืึธื•ื•ื•ืขืจ ืกื˜ืึธืจื™ื“ื–ืฉ ืžื™ื˜ ืึท ื“ื•ืจื›ืคืึทืœ ืคืขืœื“ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ ื’ืขืฉื˜ืขืœ).

ืื•ื™ืฃ 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 ืื™ื™ื“ืขืจ ืžื™ื ื™ืึธ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ื•ื™ืฉืŸ.

--address 127.0.0.1:9000

ืื•ื™ืฃ

--address 0.0.0.0:9000

ื–ืืœ ืก ืงืึทื˜ืขืจ ืžื™ื ื™ืึธ.

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_ACCESS_KEY = ื‘ืึทื ื™ืฆืขืจ 1. ื“ื™ User1bucket ืขืžืขืจ ืื™ื– ื‘ืืจืขื›ื˜ื™ื’ื˜ ืคึฟืึทืจ ืื•ื ื“ื–.

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืžื™ื ื™ืึธ ืึทื–ื•ื™ ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืขืžืขืจ

ืขืก ื•ื•ืขื˜ ื ื™ื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืฉืึทืคึฟืŸ ืึท ืขืžืขืจ, ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืงื™ื™ืŸ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืงืึทืžืฃ ืื™ืŸ ื“ืขืจ ืคึผืึธืœื™ื˜ื™ืง.

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืžื™ื ื™ืึธ ืึทื–ื•ื™ ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืขืžืขืจ

ืœืึธืžื™ืจ ืžืึทื›ืŸ ืึท ื˜ืขืงืข ืื™ืŸ ื“ื™ ืขืžืขืจ user1bucket.

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืžื™ื ื™ืึธ ืึทื–ื•ื™ ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืขืžืขืจ

ืœืึธืžื™ืจ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ืžื™ื ื™ืึธ ืื•ื ื˜ืขืจ MINIO_ACCESS_KEY = ื‘ืึทื ื™ืฆืขืจ 2. ื“ื™ User2bucket ืขืžืขืจ ืื™ื– ื‘ืืจืขื›ื˜ื™ื’ื˜ ืคึฟืึทืจ ืื•ื ื“ื–.

ืื•ืŸ ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื–ืขืŸ User1bucket ืึธื“ืขืจ ื˜ืขืงืขืก ืคึฟื•ืŸ User1bucket.

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืžื™ื ื™ืึธ ืึทื–ื•ื™ ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืขืžืขืจ

ื‘ืืฉืืคืŸ ืึท ื˜ืขืœืขื’ืจืึทื ืฉืžื•ืขืก ืžื™ื˜ ืžื™ื ื™ืึธ https://t.me/minio_s3_ru

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