Minio je enostavna, hitra in s AWS S3 skladna shramba objektov. Minio je zasnovan za shranjevanje nestrukturiranih podatkov, kot so fotografije, videoposnetki, datoteke dnevnikov in varnostne kopije. V Minio je prav tako podprt porazdeljen način (distributed mode), ki omogoča povezovanje enega strežnika za shranjevanje objektov na več diskov, vključno tistih, ki so na različnih napravah.
Namen tega prispevka je nastaviti Minio tako, da lahko vsak uporabnik dela samo s svojim bucketom.
Na splošno je Minio primeren za naslednje primere:
- shramba brez replikacije nad zanesljivim datotečnim sistemom z dostopom prek S3 (majhne in srednje shramba, nameščene na NAS in SAN);
- shramba brez replikacije nad nezanesljivim datotečnim sistemom z dostopom preko S3 (za razvoj in testiranje);
- shramba z replikacijo na manjšem številu strežnikov v eni omari z dostopom preko S3 (odporna shramba z območjem odpovedi, enaka omari).
Na sistemih RedHat povezujemo neoficirni repository Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mcGeneriramo in dodamo v MINIO_ACCESS_KEY in MINIO_SECRET_KEY v /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=Če ne boste uporabljali nginx pred Minio, ga morate spremeniti.
--address 127.0.0.1:9000na
--address 0.0.0.0:9000Zagnamo Minio.
systemctl start minioUstvarimo povezavo do Minio z imenom myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEYUstvarimo bucket user1bucket.
minio-mc mb myminio/user1bucketUstvarimo bucket user2bucket.
minio-mc mb myminio/user2bucketUstvarimo datoteko politike 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": ""
}
]
}Ustvarimo datoteko politike 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": ""
}
]
}Ustvarimo uporabnika user1 s geslom test12345.
minio-mc admin user add myminio user1 test12345Ustvarjamo uporabnika user2 s geslom test54321.
minio-mc admin user add myminio user2 test54321Ustvarjamo politiko v Minio z imenom user1-policy iz datoteke user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.jsonUstvarjamo politiko v Minio z imenom user2-policy iz datoteke user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.jsonUporabljamo politiko user1-policy za uporabnika user1.
minio-mc admin policy set myminio user1-policy user=user1Uporabljamo politiko user2-policy za uporabnika user2.
minio-mc admin policy set myminio user2-policy user=user2Preverjamo povezavo politik z uporabniki
minio-mc admin user list myminioPreverjanje povezave politik z uporabniki bo približno takšno
enabled user1 user1-policy
enabled user2 user2-policyZa preglednost gremo preko brskalnika na naslov
Vidimo, da smo se povezali na Minio z MINIO_ACCESS_KEY=user1. Našemu uporabniku je dostopen bucket user1bucket.

Ustvarjanje bucketa ne bo mogoče, saj v politiki ni ustreznega Action-a.

Ustvarili bomo datoteko v bucketu user1bucket.

Povezali se bomo na Minio z MINIO_ACCESS_KEY=user2. Našemu uporabniku je dostopen bucket user2bucket.
In ne vidimo niti user1bucket niti datotek iz user1bucket.

Ustvaril sem Telegram klepet o Minio
Izvor: habr.com
