Menyediakan Minio supaya pengguna hanya boleh bekerja dengan baldinya sendiri

Minio ialah stor objek serasi AWS S3 yang ringkas, pantas. Minio direka untuk mengehoskan data tidak berstruktur seperti foto, video, fail log, sandaran. minio juga menyokong mod teragih, yang menyediakan keupayaan untuk menyambungkan berbilang cakera kepada satu pelayan storan objek, termasuk yang terletak pada mesin yang berbeza.

Tujuan siaran ini adalah untuk mengkonfigurasi minio supaya setiap pengguna boleh bekerja hanya dengan baldinya sendiri.

Secara umum, Minio sesuai untuk kes berikut:

  • storan bukan replikasi di atas sistem fail yang boleh dipercayai dengan akses melalui S3 (storan kecil dan sederhana yang dihoskan pada NAS dan SAN);
  • storan tidak direplikasi di atas sistem fail yang tidak boleh dipercayai dengan akses S3 (untuk pembangunan dan ujian);
  • storan dengan replikasi pada sekumpulan kecil pelayan dalam satu rak dengan akses melalui protokol S3 (storan failover dengan domain kegagalan sama dengan rak).

Pada sistem RedHat kami menyambungkan repositori Minio tidak rasmi.

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

Jana dan tambah pada MINIO_ACCESS_KEY dan MINIO_SECRET_KEY dalam /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=

Jika anda tidak akan menggunakan nginx sebelum Minio, maka anda perlu menukar.

--address 127.0.0.1:9000

pada

--address 0.0.0.0:9000

Mari lancarkan Minio.

systemctl start minio

Kami membuat sambungan ke Minio yang dipanggil myminio.

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

Buat baldi user1bucket.

minio-mc mb myminio/user1bucket

Buat baldi user2bucket.

minio-mc mb myminio/user2bucket

Buat fail dasar 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": ""
    }
  ]
}

Buat fail dasar 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": ""
    }
  ]
}

Cipta pengguna pengguna1 dengan ujian kata laluan12345.

minio-mc admin user add myminio user1 test12345

Cipta pengguna pengguna2 dengan ujian kata laluan54321.

minio-mc admin user add myminio user2 test54321

Kami membuat dasar dalam Minio yang dipanggil user1-policy daripada fail user1-policy.json.

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

Kami membuat dasar dalam Minio yang dipanggil user2-policy daripada fail user2-policy.json.

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

Gunakan dasar dasar pengguna1 kepada pengguna pengguna1.

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

Gunakan dasar dasar pengguna2 kepada pengguna pengguna2.

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

Menyemak sambungan dasar kepada pengguna

minio-mc admin user list myminio

Menyemak sambungan dasar kepada pengguna akan kelihatan seperti ini

enabled    user1                 user1-policy
enabled    user2                 user2-policy

Untuk kejelasan, pergi melalui penyemak imbas ke alamat http://ip-сСрвСра-Π³Π΄Π΅-Π·Π°ΠΏΡƒΡ‰Π΅Π½-minio:9000/minio/

Kami melihat bahawa kami bersambung ke Minio di bawah MINIO_ACCESS_KEY=user1. Baldi user1bucket tersedia untuk kami.

Menyediakan Minio supaya pengguna hanya boleh bekerja dengan baldinya sendiri

Anda tidak boleh membuat baldi kerana tiada Tindakan yang sepadan dalam dasar.

Menyediakan Minio supaya pengguna hanya boleh bekerja dengan baldinya sendiri

Mari buat fail dalam baldi user1bucket.

Menyediakan Minio supaya pengguna hanya boleh bekerja dengan baldinya sendiri

Mari sambung ke Minio di bawah MINIO_ACCESS_KEY=user2. Baldi user2bucket tersedia untuk kami.

Dan kami tidak melihat sama ada user1bucket atau fail daripada user1bucket.

Menyediakan Minio supaya pengguna hanya boleh bekerja dengan baldinya sendiri

Mencipta sembang Telegram menggunakan Minio https://t.me/minio_s3_ru

Sumber: www.habr.com