Minio basit, hızlı, AWS S3 uyumlu bir nesne deposudur. Minio, fotoğraf, video, günlük dosyaları, yedeklemeler gibi yapılandırılmamış verileri barındırmak için tasarlanmıştır. minio ayrıca, farklı makinelerde bulunanlar da dahil olmak üzere birden fazla diski tek bir nesne depolama sunucusuna bağlama olanağı sağlayan dağıtılmış modu da destekler.
Bu yazının amacı minio'yu her kullanıcının yalnızca kendi kovasıyla çalışabileceği şekilde yapılandırmaktır.
Genel olarak Minio aşağıdaki durumlar için uygundur:
- S3 (NAS ve SAN'da barındırılan küçük ve orta ölçekli depolama) aracılığıyla erişime sahip güvenilir bir dosya sisteminin üzerinde çoğaltılmayan depolama;
- S3 erişimine sahip, güvenilir olmayan bir dosya sisteminin üzerinde kopyalanmayan depolama (geliştirme ve test için);
- S3 protokolü aracılığıyla erişime sahip tek bir raftaki küçük bir sunucu grubunda çoğaltma ile depolama (rafa eşit bir arıza etki alanına sahip yük devretme depolaması).
RedHat sistemlerinde resmi olmayan Minio deposunu bağlarız.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
/etc/minio/minio.conf dosyasında MINIO_ACCESS_KEY ve MINIO_SECRET_KEY'i oluşturun ve ekleyin.
# 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ğer Minio'dan önce nginx kullanmayacaksanız değiştirmeniz gerekiyor.
--address 127.0.0.1:9000
üzerinde
--address 0.0.0.0:9000
Minio'yu başlatalım.
systemctl start minio
Minio ile myminio adında bir bağlantı oluşturuyoruz.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Bir paket user1bucket oluşturun.
minio-mc mb myminio/user1bucket
Bir paket user2bucket oluşturun.
minio-mc mb myminio/user2bucket
Bir politika dosyası user1-policy.json oluşturun.
{
"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": ""
}
]
}
Bir politika dosyası user2-policy.json oluşturun.
{
"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 parolasıyla bir kullanıcı12345 kullanıcısı oluşturun.
minio-mc admin user add myminio user1 test12345
Test2 parolasıyla bir kullanıcı54321 kullanıcısı oluşturun.
minio-mc admin user add myminio user2 test54321
Minio'da user1-policy.json dosyasından user1-policy adında bir politika oluşturuyoruz.
minio-mc admin policy add myminio user1-policy user1-policy.json
Minio'da user2-policy.json dosyasından user2-policy adında bir politika oluşturuyoruz.
minio-mc admin policy add myminio user2-policy user2-policy.json
Kullanıcı1 politikası ilkesini kullanıcı1 kullanıcısına uygulayın.
minio-mc admin policy set myminio user1-policy user=user1
Kullanıcı2 politikası ilkesini kullanıcı2 kullanıcısına uygulayın.
minio-mc admin policy set myminio user2-policy user=user2
Politikaların kullanıcılarla bağlantısını kontrol etme
minio-mc admin user list myminio
Politikaların kullanıcılarla bağlantısının kontrol edilmesi şuna benzer:
enabled user1 user1-policy
enabled user2 user2-policy
Netlik sağlamak için tarayıcıdan adrese gidin
MINIO_ACCESS_KEY=user1 altında Minio'ya bağlandığımızı görüyoruz. user1bucket kovası bizim için kullanılabilir.
Politikada buna karşılık gelen bir Eylem bulunmadığından paket oluşturmak mümkün olmayacaktır.
user1bucket paketinde bir dosya oluşturalım.
MINIO_ACCESS_KEY=user2 altında Minio'ya bağlanalım. user2bucket kovası bizim için mevcuttur.
Ve user1bucket'i veya user1bucket'teki dosyaları görmüyoruz.
Minio kullanarak bir Telegram sohbeti oluşturuldu
Kaynak: habr.com