[MinIO]mcで複数ユーザーを一括で作成する方法

[MinIO]mcで複数ユーザーを一括で作成する方法

Clock Icon2022.11.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

  • t_o_dと申します。
  • ローカル上に構築するS3互換ストレージとしてMinIOを利用しています。
  • MinIOではストレージ機能の他にユーザーやグループ作成機能があり、またそれをmcというクライアントツールでCLIで操作することも可能です。
  • そこで今回はmcを利用してユーザー一覧ファイルから複数ユーザーを一括で作成する方法を記録いたします。

環境

  • mac OS Monterey 13.0
  • Docker 20.10.17
  • Docker Compose 2.11.1

準備

対象ストレージの用意

  • 操作対象となるMinIOを用意してください。
  • 用意できたら対象MinIOサーバーにアクセス(例ではlocalhost:9000)して、以下のようにユーザーがまだいないことを確認します。

mcのインストール及び接続設定

  • MinIOクライアントツールのmcを用意してください。
  • 用意できたら以下のコマンドでmc接続設定を確認してください。
    • ※今回の例ではエイリアス名を「myminio」で設定したMinIOサーバーを利用します。
# 確認
mc alias list

myminio
  URL       : http://host.docker.internal:9000
  ***************************
  • 適切に設定できたら準備は以上です。

手順

ユーザー一覧ファイル作成

  • 今回は10人分のユーザーを作成することにします。
  • そのため以下のコマンドで10人分の「ユーザー名・パスワード」の情報を持ったダミーユーザーファイルを作成します。
    • ファイル名 : 「users」
# ダミーユーザーファイル作成
cat /dev/urandom | base64 | fold -w 20 | head -n10 | awk '{print "user_" NR,$1}' > users

# 中身確認
cat users

user_1 xxxxxx
user_2 xxxxxx
user_3 xxxxxx
********

mcでのユーザー作成

  • ファイル作成後、そのファイルを元にmcで複数ユーザーを作成します。
  • まずmcでユーザーを新規作成する場合は以下の形式です。
    • ※デフォルトではアクセスのみでポリシーは何も設定されていません。
# 引数形式
mc admin user add エイリアス名 ユーザー名 パスワード

# 対話式
mc admin user add エイリアス名

# 標準入力
echo -e "ユーザー名\nパスワード" | mc admin user add エイリアス名
  • なので以下のコマンドをうち、ループで逐次mcでのユーザー作成処理を行います。
cat users | while read -r line; do mc admin user add myminio $line; done

Added user `user_1` successfully.
Added user `user_2` successfully.
*****
  • 実行後、管理者でMinIOにアクセスしてユーザーが作成されているか確認します。

  • 確認できたらサインアウトして、作成されたユーザー情報でログインができるか確認します。
    • ※以下では例として「users」ファイルに記載の「user_10」の情報でログインしています。

  • 正常にログインできれば完了です。

まとめ

  • MinIOでは様々な機能が存在しており、またmcでも操作できるのが利点です。
  • 今後も他の機能を調査して活用していきたいと思います。

参考

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.