ユーザーが自分のバケットのみで作業できるように Minio を設定する

Minio は、シンプルで高速な、AWS S3 互換のオブジェクト ストレージです。 Minio は、写真、ビデオ、ログ ファイル、バックアップなどの非構造化データをホストするように設計されています。 minio は分散モードもサポートしており、異なるマシン上にあるものも含め、複数のディスクを単一のオブジェクト ストレージ サーバーに接続できます。

この投稿の目的は、各ユーザーが自分のバケットのみで作業できるように minio を構成することです。

一般的に、Minio は次の場合に適しています。

  • S3 アクセスを備えた信頼性の高いファイル システム上の非複製ストレージ (NAS および SAN でホストされる小規模および中規模のストレージ)。
  • S3 アクセスを備えた信頼性の低いファイル システム上の非複製ストレージ (開発およびテスト用)。
  • S3 プロトコル経由でアクセスできる XNUMX つのラック内の少数のサーバーにレプリケーションするストレージ (ラックと同等の障害ドメインを持つフォールト トレラント ストレージ)。

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

myminio という Minio への接続を作成します。

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 を持つユーザー user12345 を作成します。

minio-mc admin user add myminio user1 test12345

パスワード test2 を持つユーザー user54321 を作成します。

minio-mc admin user add myminio user2 test54321

user1-policy.json ファイルから、Minio で user1-policy というポリシーを作成します。

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

user2-policy.json ファイルから、Minio で user2-policy というポリシーを作成します。

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

ユーザー user1 に user1-policy ポリシーを適用します。

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

ユーザー user2 に user2-policy ポリシーを適用します。

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_ACCESS_KEY=user1 で Minio に接続していることがわかります。バケット user1bucket が利用可能です。

ユーザーが自分のバケットのみで作業できるように Minio を設定する

ポリシーに対応するアクションがないため、バケットを作成することはできません。

ユーザーが自分のバケットのみで作業できるように Minio を設定する

user1bucket バケットにファイルを作成しましょう。

ユーザーが自分のバケットのみで作業できるように Minio を設定する

MINIO_ACCESS_KEY=user2 で Minio に接続してみましょう。利用可能な user2bucket バケットがあります。

また、user1bucket も user1bucket のファイルも表示されません。

ユーザーが自分のバケットのみで作業できるように Minio を設定する

Minio の Telegram チャットを作成しました https://t.me/minio_s3_ru

出所: habr.com

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster