рдорд┐рдирд┐рдпреЛ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХреЗ

рдорд┐рдирд┐рдпреЛ рдПрдХ рд╕рд░рд▓, рддреЗрдЬрд╝, AWS S3 рд╕рдВрдЧрдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░ рд╣реИред рдорд┐рдирд┐рдпреЛ рдХреЛ рдлрд╝реЛрдЯреЛ, рд╡реАрдбрд┐рдпреЛ, рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ, рдмреИрдХрдЕрдк рдЬреИрд╕реЗ рдЕрд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдорд┐рдирд┐рдпреЛ рд╡рд┐рддрд░рд┐рдд рдореЛрдб рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдкрд░ рд╕реНрдерд┐рдд рд╕рд╣рд┐рдд рдХрдИ рдбрд┐рд╕реНрдХ рдХреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдорд┐рдирд┐рдпреЛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдорд┐рдирд┐рдпреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ:

  • S3 (NAS рдФрд░ SAN рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЫреЛрдЯреЗ рдФрд░ рдордзреНрдпрдо рднрдВрдбрд╛рд░рдг) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЧреИрд░-рдкреНрд░рддрд┐рдХреГрддрд┐ рднрдВрдбрд╛рд░рдг;
  • S3 рдПрдХреНрд╕реЗрд╕ (рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП) рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЧреИрд░-рдкреНрд░рддрд┐рдХреГрддрд┐ рднрдВрдбрд╛рд░рдг;
  • S3 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рд░реИрдХ рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдореВрд╣ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд╕рд╛рде рднрдВрдбрд╛рд░рдг (рд░реИрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╡рд┐рдлрд▓рддрд╛ рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓рддрд╛ рднрдВрдбрд╛рд░рдг)ред

рд░реЗрдбрд╣реИрдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣рдо рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдорд┐рдирд┐рдпреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

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

рдЖрдЗрдП рдорд┐рдирд┐рдпреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред

systemctl start minio

рд╣рдо рдорд┐рдирд┐рдпреЛ рд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдорд╛рдпрдорд┐рдирд┐рдпреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╣рдо Minio рдореЗрдВ user1-policy.json рдлрд╝рд╛рдЗрд▓ рд╕реЗ user1-policy рдирд╛рдо рд╕реЗ рдПрдХ рдиреАрддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВред

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

рд╣рдо Minio рдореЗрдВ user2-policy.json рдлрд╝рд╛рдЗрд▓ рд╕реЗ 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 рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдорд┐рдирд┐рдпреЛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред User1bucket рдмрдХреЗрдЯ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

рдорд┐рдирд┐рдпреЛ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХреЗ

рдмрдХреЗрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдиреАрддрд┐ рдореЗрдВ рдХреЛрдИ рд╕рдВрдЧрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рд╣реИред

рдорд┐рдирд┐рдпреЛ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХреЗ

рдЖрдЗрдП рдмрдХреЗрдЯ user1bucket рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред

рдорд┐рдирд┐рдпреЛ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХреЗ

рдЖрдЗрдП MINIO_ACCESS_KEY=user2 рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдорд┐рдирд┐рдпреЛ рд╕реЗ рдЬреБрдбрд╝реЗрдВред User2bucket рдмрдХреЗрдЯ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

рдФрд░ рд╣рдо user1bucket рдпрд╛ user1bucket рдХреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред

рдорд┐рдирд┐рдпреЛ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХреЗ

рдорд┐рдирд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдЯ рдмрдирд╛рдИ рдЧрдИ https://t.me/minio_s3_ru

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