Minio to prosty, szybki magazyn obiektów zgodny z AWS S3. Minio jest przeznaczony do przechowywania nieustrukturyzowanych danych, takich jak zdjęcia, filmy, pliki dziennika i kopie zapasowe. minio obsługuje także tryb rozproszony, który zapewnia możliwość podłączenia wielu dysków do jednego serwera obiektowego, w tym także tych znajdujących się na różnych maszynach.
Celem tego wpisu jest skonfigurowanie minio tak, aby każdy użytkownik mógł pracować wyłącznie z własnym wiadrem.
Ogólnie Minio nadaje się do następujących przypadków:
- pamięć masowa bez replikacji na niezawodnym systemie plików z dostępem przez S3 (mała i średnia pamięć masowa hostowana na NAS i SAN);
- niereplikowana pamięć na zawodnym systemie plików z dostępem S3 (w celach programistycznych i testowych);
- magazyn z replikacją na małej grupie serwerów w jednym stojaku z dostępem poprzez protokół S3 (magazyn awaryjny z domeną awarii równą stojakowi).
Na systemach RedHat podłączamy nieoficjalne repozytorium Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Wygeneruj i dodaj do MINIO_ACCESS_KEY i MINIO_SECRET_KEY w pliku /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=
Jeśli nie będziesz używać Nginx przed Minio, musisz to zmienić.
--address 127.0.0.1:9000
na
--address 0.0.0.0:9000
Uruchommy Minio.
systemctl start minio
Tworzymy połączenie z Minio o nazwie myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Utwórz wiadro user1bucket.
minio-mc mb myminio/user1bucket
Utwórz wiadro user2bucket.
minio-mc mb myminio/user2bucket
Utwórz plik zasad 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": ""
}
]
}
Utwórz plik zasad 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": ""
}
]
}
Utwórz użytkownika user1 z hasłem test12345.
minio-mc admin user add myminio user1 test12345
Utwórz użytkownika user2 z hasłem test54321.
minio-mc admin user add myminio user2 test54321
Tworzymy w Minio politykę o nazwie user1-policy z pliku user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Tworzymy w Minio politykę o nazwie user2-policy z pliku user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
Zastosuj politykę użytkownika1 do użytkownika user1.
minio-mc admin policy set myminio user1-policy user=user1
Zastosuj politykę użytkownika2 do użytkownika user2.
minio-mc admin policy set myminio user2-policy user=user2
Sprawdzanie powiązania polityk z użytkownikami
minio-mc admin user list myminio
Sprawdzanie powiązania polityk z użytkownikami będzie wyglądać mniej więcej tak
enabled user1 user1-policy
enabled user2 user2-policy
Dla przejrzystości przejdź przez przeglądarkę do adresu
Widzimy, że połączyliśmy się z Minio pod MINIO_ACCESS_KEY=user1. Dostępny jest dla nas wiadro user1bucket.
Utworzenie zasobnika nie będzie możliwe, ponieważ w profilu nie ma odpowiadającej mu akcji.
Utwórzmy plik w zasobniku user1bucket.
Połączmy się z Minio pod MINIO_ACCESS_KEY=user2. Dostępny jest dla nas wiadro user2bucket.
Nie widzimy ani user1bucket, ani plików z user1bucket.
Utworzono czat na Telegramie za pomocą Minio
Źródło: www.habr.com