Configurant Minio perquè l'usuari només pugui treballar amb el seu propi cub

Minio és una botiga d'objectes senzilla, ràpida i compatible amb AWS S3. Minio està dissenyat per allotjar dades no estructurades com ara fotos, vídeos, fitxers de registre, còpies de seguretat. minio també admet el mode distribuït, que ofereix la possibilitat de connectar diversos discs a un servidor d'emmagatzematge d'objectes, inclosos els que es troben en màquines diferents.

L'objectiu d'aquesta publicació és configurar minio perquè cada usuari pugui treballar només amb el seu propi cub.

En general, Minio és adequat per als casos següents:

  • emmagatzematge sense replicació a la part superior d'un sistema de fitxers fiable amb accés mitjançant S3 (emmagatzematge petit i mitjà allotjat a NAS i SAN);
  • emmagatzematge no replicat a la part superior d'un sistema de fitxers poc fiable amb accés S3 (per al desenvolupament i proves);
  • emmagatzematge amb replicació en un grup reduït de servidors en un bastidor amb accés mitjançant el protocol S3 (emmagatzematge per error amb un domini d'error igual al bastidor).

Als sistemes RedHat connectem el dipòsit no oficial de Minio.

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

Genereu i afegiu a MINIO_ACCESS_KEY i MINIO_SECRET_KEY a /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 utilitzareu nginx abans de Minio, haureu de canviar.

--address 127.0.0.1:9000

en

--address 0.0.0.0:9000

Anem a llançar Minio.

systemctl start minio

Creem una connexió amb Minio anomenada myminio.

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

Creeu un bucket user1bucket.

minio-mc mb myminio/user1bucket

Creeu un bucket user2bucket.

minio-mc mb myminio/user2bucket

Creeu un fitxer de política 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": ""
    }
  ]
}

Creeu un fitxer de política 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": ""
    }
  ]
}

Creeu un usuari user1 amb la contrasenya test12345.

minio-mc admin user add myminio user1 test12345

Creeu un usuari user2 amb la contrasenya test54321.

minio-mc admin user add myminio user2 test54321

Creem una política a Minio anomenada user1-policy a partir del fitxer user1-policy.json.

minio-mc admin policy add myminio user1-policy user1-policy.json

Creem una política a Minio anomenada user2-policy a partir del fitxer user2-policy.json.

minio-mc admin policy add myminio user2-policy user2-policy.json

Apliqueu la política de política d'usuari1 a l'usuari d'usuari1.

minio-mc admin policy set myminio user1-policy user=user1

Apliqueu la política de política d'usuari2 a l'usuari d'usuari2.

minio-mc admin policy set myminio user2-policy user=user2

Comprovació de la connexió de les polítiques amb els usuaris

minio-mc admin user list myminio

Comprovar la connexió de les polítiques amb els usuaris es veurà com aquest

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Per a més claredat, aneu a través del navegador a l'adreça http://ip-сервера-где-запущен-minio:9000/minio/

Veiem que ens hem connectat a Minio a MINIO_ACCESS_KEY=usuari1. El bucket user1bucket està disponible per a nosaltres.

Configurant Minio perquè l'usuari només pugui treballar amb el seu propi cub

No serà possible crear un bucket, ja que no hi ha cap acció corresponent a la política.

Configurant Minio perquè l'usuari només pugui treballar amb el seu propi cub

Creem un fitxer al bucket user1bucket.

Configurant Minio perquè l'usuari només pugui treballar amb el seu propi cub

Connectem-nos al Minio amb MINIO_ACCESS_KEY=usuari2. El bucket user2bucket està disponible per a nosaltres.

I no veiem ni user1bucket ni fitxers de user1bucket.

Configurant Minio perquè l'usuari només pugui treballar amb el seu propi cub

He creat un xat de Telegram amb Minio https://t.me/minio_s3_ru

Font: www.habr.com