Minio on lihtne, kiire ja AWS S3-ga ühilduv objektihoidla lahendus. Minio on loodud mitte-struktureeritud andmete, nagu fotod, videod, logifailid ja varukoopiad, salvestamiseks. Minio toetab ka jaotatud režiimi (distributed mode), mis võimaldab ühendada ühe objektihoidla serveri mitmeid kettaid, sealhulgas erinevatesse masinatesse.
Selle postituse eesmärk on seadistada Minio nõnda, et iga kasutaja saaks töötada ainult enda bucket'iga.
Üldiselt sobib Minio järgmiste juhtumite jaoks:
- hoidla ilma replikatsioonita usaldusväärse failisüsteemi peal, mis toetab S3-iga ligipääsu (väiksed ja keskmised hoidlad, mis on paigutatud NAS-i ja SAN-i);
- hoidla ilma replikatsioonita usaldusväärse failisüsteemi peal, mis toetab S3-iga ligipääsu (arendamiseks ja testimiseks);
- hoidla replikatsiooniga väikeses grupis serverites ühes rack'is, mis toetab S3-protokolli (katkestustaluv hoidla, mille katkestused on tasemel rack).
RedHat süsteemides ühendame mitteformaalset Minio repot.
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 failisse /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't, siis tuleb muuta.
--address 127.0.0.1:9000. Tundub, et
--address 0.0.0.0:9000Käivitame Minio.
systemctl start minioLoome ühenduse Minio'ga 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.
{
"Versioon": "2012-10-17",
"Astatement": [
{
"Tegevus": [
"s3:PutBucketPolicy",
"s3:GetBucketPolicy",
"s3:DeleteBucketPolicy",
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Mõju": "Luba",
"Ressurss": [
"arn:aws:s3:::user2bucket"
],
"Sid": ""
},
{
"Tegevus": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Mõju": "Luba",
"Ressurss": [
"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.jsonKohaldame poliitika user1-policy kasutajale user1.
minio-mc admin policy set myminio user1-policy user=user1Kohaldame poliitika user2-policy kasutajale user2.
minio-mc admin policy set myminio user2-policy user=user2Kontrollime poliitikate rakendust kasutajatele.
minio-mc admin user list myminioPoliitikate rakendamise kontrollimisel võiks olla selline väljund.
enabled user1 user1-policy
enabled user2 user2-policySelguse huvides logime sisse brauseri kaudu aadressil
Näeme, et oleme sisse loginud Miniosse MINIO_ACCESS_KEY=user1 alla. Meile on saadaval bucket user1bucket.

Bucketi loomine ei õnnestu, kuna poliitikas puudub vastav tegevus.

Loome faili bucketis user1bucket.

Logime sisse Miniosse MINIO_ACCESS_KEY=user2 alla. Meile on saadaval bucket user2bucket.
Ja ei näe ei user1bucket’i ega faile user1bucket'ist.

Looming Minio jaoks Telegrami vestlus.
Allikas: habr.com
