Minio ist ein einfacher, schneller und AWS S3-kompatibler Objektspeicher. Minio wurde entwickelt, um unstrukturierte Daten wie Fotos, Videos, Protokolldateien und Backups zu hosten. Minio unterstützt auch den verteilten Modus, mit dem mehrere Laufwerke mit Objekten auf demselben Speicherserver verbunden werden können, einschließlich solcher auf verschiedenen Computern.
Das Ziel dieses Beitrags ist es, minio so zu konfigurieren, dass jeder Benutzer nur mit seinem eigenen Bucket arbeiten kann.
Im Allgemeinen ist Minio für folgende Fälle geeignet:
- replikationsfreier Speicher auf einem zuverlässigen Dateisystem mit Zugriff über S3 (kleine und mittlere Speicher auf NAS und SAN);
- replikationsfreier Speicher auf einem nicht vertrauenswürdigen Dateisystem mit S3-Zugriff (für Entwicklung und Test);
- Replikationsspeicher auf einer kleinen Gruppe von Servern im selben Rack mit S3-Zugriff (ausfallsicherer Speicher mit einer Fehlerdomäne, die dem Rack entspricht).
Auf RedHat-Systemen verbinden wir das inoffizielle Minio-Repository.
yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc
Wir generieren und ergänzen MINIO_ACCESS_KEY und MINIO_SECRET_KEY in /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=
Wenn Sie nginx vor Minio nicht verwenden, müssen Sie Änderungen vornehmen.
--address 127.0.0.1:9000
auf der
--address 0.0.0.0:9000
Starten Sie Minio.
systemctl start minio
Stellen Sie eine Verbindung zu Minio mit dem Namen myminio her.
minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY
MINIO_SECRET_KEY
Erstellen Sie den Bucket user1bucket.
minio-mc mb myminio/user1bucket
bucket 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": ""
}
]
}
user1 test12345.
minio-mc admin user add myminio user1 test12345
user2 test54321.
minio-mc admin user add myminio user2 test54321
Minio user1-policy user1-policy.json.
minio-mc admin policy add myminio user1-policy user1-policy.json
Minio user2-policy user2-policy.json.
minio-mc admin policy add myminio user2-policy user2-policy.json
user1-policy user1.
minio-mc admin policy set myminio user1-policy user=user1
user2-policy 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
http://ip----minio:9000/minio/
Minio MINIO_ACCESS_KEY=user1. bucket user1bucket.

bucket , Action .

Erstellen Sie eine Datei im Bucket user1bucket.

Stellen Sie unter MINIO_ACCESS_KEY = user2 eine Verbindung zu Minio her. Bucket user2bucket steht uns zur Verfügung.
Und wir sehen weder user1bucket noch Dateien von user1bucket.

Telegramm-Chat auf Minio https://t.me/minio_s3_en erstellt