Minio бол энгийн, хурдан, AWS S3-тэй нийцтэй объектын дэлгүүр юм. Minio нь зураг, видео, бүртгэлийн файл, нөөцлөлт зэрэг бүтэцгүй өгөгдлийг байршуулах зориулалттай. minio нь тархсан горимыг дэмждэг бөгөөд энэ нь олон дискийг нэг объект хадгалах серверт, тэр дундаа өөр машинууд дээр байрлах серверт холбох боломжийг олгодог.
Энэхүү нийтлэлийн зорилго нь хэрэглэгч бүр зөвхөн өөрийн хувингаар ажиллах боломжтой байхаар minio-г тохируулах явдал юм.
Ерөнхийдөө Minio нь дараахь тохиолдолд тохиромжтой.
- S3-ээр нэвтрэх боломжтой найдвартай файлын системийн дээд талд хуулбарлахгүй хадгалах сан (NAS болон SAN дээр байрлуулсан жижиг болон дунд хэмжээний санах ой);
- S3 хандалттай найдваргүй файлын системийн дээд талд хуулбарлагдаагүй хадгалах сан (хөгжүүлэлт, туршилт хийхэд зориулагдсан);
- S3 протоколоор нэвтрэх боломжтой нэг тавиур дахь жижиг бүлэг серверүүд дээр хуулбарлах бүхий хадгалалт (төлбөртэй тэнцэх бүтэлгүйтлийн домэйн бүхий ачааллын хадгалалт).
RedHat систем дээр бид албан бус Minio репозиторыг холбодог.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
/etc/minio/minio.conf дотор MINIO_ACCESS_KEY болон MINIO_SECRET_KEY-г үүсгэж, нэмнэ үү.
# 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=
Хэрэв та Minio-ээс өмнө nginx ашиглахгүй бол өөрчлөх хэрэгтэй.
--address 127.0.0.1:9000
тухай
--address 0.0.0.0:9000
Minio-г ажиллуулцгаая.
systemctl start minio
Бид Minio-тэй myminio нэртэй холболт үүсгэдэг.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Хувин user1bucket үүсгэ.
minio-mc mb myminio/user1bucket
Хувин user2bucket үүсгэ.
minio-mc mb myminio/user2bucket
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": ""
}
]
}
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": ""
}
]
}
Нууц үг test1 ашиглан хэрэглэгч12345 үүсгэнэ үү.
minio-mc admin user add myminio user1 test12345
Нууц үг test2 ашиглан хэрэглэгч54321 үүсгэнэ үү.
minio-mc admin user add myminio user2 test54321
Бид Minio дээр user1-policy.json файлаас user1-policy нэртэй бодлогыг үүсгэдэг.
minio-mc admin policy add myminio user1-policy user1-policy.json
Бид Minio дээр user2-policy.json файлаас user2-policy нэртэй бодлогыг үүсгэдэг.
minio-mc admin policy add myminio user2-policy user2-policy.json
user1-бодлогын бодлогыг хэрэглэгч user1-д хэрэглээрэй.
minio-mc admin policy set myminio user1-policy user=user1
user2-бодлогын бодлогыг хэрэглэгч user2-д хэрэглээрэй.
minio-mc admin policy set myminio user2-policy user=user2
Хэрэглэгчидтэй бодлогын холболтыг шалгаж байна
minio-mc admin user list myminio
Хэрэглэгчидтэй бодлогын холболтыг шалгах нь иймэрхүү харагдах болно
enabled user1 user1-policy
enabled user2 user2-policy
Тодорхой болгохын тулд хөтөчөөр дамжуулан хаяг руу очно уу
Бид Minio-тэй MINIO_ACCESS_KEY=user1-ээр холбогдсон болохыг харж байна. user1bucket хувин бидэнд бэлэн байна.
Бодлогод тохирох арга хэмжээ байхгүй тул хувин үүсгэх боломжгүй болно.
User1bucket дотор файл үүсгэцгээе.
Minio-д MINIO_ACCESS_KEY=user2-ээр холбогдоцгооё. user2bucket хувин бидэнд бэлэн байна.
Мөн бид user1bucket эсвэл user1bucket-ын файлуудыг харахгүй байна.
Minio ашиглан Telegram чат үүсгэсэн
Эх сурвалж: www.habr.com