Minio on lihtne, kiire ja AWS S3-ga ühilduv objektide salvestus. Minio on loodud struktureerimata andmete, näiteks fotode, videote, logifailide ja varukoopiate salvestamiseks. Minio toetab ka jaotatud režiimi (distributed mode), mis võimaldab ühe objektide salvestamise serveriga ühendada mitmeid kettaid, sealhulgas erinevates masinates.
Selle postituse eesmärk on seadistada Minio nii, et iga kasutaja saaks töötada ainult oma bucketiga.
Üldiselt sobib Minio järgmisteks juhtumiteks:
- salvestus, millel ei ole replikatsiooni usaldusväärse failisüsteemi peal S3 juurdepääsuga (väikesed ja keskmised salvestused, mis on paigutatud NAS-i ja SAN-i);
- salvestus, millel ei ole replikatsiooni usaldusväärse failisüsteemi peal S3 juurdepääsuga (arendamiseks ja testimiseks);
- salvestus replikatsiooniga väikese grupi serverite peal ühes rackis S3 protokolli juurdepääsuga (vigasuskindel salvestus, mille katkestamise domeen on racki tasemel).
RedHat süsteemides ühendame mitteametliku Minio hoidla.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mcGenereerime ja lisame MINIO_ACCESS_KEY ja MINIO_SECRET_KEY faili /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=Kui te ei kasuta nginx'i enne Minio'd, peab see olema muudetud.
--address 127.0.0.1:9000järgnevaga
--address 0.0.0.0:9000Käivitame Minio.
systemctl start minioLoome Minio ühenduse nimega myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEYLoome bucket'i user1bucket.
minio-mc mb myminio/user1bucketLoome bucket'i user2bucket.
minio-mc mb myminio/user2bucketLoome faili poliitika 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": ""
}
]
}Loome faili poliitika 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": ""
}
]
}Loome kasutaja user1 parooliga test12345.
minio-mc admin user add myminio user1 test12345Loome kasutaja user2 parooliga test54321.
minio-mc admin user add myminio user2 test54321Loome Minio-s poliitika nimega user1-policy failist user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.jsonLoome Minio-s poliitika nimega user2-policy failist user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.jsonRakendame poliitika user1-policy kasutajale user1.
minio-mc admin policy set myminio user1-policy user=user1Rakendame poliitika user2-policy kasutajale user2.
minio-mc admin policy set myminio user2-policy user=user2Kontrollime poliitikate rakendamist kasutajatele
minio-mc admin user list myminioPoliitikate rakendamise kontrollimine kasutajatele näeb välja umbes selline
enabled user1 user1-policy
enabled user2 user2-policyKergesti nähtavuse saavutamiseks siseneme brauseriga aadressile
Näeme, et oleme Minio'sse подключitud MINIO_ACCESS_KEY=user1 all. Meile on saadaval bucket user1bucket.

Bucket'i loomine ei õnnestu, kuna vastavat Action politses ei ole.

Loome faili bucket'is user1bucket.

Ühendame Minio'sse MINIO_ACCESS_KEY=user2 all. Meile on saadaval bucket user2bucket.
Ja me ei näe ei user1bucket'i ega faile user1bucket'ist.

Loomin Telegrami chati Minio kohta
Allikas: habr.com
