Configuration de Minio pour que l'utilisateur ne puisse travailler qu'avec son bucket

Minio est un magasin d'objets simple, rapide et conforme à AWS S3. Minio est conçu pour héberger des données non structurées telles que des photos, des vidéos, des fichiers journaux, des sauvegardes. Minio prend également en charge le mode distribué, qui permet de connecter plusieurs lecteurs à des objets sur le même serveur de stockage, y compris ceux situés sur différentes machines.


Le but de cet article est de configurer minio pour que chaque utilisateur ne puisse travailler qu'avec son propre bucket.


En général, Minio convient aux cas suivants:


  • stockage sans réplication au-dessus d'un système de fichiers fiable avec accès via S3 (petits et moyens stockages situés sur NAS et SAN);
  • stockage sans réplication au-dessus d'un système de fichiers non fiable avec accès S3 (pour le développement et les tests);
  • Stockage de réplication sur un petit groupe de serveurs dans le même rack avec accès S3 (stockage à sécurité intégrée avec un domaine de panne égal au rack).

Sur les systèmes RedHat, nous connectons le référentiel non officiel Minio.


yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio minio-mc

Nous générons et ajoutons à MINIO_ACCESS_KEY et MINIO_SECRET_KEY dans /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=

Si vous n'utilisez pas nginx avant Minio, vous devez changer.


--address 127.0.0.1:9000

sur le


--address 0.0.0.0:9000

Lancez Minio.


systemctl start minio

Créez une connexion à Minio appelée myminio.


minio-mc config host add myminio http://localhost:9000 MINIO_ACCESS_KEY 
MINIO_SECRET_KEY

Créez le 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 .



Créez un fichier dans le compartiment user1bucket.



Connectez-vous à Minio sous MINIO_ACCESS_KEY = user2. Bucket user2bucket est disponible pour nous.


Et nous ne voyons ni user1bucket ni les fichiers de user1bucket.



Création du chat Telegram sur Minio https://t.me/minio_s3_en


All Articles