Configurar Minio para que el usuario solo pueda trabajar con su cubo

Minio es un almacenamiento de objetos simple, rápido y compatible con AWS S3. Minio está diseñado para alojar datos no estructurados como fotos, videos, archivos de registro, copias de seguridad. Minio también admite el modo distribuido, que proporciona la capacidad de conectar varias unidades a objetos en el mismo servidor de almacenamiento, incluidos los ubicados en diferentes máquinas.


El objetivo de esta publicación es configurar minio para que cada usuario solo pueda trabajar con su propio bucket.


En general, Minio es adecuado para los siguientes casos:


  • almacenamiento sin replicación en la parte superior de un sistema de archivos confiable con acceso a través de S3 (almacenamientos pequeños y medianos ubicados en NAS y SAN);
  • almacenamiento sin replicación en la parte superior de un sistema de archivos no confiable con acceso S3 (para desarrollo y prueba);
  • Almacenamiento de replicación en un pequeño grupo de servidores en el mismo rack con acceso S3 (almacenamiento a prueba de fallas con un dominio de falla igual al rack).

En los sistemas RedHat conectamos el repositorio no oficial de Minio.


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

Generamos y agregamos a MINIO_ACCESS_KEY y MINIO_SECRET_KEY en /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 no va a usar nginx antes de Minio, entonces necesita cambiarlo.


--address 127.0.0.1:9000

sobre el


--address 0.0.0.0:9000

Lanzamiento de Minio.


systemctl start minio

Crea una conexión con Minio llamada myminio.


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

Crear 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 .



Cree un archivo en el bucket user1bucket.



Conéctese a Minio en MINIO_ACCESS_KEY = usuario2. Bucket user2bucket está disponible para nosotros.


Y no vemos ni user1bucket ni archivos de user1bucket.



Se creó el chat de Telegram en Minio https://t.me/minio_s3_en


All Articles