Configurazione di Minio per chì l'utilizatore pò travaglià solu cù u so propiu bucket

Minio hè un magazinu d'oggetti simplice, veloce, cumpatibile cù AWS S3. Minio hè pensatu per accoglie dati micca strutturati cum'è foto, video, schedarii di log, backups. minio supporta ancu u modu distribuitu, chì furnisce a capacità di cunnette parechji dischi à un servitore di almacenamiento d'ughjettu, cumprese quelli situati in diverse macchine.

U scopu di questu post hè di cunfigurà minio per chì ogni utilizatore pò travaglià solu cù u so propiu bucket.

In generale, Minio hè adattatu per i seguenti casi:

  • almacenamentu senza replicazione in cima à un sistema di fugliale affidabile cù accessu via S3 (almacenamiento chjucu è mediu ospitu in NAS è SAN);
  • almacenamentu micca replicatu nantu à un sistema di fugliale inaffidabile cù accessu S3 (per u sviluppu è a prova);
  • almacenamiento cù replicazione in un picculu gruppu di servitori in un rack cù accessu via u protokollu S3 (almacenamiento failover cù un duminiu di fallimentu uguale à u rack).

Nantu à i sistemi RedHat, cunnettamu u repository Minio non ufficiale.

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

Generate è aghjunghje à MINIO_ACCESS_KEY è 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=

Se ùn avete micca aduprà nginx prima di Minio, allora avete bisognu di cambià.

--address 127.0.0.1:9000

nantu

--address 0.0.0.0:9000

Lancemu Minio.

systemctl start minio

Creemu una cunnessione à Minio chjamata myminio.

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

Crea un bucket user1bucket.

minio-mc mb myminio/user1bucket

Crea un bucket user2bucket.

minio-mc mb myminio/user2bucket

Crea un schedariu di pulitica 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": ""
    }
  ]
}

Crea un schedariu di pulitica 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": ""
    }
  ]
}

Crea un utilizatore user1 cù a password test12345.

minio-mc admin user add myminio user1 test12345

Crea un utilizatore user2 cù a password test54321.

minio-mc admin user add myminio user2 test54321

Creemu una pulitica in Minio chjamata user1-policy da u schedariu user1-policy.json.

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

Creemu una pulitica in Minio chjamata user2-policy da u schedariu user2-policy.json.

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

Applicà a pulitica di l'usu 1 à l'utilizatori 1.

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

Applicà a pulitica di l'usu 2 à l'utilizatori 2.

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

Verificate a cunnessione di e pulitiche à l'utilizatori

minio-mc admin user list myminio

A verificazione di a cunnessione di e pulitiche à l'utilizatori parerà qualcosa cusì

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Per a chjarità, andate à traversu u navigatore à l'indirizzu http://ip-сервера-где-запущен-minio:9000/minio/

Avemu vistu chì avemu cunnessu à Minio sottu MINIO_ACCESS_KEY = user1. U bucket user1bucket hè dispunibule per noi.

Configurazione di Minio per chì l'utilizatore pò travaglià solu cù u so propiu bucket

Ùn serà micca pussibule di creà un bucket, postu chì ùn ci hè micca Azzione currispundente in a pulitica.

Configurazione di Minio per chì l'utilizatore pò travaglià solu cù u so propiu bucket

Creemu un schedariu in u bucket user1bucket.

Configurazione di Minio per chì l'utilizatore pò travaglià solu cù u so propiu bucket

Cunnetteremu à Minio sottu MINIO_ACCESS_KEY=user2. U bucket user2bucket hè dispunibule per noi.

È ùn vedemu nè user1bucket nè schedari da user1bucket.

Configurazione di Minio per chì l'utilizatore pò travaglià solu cù u so propiu bucket

Criatu un chat Telegram cù Minio https://t.me/minio_s3_ru

Source: www.habr.com