Minio este un magazin de obiecte simplu, rapid, compatibil cu AWS S3. Minio este conceput pentru a găzdui date nestructurate, cum ar fi fotografii, videoclipuri, fișiere jurnal, copii de siguranță. minio acceptă, de asemenea, modul distribuit, care oferă posibilitatea de a conecta mai multe discuri la un server de stocare a obiectelor, inclusiv pe cele situate pe diferite mașini.
Scopul acestei postări este de a configura minio astfel încât fiecare utilizator să poată lucra doar cu propria sa găleată.
În general, Minio este potrivit pentru următoarele cazuri:
- stocare fără replicare pe deasupra unui sistem de fișiere fiabil cu acces prin S3 (stocare mică și medie găzduită pe NAS și SAN);
- stocare nereplicată pe deasupra unui sistem de fișiere nesigur cu acces S3 (pentru dezvoltare și testare);
- stocare cu replicare pe un grup mic de servere într-un rack cu acces prin protocolul S3 (stocare de failover cu un domeniu de eroare egal cu rack).
Pe sistemele RedHat conectăm depozitul neoficial Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Generați și adăugați la 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, atunci trebuie să schimbați.
--address 127.0.0.1:9000
pe
--address 0.0.0.0:9000
Să lansăm Minio.
systemctl start minio
Creăm o conexiune la Minio numită myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Creați o găleată user1bucket.
minio-mc mb myminio/user1bucket
Creați o găleată user2bucket.
minio-mc mb myminio/user2bucket
Creați un fișier 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": ""
}
]
}
Creați un fișier 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": ""
}
]
}
Creați un utilizator user1 cu parola test12345.
minio-mc admin user add myminio user1 test12345
Creați un utilizator user2 cu parola test54321.
minio-mc admin user add myminio user2 test54321
Creăm o politică în Minio numită user1-policy din fișierul user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Creăm o politică în Minio numită user2-policy din fișierul user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
Aplicați politica user1-policy utilizatorului user1.
minio-mc admin policy set myminio user1-policy user=user1
Aplicați politica user2-policy utilizatorului user2.
minio-mc admin policy set myminio user2-policy user=user2
Verificarea conexiunii politicilor la utilizatori
minio-mc admin user list myminio
Verificarea conexiunii politicilor la utilizatori va arăta cam așa
enabled user1 user1-policy
enabled user2 user2-policy
Pentru claritate, accesați browserul la adresa
Vedem că ne-am conectat la Minio sub MINIO_ACCESS_KEY=user1. Bucket-ul user1bucket este disponibil pentru noi.
Nu va fi posibil să se creeze o grupă, deoarece nu există nicio acțiune corespunzătoare în politică.
Să creăm un fișier în bucket user1bucket.
Să ne conectăm la Minio sub MINIO_ACCESS_KEY=user2. Bucket-ul user2bucket este disponibil pentru noi.
Și nu vedem nici user1bucket, nici fișierele din user1bucket.
Am creat un chat Telegram folosind Minio
Sursa: www.habr.com