Konfigurimi i Minio në mënyrë që përdoruesi të mund të punojë vetëm me kovën e tij

Minio është një dyqan i thjeshtë, i shpejtë, i pajtueshëm me AWS S3. Minio është krijuar për të pritur të dhëna të pastrukturuara si foto, video, skedarë regjistrash, kopje rezervë. Minio gjithashtu mbështet modalitetin e shpërndarë, i cili siguron mundësinë për të lidhur disqe të shumta me një server të ruajtjes së objekteve, duke përfshirë ato të vendosura në makina të ndryshme.

Qëllimi i këtij postimi është të konfigurojë minio në mënyrë që çdo përdorues të mund të punojë vetëm me kovën e tij.

Në përgjithësi, Minio është i përshtatshëm për rastet e mëposhtme:

  • ruajtja pa riprodhim në krye të një sistemi skedarësh të besueshëm me akses nëpërmjet S3 (ruajtje e vogël dhe e mesme e pritur në NAS dhe SAN);
  • ruajtje jo e përsëritur në krye të një sistemi skedarësh jo të besueshëm me akses S3 (për zhvillim dhe testim);
  • ruajtje me replikim në një grup të vogël serverësh në një raft me akses nëpërmjet protokollit S3 (ruajtje e dështimit me një domen dështimi të barabartë me raftin).

Në sistemet RedHat ne lidhim depon jozyrtare Minio.

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

Krijo dhe shto te MINIO_ACCESS_KEY dhe MINIO_SECRET_KEY në /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=

Nëse nuk do të përdorni nginx përpara Minio, atëherë duhet të ndryshoni.

--address 127.0.0.1:9000

mbi

--address 0.0.0.0:9000

Le të hapim Minio.

systemctl start minio

Ne krijojmë një lidhje me Minio të quajtur myminio.

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

Krijo një kovë user1bucket.

minio-mc mb myminio/user1bucket

Krijo një kovë user2bucket.

minio-mc mb myminio/user2bucket

Krijo një skedar politikash 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": ""
    }
  ]
}

Krijo një skedar politikash 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": ""
    }
  ]
}

Krijo një përdorues përdorues1 me fjalëkalimin test12345.

minio-mc admin user add myminio user1 test12345

Krijo një përdorues përdorues2 me fjalëkalimin test54321.

minio-mc admin user add myminio user2 test54321

Ne krijojmë një politikë në Minio të quajtur user1-policy nga skedari user1-policy.json.

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

Ne krijojmë një politikë në Minio të quajtur user2-policy nga skedari user2-policy.json.

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

Zbato politikën e politikës së përdoruesit1 për përdoruesin1.

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

Zbato politikën e politikës së përdoruesit2 për përdoruesin2.

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

Kontrollimi i lidhjes së politikave me përdoruesit

minio-mc admin user list myminio

Kontrollimi i lidhjes së politikave me përdoruesit do të duket diçka si kjo

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Për qartësi, kaloni përmes shfletuesit në adresën http://ip-сервера-где-запущен-minio:9000/minio/

Ne shohim se jemi lidhur me Minio nën MINIO_ACCESS_KEY=user1. Kova user1bucket është e disponueshme për ne.

Konfigurimi i Minio në mënyrë që përdoruesi të mund të punojë vetëm me kovën e tij

Nuk do të jetë e mundur të krijohet një kovë, pasi nuk ka Veprim përkatës në politikë.

Konfigurimi i Minio në mënyrë që përdoruesi të mund të punojë vetëm me kovën e tij

Le të krijojmë një skedar në kovë user1bucket.

Konfigurimi i Minio në mënyrë që përdoruesi të mund të punojë vetëm me kovën e tij

Le të lidhemi me Minio nën MINIO_ACCESS_KEY=user2. Kova user2bucket është në dispozicion për ne.

Dhe ne nuk shohim as user1bucket, as skedarë nga user1bucket.

Konfigurimi i Minio në mënyrë që përdoruesi të mund të punojë vetëm me kovën e tij

Krijoi një bisedë Telegram duke përdorur Minio https://t.me/minio_s3_ru

Burimi: www.habr.com