Minio рд╕реЗрдЯ рдХрд░рдгреЗ рдЬреЗрдгреЗрдХрд░реБрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрдХреНрдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдмрд╛рджрд▓реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХреЗрд▓

Minio рдПрдХ рд╕рд╛рдзреЗ, рдЬрд▓рдж, AWS S3 рд╕реБрд╕рдВрдЧрдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрдЕрд░ рдЖрд╣реЗ. рдлреЛрдЯреЛ, рд╡реНрд╣рд┐рдбрд┐рдУ, рд▓реЙрдЧ рдлрд╛рдЗрд▓реНрд╕, рдмреЕрдХрдЕрдк рдпрд╛рдВрд╕рд╛рд░рдЦреНрдпрд╛ рдЕрд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рд╣реЛрд╕реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Minio рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рдЖрд╣реЗ. minio рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрдЯреЗрдб рдореЛрдбрд▓рд╛ рджреЗрдЦреАрд▓ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЗ, рдЬреЗ рдПрдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдорд╢реАрдиреНрд╕рд╕рд╣ рдЕрдиреЗрдХ рдбрд┐рд╕реНрдХ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

рдпрд╛ рдкреЛрд╕реНрдЯрдЪрд╛ рдЙрджреНрджреЗрд╢ minio рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрдХреНрдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдмрд╛рджрд▓реАрдиреЗ рдХрд╛рдо рдХрд░реВ рд╢рдХреЗрд▓.

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, Minio рдЦрд╛рд▓реАрд▓ рдкреНрд░рдХрд░рдгрд╛рдВрд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ:

  • S3 рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╡реЗрд╢рд╛рд╕рд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рд╡рд░ рдиреЙрди-рд░рд┐рдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЛрд░реЗрдЬ (рдПрдирдПрдПрд╕ рдЖрдгрд┐ 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 рд╢реА рдХрдиреЗрдХреНрдЯ рдЭрд╛рд▓реЛ рдЖрд╣реЛрдд. рдпреВрдЬрд░1рдмрдХреЗрдЯ рдмрдХреЗрдЯ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ.

Minio рд╕реЗрдЯ рдХрд░рдгреЗ рдЬреЗрдгреЗрдХрд░реБрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрдХреНрдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдмрд╛рджрд▓реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХреЗрд▓

рдкреЙрд▓рд┐рд╕реАрдордзреНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд░рд┐рдпрд╛ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ рдмрд╛рджрд▓реА рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.

Minio рд╕реЗрдЯ рдХрд░рдгреЗ рдЬреЗрдгреЗрдХрд░реБрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрдХреНрдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдмрд╛рджрд▓реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХреЗрд▓

рдмрдХреЗрдЯ user1bucket рдордзреНрдпреЗ рдПрдХ рдлрд╛рдИрд▓ рдмрдирд╡реВ.

Minio рд╕реЗрдЯ рдХрд░рдгреЗ рдЬреЗрдгреЗрдХрд░реБрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрдХреНрдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдмрд╛рджрд▓реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХреЗрд▓

рдЪрд▓рд╛ MINIO_ACCESS_KEY=user2 рдЕрдВрддрд░реНрдЧрдд Minio рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░реВрдпрд╛. user2bucket рдмрдХреЗрдЯ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ.

рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ user1bucket рдХрд┐рдВрд╡рд╛ user1bucket рдордзреАрд▓ рдлрд╛рдИрд▓реНрд╕ рджрд┐рд╕рдд рдирд╛рд╣реАрдд.

Minio рд╕реЗрдЯ рдХрд░рдгреЗ рдЬреЗрдгреЗрдХрд░реБрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрдХреНрдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдмрд╛рджрд▓реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХреЗрд▓

Minio рд╡рд╛рдкрд░реВрди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреЕрдЯ рддрдпрд╛рд░ рдХреЗрд▓реЗ https://t.me/minio_s3_ru

рд╕реНрддреНрд░реЛрдд: www.habr.com