Minio është një ruajtje objektesh e thjeshtë, e shpejtë dhe e përputhshme me AWS S3. Minio është krijuar për të ruajtur të dhëna jo-strukturore si fotografi, video, skedarë logu dhe kopje rezervë. Në Minio mbështetet gjithashtu moda e shpërndarë (distributed mode), e cila ofron mundësinë për t'u lidhur me një server ruajtjeje objektesh me shumë disqe, përfshirë edhe ato që ndodhen në makina të ndryshme.
Qëllimi i këtij postimi është të konfigurojë Minio në mënyrë që çdo përdorues të mund të punojë vetëm me bucket-in e tij.
Në përgjithësi, Minio është i përshtatshëm për rastet e mëposhtme:
- ruajtje pa replikim mbi një sistem skedari të besueshëm me qasje përmes S3 (ruajtje të vogla dhe mesatare, të vendosura në NAS dhe SAN);
- ruajtje pa replikim mbi një sistem skedari të pabesueshëm me qasje përmes S3 (për zhvillim dhe testim);
- ruajtje me replikim në një grup të vogël serverash në një raft me qasje përmes protokollit S3 (ruajtje e qëndrueshme me domenin e pranimit të dështimeve të barabarta me rafte).
Në sistemet RedHat, lidhim repositorin jo-official të Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mcGjenerojmë dhe shtojmë në MINIO_ACCESS_KEY dhe 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=Nëse nuk do të përdorni nginx përpara Minio, duhet të ndryshoni.
--address 127.0.0.1:9000në
--address 0.0.0.0:9000Nisemi Minio.
systemctl start minioKrijojmë një lidhje me Minio me emrin myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEYKrijojmë një bucket me emrin user1bucket.
minio-mc mb myminio/user1bucketKrijojmë një bucket me emrin user2bucket.
minio-mc mb myminio/user2bucketKrijojmë një skedar politike me emrin 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": ""
}
]
}Krijojmë një skedar politik me emrin 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": ""
}
]
}Krijojmë një përdorues me emrin user1 dhe fjalëkalimin test12345.
minio-mc admin user add myminio user1 test12345Krijojmë përdoruesin user2 me fjalëkalimin test54321.
minio-mc admin user add myminio user2 test54321Krijojmë një politikë në Minio me emrin user1-policy nga përmbajtja e skedarit user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.jsonKrijojmë një politikë në Minio me emrin user2-policy nga përmbajtja e skedarit user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.jsonE aplikojmë politikën user1-policy në përdoruesin user1.
minio-mc admin policy set myminio user1-policy user=user1E aplikojmë politikën user2-policy në përdoruesin user2.
minio-mc admin policy set myminio user2-policy user=user2Kontrollojmë lidhjen e politikave me përdoruesit.
minio-mc admin user list myminioKontrollimi i lidhjes së politikave me përdoruesit do të duket më ose më pak në këtë mënyrë.
enabled user1 user1-policy
enabled user2 user2-policyPër të qenë më i qartë, hapim nëpërmjet shfletuesit në adresën
Shohim që jemi lidhur me Minio me MINIO_ACCESS_KEY=user1. Për ne është i disponueshëm bucket user1bucket.

Nuk do të mund të krijojmë një bucket, sepse nuk ka përveç 'Action' në politikë.

Do të krijojmë një skedare në bucket user1bucket.

Do të lidhemi me Minio me MINIO_ACCESS_KEY=user2. Për ne është i disponueshëm bucket user2bucket.
Dhe nuk shohim as user1bucket as skedarët nga user1bucket.

Krijova një bisedë Telegram për Minio.
Burimi: habr.com
