Richten Sie Minio so ein, dass der Benutzer nur mit seinem Eimer arbeiten kann

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


All Articles