Minio рдПрдХ рд╕рд░рд▓, рдЫрд┐рдЯреЛ, AWS S3 рдЙрдкрдпреБрдХреНрдд рд╡рд╕реНрддреБ рд╕реНрдЯреЛрд░ рд╣реЛред Minio рдлреЛрдЯреЛ, рднрд┐рдбрд┐рдпреЛ, рд▓рдЧ рдлрд╛рдЗрд▓, рдмреНрдпрд╛рдХрдЕрдк рдЬрд╕реНрддрд╛ рдЕрд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рд╣реЛрд╕реНрдЯ рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╣реЛред minio рд▓реЗ рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрдЯреЗрдб рдореЛрдбрд▓рд╛рдИ рдкрдирд┐ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд▓рдЧрд╛рдпрдд рдПрдЙрдЯреИ рд╡рд╕реНрддреБ рднрдгреНрдбрд╛рд░рдг рд╕рд░реНрднрд░рдорд╛ рдзреЗрд░реИ рдбрд┐рд╕реНрдХрд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
рдпрд╕ рдкреЛрд╖реНрдЯрдХреЛ рдЙрджреНрджреЗрд╢реНрдп 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
рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ 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=
рдпрджрд┐ рддрдкрд╛рдЗрдБ 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
рдмрд╛рд▓реНрдЯреА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ 1 рдмрд╛рд▓реНрдЯреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
minio-mc mb myminio/user1bucket
рдмрд╛рд▓реНрдЯреА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ 2 рдмрд╛рд▓реНрдЯреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
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
рд╣рд╛рдореА Minio рдорд╛ user1-policy рдирд╛рдордХ рдлрд╛рдЗрд▓ user1-policy.json рдмрд╛рдЯ рдиреАрддрд┐ рдмрдирд╛рдЙрдБрдЫреМрдВред
minio-mc admin policy add myminio user1-policy user1-policy.json
рд╣рд╛рдореА Minio рдорд╛ user2-policy рдирд╛рдордХ рдлрд╛рдЗрд▓ user2-policy.json рдмрд╛рдЯ рдиреАрддрд┐ рдмрдирд╛рдЙрдБрдЫреМрдВред
minio-mc admin policy add myminio user2-policy user2-policy.json
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рез-рдиреАрддрд┐ рдиреАрддрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рез рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
minio-mc admin policy set myminio user1-policy user=user1
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рез-рдиреАрддрд┐ рдиреАрддрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рез рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
minio-mc admin policy set myminio user2-policy user=user2
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдиреАрддрд┐рд╣рд░реВрдХреЛ рдЬрдбрд╛рди рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ
minio-mc admin user list myminio
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдиреАрддрд┐рд╣рд░реВрдХреЛ рдЬрдбрд╛рди рдЬрд╛рдБрдЪ рдЧрд░реНрджрд╛ рдпреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ
enabled user1 user1-policy
enabled user2 user2-policy
рд╕реНрдкрд╖реНрдЯрддрд╛рдХреЛ рд▓рд╛рдЧрд┐, рдмреНрд░рд╛рдЙрдЬрд░ рдорд╛рд░реНрдлрдд рдареЗрдЧрд╛рдирд╛рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН
рд╣рд╛рдореАрд▓реЗ MINIO_ACCESS_KEY=user1 рдЕрдиреНрддрд░реНрдЧрдд Minio рдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ рджреЗрдЦреНрдпреМрдВред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рез рдмрд╛рд▓реНрдЯреА рдмрд╛рд▓реНрдЯрд┐рди рд╣рд╛рдореАрд▓рд╛рдИ рдЙрдкрд▓рдмреНрдз рдЫред
рдпреЛ рдПрдХ рдмрд╛рд▓реНрдЯрд┐рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫреИрди, рдХрд┐рдирднрдиреЗ рдиреАрддрд┐рдорд╛ рдХреБрдиреИ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдЫреИрдиред
рдмрд╛рд▓реНрдЯреА user1bucket рдорд╛ рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред
MINIO_ACCESS_KEY=user2 рдЕрдиреНрддрд░реНрдЧрдд Minio рдорд╛ рдЬрдбрд╛рди рдЧрд░реМрдВред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ 2 рдмрдХреЗрдЯ рдмрд╛рд▓реНрдЯрд┐рди рд╣рд╛рдореАрд▓рд╛рдИ рдЙрдкрд▓рдмреНрдз рдЫред
рд░ рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ 1 рдмрд╛рд▓реНрдЯреА рд╡рд╛ user1 bucket рдмрд╛рдЯ рдлрд╛рдЗрд▓рд╣рд░реВ рджреЗрдЦреНрджреИрдиреМрдВред
Minio рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреНрдпрд╛рдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрднрдпреЛ
рд╕реНрд░реЛрдд: www.habr.com