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
рд╕реНрдкрд╖реНрдЯрддреЗрд╕рд╛рдареА, рдмреНрд░рд╛рдЙрдЭрд░рджреНрд╡рд╛рд░реЗ рдкрддреНрддреНрдпрд╛рд╡рд░ рдЬрд╛
рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ рдХреА рдЖрдореНрд╣реА MINIO_ACCESS_KEY=user1 рдЕрдВрддрд░реНрдЧрдд Minio рд╢реА рдХрдиреЗрдХреНрдЯ рдЭрд╛рд▓реЛ рдЖрд╣реЛрдд. рдпреВрдЬрд░1рдмрдХреЗрдЯ рдмрдХреЗрдЯ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ.
рдкреЙрд▓рд┐рд╕реАрдордзреНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд░рд┐рдпрд╛ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ рдмрд╛рджрд▓реА рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.
рдмрдХреЗрдЯ user1bucket рдордзреНрдпреЗ рдПрдХ рдлрд╛рдИрд▓ рдмрдирд╡реВ.
рдЪрд▓рд╛ MINIO_ACCESS_KEY=user2 рдЕрдВрддрд░реНрдЧрдд Minio рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░реВрдпрд╛. user2bucket рдмрдХреЗрдЯ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ.
рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ user1bucket рдХрд┐рдВрд╡рд╛ user1bucket рдордзреАрд▓ рдлрд╛рдИрд▓реНрд╕ рджрд┐рд╕рдд рдирд╛рд╣реАрдд.
Minio рд╡рд╛рдкрд░реВрди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреЕрдЯ рддрдпрд╛рд░ рдХреЗрд▓реЗ
рд╕реНрддреНрд░реЛрдд: www.habr.com