Minio este un sistem de stocare de obiecte simplu, rapid și compatibil cu AWS S3. Minio a fost creat pentru a stoca date nestructurate, cum ar fi fotografii, videoclipuri, fișiere de jurnal și backup-uri. Minio suportă, de asemenea, un mod distribuit (distributed mode), care permite conectarea mai multor discuri de stocare de obiecte la un singur server, inclusiv discuri situate pe mașini diferite.
Scopul acestui post este să configurăm minio astfel încât fiecare utilizator să poată lucra doar cu bucket-ul său.
În general, Minio este potrivit pentru următoarele situații:
- stocare fără replicare peste un sistem de fișiere fiabil, cu acces prin S3 (pentru stocări mici și medii, găzduite pe NAS și SAN);
- stocare fără replicare peste un sistem de fișiere nesigur, cu acces prin S3 (pentru dezvoltare și testare);
- stocare cu replicare pe un grup mic de servere într-un rack, cu acces prin protocolul S3 (stocare tolerantă la erori cu un domeniu de eșec egal cu rack-ul).
Pe sistemele RedHat, conectăm un repository neoficial Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mcGenerăm și adăugăm în MINIO_ACCESS_KEY și MINIO_SECRET_KEY în /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=Dacă nu veți folosi nginx înainte de Minio, va trebui să modificați.
--address 127.0.0.1:9000pe
--address 0.0.0.0:9000Pornim Minio.
systemctl start minioCreăm o conexiune la Minio denumită myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEYCreăm bucket-ul user1bucket.
minio-mc mb myminio/user1bucketCreăm bucket-ul user2bucket.
minio-mc mb myminio/user2bucketCreăm fișierul de politică 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": ""
}
]
}Creăm fișierul de politică 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": ""
}
]
}Creăm utilizatorul user1 cu parola test12345.
minio-mc admin user add myminio user1 test12345Creăm utilizatorul user2 cu parola test54321.
minio-mc admin user add myminio user2 test54321Creăm o politică în Minio numită user1-policy din fișierul user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.jsonCreăm o politică în Minio numită user2-policy din fișierul user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.jsonAplicăm politica user1-policy utilizatorului user1.
minio-mc admin policy set myminio user1-policy user=user1Aplicăm politica user2-policy utilizatorului user2.
minio-mc admin policy set myminio user2-policy user=user2Verificăm conexiunea politicilor cu utilizatorii
minio-mc admin user list myminioVerificarea conexiunii politicilor cu utilizatorii va arăta oarecum așa
enabled user1 user1-policy
enabled user2 user2-policyPentru claritate, accesăm prin browser la adresa
Vedem că ne-am conectat la Minio cu MINIO_ACCESS_KEY=user1. Bucket-ul user1bucket ne este disponibil.

Nu se va putea crea un bucket, deoarece nu există acțiunea corespunzătoare în politică.

Vom crea un fișier în bucket user1bucket.

Ne vom conecta la Minio cu MINIO_ACCESS_KEY=user2. Bucket-ul user2bucket ne este disponibil.
Iar nu vedem nici user1bucket, nici fișiere din user1bucket.

Am creat un chat pe Telegram despre Minio
Sursa: habr.com
