Ҷойгир кардани Minio, то корбар танҳо бо сатили худ кор кунад

Minio як мағозаи объекти оддӣ, зуд ва мувофиқи AWS S3 мебошад. Minio барои ҷойгир кардани маълумотҳои сохторнашуда ба монанди аксҳо, видеоҳо, файлҳои сабт, нусхабардорӣ тарҳрезӣ шудааст. minio инчунин режими тақсимшударо дастгирӣ мекунад, ки қобилияти пайваст кардани дискҳои сершумор ба як сервери нигаҳдории объект, аз ҷумла дискҳои дар мошинҳои гуногун ҷойгиршударо таъмин мекунад.

Мақсади ин мақола танзим кардани minio аст, то ҳар як корбар танҳо бо сатили худ кор кунад.

Умуман, Minio барои ҳолатҳои зерин мувофиқ аст:

  • нигаҳдории такрорӣ дар болои системаи файлии боэътимод бо дастрасӣ тавассути S3 (нигоҳдории хурд ва миёна дар NAS ва SAN ҷойгир шудааст);
  • нигаҳдории такрорнашаванда дар болои системаи файлии беэътимод бо дастрасии S3 (барои таҳия ва озмоиш);
  • нигоҳдорӣ бо такрорӣ дар гурӯҳи хурди серверҳо дар як раф бо дастрасӣ тавассути протоколи S3 (нигаҳдории ноком бо домени нокомӣ ба рек).

Дар системаҳои RedHat мо анбори ғайрирасмии Minio пайваст мекунем.

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

Ба MINIO_ACCESS_KEY ва MINIO_SECRET_KEY дар /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=

Агар шумо пеш аз Minio nginx-ро истифода набаред, пас шумо бояд тағир диҳед.

--address 127.0.0.1:9000

ба

--address 0.0.0.0:9000

Биёед Minio-ро оғоз кунем.

systemctl start minio

Мо ба Minio пайваст месозем, ки myminio ном дорад.

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

Як сатил user1bucket эҷод кунед.

minio-mc mb myminio/user1bucket

Як сатил user2bucket эҷод кунед.

minio-mc mb myminio/user2bucket

Файли сиёсатгузориро 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": ""
    }
  ]
}

Файли сиёсатгузориро 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": ""
    }
  ]
}

Бо гузарвожаи test1 корбар12345 эҷод кунед.

minio-mc admin user add myminio user1 test12345

Бо гузарвожаи test2 корбар54321 эҷод кунед.

minio-mc admin user add myminio user2 test54321

Мо дар Minio сиёсатеро бо номи user1-policy аз файли user1-policy.json эҷод мекунем.

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

Мо дар Minio сиёсатеро бо номи user2-policy аз файли user2-policy.json эҷод мекунем.

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

Сиёсати сиёсати user1-ро ба корбар1 татбиқ кунед.

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

Сиёсати сиёсати user2-ро ба корбар2 татбиқ кунед.

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

Санҷиши пайвасти сиёсатҳо ба корбарон

minio-mc admin user list myminio

Санҷиши пайвасти сиёсатҳо ба корбарон чунин хоҳад буд

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Барои равшанӣ, тавассути браузер ба суроға равед http://ip-сервера-где-запущен-minio:9000/minio/

Мо мебинем, ки мо ба Minio зери MINIO_ACCESS_KEY=user1 пайвастем. Сатили user1bucket барои мо дастрас аст.

Ҷойгир кардани Minio, то корбар танҳо бо сатили худ кор кунад

Эҷоди сатил ғайриимкон аст, зеро дар сиёсат ягон амали мувофиқ вуҷуд надорад.

Ҷойгир кардани Minio, то корбар танҳо бо сатили худ кор кунад

Биёед дар сатил user1bucket файл эҷод кунем.

Ҷойгир кардани Minio, то корбар танҳо бо сатили худ кор кунад

Биёед ба Minio зери MINIO_ACCESS_KEY=user2 пайваст шавем. Сатили user2bucket барои мо дастрас аст.

Ва мо на user1bucket ва на файлҳоро аз user1bucket намебинем.

Ҷойгир кардани Minio, то корбар танҳо бо сатили худ кор кунад

Бо истифода аз Minio чати Telegram таъсис дод https://t.me/minio_s3_ru

Манбаъ: will.com