Minio je jednoduchý, rychlý a AWS S3 kompatibilní objektový obchod. Minio je navrženo pro hostování nestrukturovaných dat, jako jsou fotografie, videa, soubory protokolu, zálohy. minio také podporuje distribuovaný režim, který poskytuje možnost připojit více disků k jedinému serveru pro ukládání objektů, včetně disků umístěných na různých počítačích.
Účelem tohoto příspěvku je nastavit minio tak, aby každý uživatel mohl pracovat pouze se svým vlastním kýblem.
Obecně je Minio vhodné pro následující případy:
- nereplikační úložiště nad zabezpečeným souborovým systémem s přístupem S3 (malé a střední úložiště hostované na NAS a SAN);
- úložiště bez replikace přes nespolehlivý souborový systém s přístupem přes S3 (pro vývoj a testování);
- úložiště s replikací na malé skupině serverů v jednom racku s přístupem přes protokol S3 (failover storage s chybovou doménou rovnou racku).
Na systémech RedHat připojujeme neoficiální úložiště Minio.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Generujeme a přidáváme do MINIO_ACCESS_KEY a 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=
Pokud nebudete používat nginx před Minio, musíte to změnit.
--address 127.0.0.1:9000
na
--address 0.0.0.0:9000
Spouštíme Minio.
systemctl start minio
Vytvoříme připojení k Minio s názvem myminio.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Vytvořit bucket user1bucket.
minio-mc mb myminio/user1bucket
Vytvořit bucket user2bucket.
minio-mc mb myminio/user2bucket
Vytvořte soubor zásad 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": ""
}
]
}
Vytvořte soubor zásad 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": ""
}
]
}
Vytvořte uživatele user1 s heslem test12345.
minio-mc admin user add myminio user1 test12345
Vytvořte uživatele user2 s heslem test54321.
minio-mc admin user add myminio user2 test54321
Vytvořte v Minio zásadu s názvem user1-policy ze souboru user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Vytvořte v Minio zásadu s názvem user2-policy ze souboru user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
Zásadu user1-policy aplikujeme na uživatele user1.
minio-mc admin policy set myminio user1-policy user=user1
Zásadu user2-policy aplikujeme na uživatele user2.
minio-mc admin policy set myminio user2-policy user=user2
Kontrola připojení politik k uživatelům
minio-mc admin user list myminio
Kontrola připojení politik k uživatelům bude něco takového
enabled user1 user1-policy
enabled user2 user2-policy
Pro přehlednost procházíme prohlížeč na adrese
Vidíme, že jsme se připojili k Minio pod MINIO_ACCESS_KEY=user1. Bucket user1bucket je pro nás k dispozici.
Vytvoření segmentu nebude fungovat, protože v zásadě není žádná odpovídající akce.
Vytvořme soubor v bucket user1bucket.
Připojte se k Minio pod MINIO_ACCESS_KEY=user2. Bucket user2bucket je pro nás k dispozici.
A nevidíme ani user1bucket, ani soubory z user1bucket.
Minio vytvořil telegramový chat
Zdroj: www.habr.com