Minio seadistamine nii, et kasutaja saaks töötada ainult oma ämbriga

Minio on lihtne, kiire AWS S3-ga ühilduv objektipood. Minio on loodud struktureerimata andmete (nt fotod, videod, logifailid, varukoopiad) majutamiseks. minio toetab ka hajutatud režiimi, mis annab võimaluse ühendada mitu ketast ühe objektisalvestusserveriga, sealhulgas need, mis asuvad erinevates masinates.

Selle postituse eesmärk on seadistada minio nii, et iga kasutaja saaks töötada ainult oma ämbriga.

Üldiselt sobib Minio järgmistel juhtudel:

  • replikatsioonivaba salvestusruum usaldusväärse failisüsteemi peal, millele on juurdepääs S3 kaudu (väike ja keskmine salvestusruum, mis on hostitud NAS-is ja SAN-is);
  • replikatsioonita salvestus ebausaldusväärse failisüsteemi peal koos S3 juurdepääsuga (arendamiseks ja testimiseks);
  • salvestus koos replikatsiooniga väikeses serverirühmas ühes riiulis, millele on juurdepääs S3-protokolli kaudu (tõrkesiirdesalvestus, mille rikkedomeen on võrdne püstikuga).

RedHati süsteemides ühendame mitteametliku Minio hoidla.

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

Looge ja lisage failis /etc/minio/minio.conf MINIO_ACCESS_KEY ja MINIO_SECRET_KEY.

# 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=

Kui te ei kasuta nginxi enne Miniot, peate muutma.

--address 127.0.0.1:9000

edasi

--address 0.0.0.0:9000

Käivitame Minio.

systemctl start minio

Loome Minioga ühenduse nimega myminio.

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

Looge ämber user1bucket.

minio-mc mb myminio/user1bucket

Looge ämber user2bucket.

minio-mc mb myminio/user2bucket

Looge poliitikafail 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": ""
    }
  ]
}

Looge poliitikafail 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": ""
    }
  ]
}

Looge kasutaja user1 parooliga test12345.

minio-mc admin user add myminio user1 test12345

Looge kasutaja user2 parooliga test54321.

minio-mc admin user add myminio user2 test54321

Loome Minios poliitika nimega user1-policy failist user1-policy.json.

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

Loome Minios poliitika nimega user2-policy failist user2-policy.json.

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

Rakendage kasutaja kasutaja1 poliitika poliitikat user1.

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

Rakendage kasutaja kasutaja2 poliitika poliitikat user2.

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

Reeglite kasutajatega seotuse kontrollimine

minio-mc admin user list myminio

Reeglite kasutajatega seotuse kontrollimine näeb välja umbes selline

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Selguse huvides minge brauseri kaudu aadressile http://ip-сервера-где-запущен-minio:9000/minio/

Näeme, et ühendasime Minioga MINIO_ACCESS_KEY=user1 all. User1bucket ämber on meile saadaval.

Minio seadistamine nii, et kasutaja saaks töötada ainult oma ämbriga

Salvest pole võimalik luua, kuna poliitikas pole vastavat toimingut.

Minio seadistamine nii, et kasutaja saaks töötada ainult oma ämbriga

Loome faili ämbrisse user1bucket.

Minio seadistamine nii, et kasutaja saaks töötada ainult oma ämbriga

Loome ühenduse Minioga all MINIO_ACCESS_KEY=user2. User2bucket ämber on meile saadaval.

Ja me ei näe ei kasutaja1 ämbrit ega faile kasutaja1 ämbrist.

Minio seadistamine nii, et kasutaja saaks töötada ainult oma ämbriga

Lõi Minio abil Telegrami vestluse https://t.me/minio_s3_ru

Allikas: www.habr.com