Sette opp Minio slik at brukeren kun kan jobbe med sin egen bøtte

Minio er en enkel, rask og AWS S3-kompatibel objektlagringsserver. Minio er designet for å være vert for ustrukturerte data som bilder, videoer, loggfiler og sikkerhetskopier. Minio støtter også distribuert modus, som lar flere disker, inkludert de som ligger på forskjellige maskiner, kobles til en enkelt objektlagringsserver.

Målet med dette innlegget er å konfigurere minio slik at hver bruker kun kan jobbe med sin egen bøtte.

Generelt sett er Minio egnet for følgende tilfeller:

  • ikke-replikert lagring oppå et pålitelig filsystem med S3-tilgang (liten og mellomstor lagring på NAS og SAN);
  • ikke-replikert lagring oppå et upålitelig filsystem med S3-tilgang (for utvikling og testing);
  • lagring med replikering på en liten gruppe servere i ett rack med tilgang via S3-protokollen (feiltolerant lagring med et feildomene lik racket).

På RedHat-systemer kobler vi til det uoffisielle Minio-depotet.

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

Generer og legg til MINIO_ACCESS_KEY og MINIO_SECRET_KEY i /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=

Hvis du ikke skal bruke nginx før Minio, må du endre dette.

--address 127.0.0.1:9000

--address 0.0.0.0:9000

Start Minio.

systemctl start minio

Opprett en forbindelse til Minio kalt myminio.

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

Opprett bøtte bruker1bucket.

minio-mc mb myminio/user1bucket

Opprett bøtte bruker2bucket.

minio-mc mb myminio/user2bucket

Opprett en policyfil med navnet 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": ""
    }
  ]
}

Opprett en policyfil med navnet 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": ""
    }
  ]
}

Opprett bruker bruker1 med passord test12345.

minio-mc admin user add myminio user1 test12345

Opprett bruker bruker2 med passord test54321.

minio-mc admin user add myminio user2 test54321

Opprett en policy i Minio kalt user1-policy fra user1-policy.json-filen.

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

Opprett en policy i Minio kalt user2-policy fra user2-policy.json-filen.

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

Vi bruker bruker1-policy-policyen på brukeren bruker1.

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

Vi bruker bruker2-policy-policyen på brukeren bruker2.

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

Kontrollerer koblingen mellom policyer og brukere

minio-mc admin user list myminio

Å sjekke koblingen mellom policyer og brukere vil se omtrent slik ut

enabled    user1                 user1-policy
enabled    user2                 user2-policy

For klarhetens skyld, gå til adressen via nettleseren http://ip-сервера-где-запущен-minio:9000/minio/

Vi ser at vi har koblet til Minio under MINIO_ACCESS_KEY=user1. User1bucket-bøtta er tilgjengelig for oss.

Sette opp Minio slik at brukeren kun kan jobbe med sin egen bøtte

Det vil ikke være mulig å opprette en bøtte, siden det ikke finnes noen tilsvarende handling i policyen.

Sette opp Minio slik at brukeren kun kan jobbe med sin egen bøtte

La oss opprette en fil i user1bucket-bøtta.

Sette opp Minio slik at brukeren kun kan jobbe med sin egen bøtte

La oss koble til Minio under MINIO_ACCESS_KEY=user2. user2bucket-bøtta er tilgjengelig for oss.

Og vi ser verken bruker1bucket eller filer fra bruker1bucket.

Sette opp Minio slik at brukeren kun kan jobbe med sin egen bøtte

Opprettet Telegram-chat for Minio https://t.me/minio_s3_ru

Kilde: www.habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster