Agordi Minion por ke la uzanto nur povu labori per sia propra sitelo

Minio estas simpla, rapida, kongrua objektobutiko de AWS S3. Minio estas desegnita por gastigi nestrukturitajn datumojn kiel fotojn, filmetojn, protokolojn, sekurkopiojn. minio ankaŭ subtenas distribuitan reĝimon, kiu disponigas la kapablon ligi plurajn diskojn al unu objekta stokadservilo, inkluzive de tiuj situantaj sur malsamaj maŝinoj.

La celo de ĉi tiu afiŝo estas agordi minion por ke ĉiu uzanto povu labori nur per sia propra sitelo.

Ĝenerale, Minio taŭgas por la sekvaj kazoj:

  • ne-replika stokado aldone al fidinda dosiersistemo kun aliro per S3 (malgranda kaj meza stokado gastigita en NAS kaj SAN);
  • ne-replikita stokado aldone al nefidinda dosiersistemo kun S3-aliro (por disvolviĝo kaj testado);
  • stokado kun reproduktado sur grupeto de serviloj en unu rako kun aliro per la S3-protokolo (malsukcesa stokado kun malsukcesa domajno egala al la rako).

En RedHat-sistemoj ni konektas la neoficialan deponejon de Minio.

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

Generu kaj aldonu al MINIO_ACCESS_KEY kaj MINIO_SECRET_KEY en /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 vi ne uzos nginx antaŭ Minio, tiam vi devas ŝanĝi.

--address 127.0.0.1:9000

sur

--address 0.0.0.0:9000

Ni lanĉu Minion.

systemctl start minio

Ni kreas konekton al Minio nomata myminio.

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

Kreu sitelon user1bucket.

minio-mc mb myminio/user1bucket

Kreu sitelon user2bucket.

minio-mc mb myminio/user2bucket

Kreu politikan dosieron 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": ""
    }
  ]
}

Kreu politikan dosieron 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": ""
    }
  ]
}

Kreu uzanton1 kun la pasvorto test12345.

minio-mc admin user add myminio user1 test12345

Kreu uzanton2 kun la pasvorto test54321.

minio-mc admin user add myminio user2 test54321

Ni kreas politikon en Minio nomatan user1-policy el la dosiero user1-policy.json.

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

Ni kreas politikon en Minio nomatan user2-policy el la dosiero user2-policy.json.

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

Apliki la uzanto1-politikan politikon al la uzanto-uzanto1.

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

Apliki la uzanto2-politikan politikon al la uzanto-uzanto2.

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

Kontrolante la konekton de politikoj al uzantoj

minio-mc admin user list myminio

Kontroli la konekton de politikoj al uzantoj aspektos kiel ĉi tio

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Por klareco, iru tra la retumilo al la adreso http://ip-сервера-где-запущен-minio:9000/minio/

Ni vidas, ke ni konektis al Minio sub MINIO_ACCESS_KEY=uzanto1. La sitelo user1bucket disponeblas por ni.

Agordi Minion por ke la uzanto nur povu labori per sia propra sitelo

Ne eblos krei sitelon, ĉar ne estas responda Ago en la politiko.

Agordi Minion por ke la uzanto nur povu labori per sia propra sitelo

Ni kreu dosieron en la sitelo user1bucket.

Agordi Minion por ke la uzanto nur povu labori per sia propra sitelo

Ni konektu al Minio sub MINIO_ACCESS_KEY=uzanto2. La sitelo user2bucket disponeblas por ni.

Kaj ni ne vidas nek user1bucket nek dosierojn de user1bucket.

Agordi Minion por ke la uzanto nur povu labori per sia propra sitelo

Kreis Telegram-babilejon per Minio https://t.me/minio_s3_ru

fonto: www.habr.com