Minio je jednostavna, brza, AWS S3 kompatibilna trgovina objektima. Minio je dizajniran za smještaj nestrukturiranih podataka kao što su fotografije, video zapisi, log datoteke, sigurnosne kopije. minio također podržava distribuirani način rada, koji pruža mogućnost povezivanja više diskova na jedan poslužitelj za pohranu objekata, uključujući one koji se nalaze na različitim strojevima.
Svrha ovog posta je konfigurirati minio tako da svaki korisnik može raditi samo sa svojom kantom.
Općenito, Minio je prikladan za sljedeće slučajeve:
- pohrana bez replikacije povrh pouzdanog datotečnog sustava s pristupom putem S3 (mala i srednja pohrana smještena na NAS i SAN);
- nereplicirana pohrana na vrhu nepouzdanog datotečnog sustava sa S3 pristupom (za razvoj i testiranje);
- pohrana s replikacijom na maloj grupi poslužitelja u jednom rack-u s pristupom preko S3 protokola (failover storage with a failure domain equal to rack).
Na RedHat sustavima povezujemo neslužbeni Minio repozitorij.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Generirajte i dodajte u MINIO_ACCESS_KEY i MINIO_SECRET_KEY u /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=
Ako nećete koristiti nginx prije Minia, onda morate promijeniti.
--address 127.0.0.1:9000
na
--address 0.0.0.0:9000
Pokrenimo Minio.
systemctl start minio
Stvaramo vezu s Miniom pod nazivom myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Stvorite kantu user1bucket.
minio-mc mb myminio/user1bucket
Stvorite kantu user2bucket.
minio-mc mb myminio/user2bucket
Stvorite datoteku pravila 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": ""
}
]
}
Stvorite datoteku pravila 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": ""
}
]
}
Stvorite korisnika user1 s lozinkom test12345.
minio-mc admin user add myminio user1 test12345
Stvorite korisnika user2 s lozinkom test54321.
minio-mc admin user add myminio user2 test54321
Pravilo u Miniju stvaramo pod nazivom user1-policy iz datoteke user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Pravilo u Miniju stvaramo pod nazivom user2-policy iz datoteke user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
Primijenite politiku user1-policy na korisnika user1.
minio-mc admin policy set myminio user1-policy user=user1
Primijenite politiku user2-policy na korisnika user2.
minio-mc admin policy set myminio user2-policy user=user2
Provjera povezanosti politika s korisnicima
minio-mc admin user list myminio
Provjera povezanosti pravila s korisnicima izgledat će otprilike ovako
enabled user1 user1-policy
enabled user2 user2-policy
Radi jasnoće, idite kroz preglednik na adresu
Vidimo da smo se povezali s Miniom pod MINIO_ACCESS_KEY=user1. Kanta user1bucket dostupna nam je.
Neće biti moguće stvoriti kantu jer ne postoji odgovarajuća radnja u politici.
Kreirajmo datoteku u spremniku user1bucket.
Povežimo se na Minio pod MINIO_ACCESS_KEY=user2. Kanta user2bucket dostupna nam je.
I ne vidimo ni user1bucket ni datoteke iz user1bucket.
Kreirao je Telegram chat koristeći Minio
Izvor: www.habr.com