MinIO 自身の答えは Web コンソールとコマンドライン
MinIO は自分で管理するハードウェアの上に S3 のセマンティクスを用意してくれます。だから CI の成果物、バックアップ、データセット、外に出せないものが集まります。付属するツールはブラウザのコンソールと、コマンドラインの mc。どちらも良いものですが、どちらも「他のストレージと並べて使えるデスクトップのファイルマネージャー」ではありません。
AnyStorage が埋めるのはそこです。MinIO のエンドポイントを指定すれば、macOS・Windows・Linux で bucket がフォルダとして開き、アップロード、ダウンロード、リネーム、削除、署名付きリンクが他の接続と同じウィンドウに並びます。
以下の事実は 2026 年 9 月に MinIO のドキュメントで確認したものです。ドキュメント自体がよく動くので 1 つだけ補足すると、現在は docs.min.io に AIStor のブランドで置かれ、オープンソース版のページは community/minio-object-store 以下にあります。
ポートと、もう一つのポート
MinIO のサーバーリファレンスには、--address を省略した場合 "binds to port 9000 on all configured IPv4 addresses, IPv6 addresses, and hostnames on the host machine" と書かれています。つまり誰かが変更していなければ、S3 API のエンドポイントは http://HOST:9000 です。
間違えやすいのはコンソール側です。ドキュメントによれば MinIO は "by default, selects a random port for the Console UI on each server startup"、明示するには --console-address か MINIO_CONSOLE_ADDRESS を使います。そして掲載されている例が ./minio server /mnt/data --console-address ":9001"。9001 という数字が広まったのはこの例が理由で、既定値ではなく慣習です。クライアントが向くのは 9000、9001 はブラウザ UI で S3 のリクエストには答えません。
4 つの項目と、決定的な 1 つのスイッチ
mc のエイリアスとデスクトップの接続は、同じ情報を持ちます。MinIO はエイリアスを "the name to associate to the S3-compatible service" と説明し、mc alias set ALIAS URL ACCESSKEY SECRETKEY で作ります。シークレットキーは最低 8 文字、--api の既定は S3v4(署名 V2 は "considered deprecated by AWS")です。
sh
# mc がエイリアスとして保持する情報
mc alias set myminio http://192.168.1.10:9000 minioadmin minioadmin
# AnyStorage 側も同じ 4 つ。接続を追加して
# S3 互換を選び、次を入力する
# エンドポイント http://192.168.1.10:9000
# アクセスキー minioadmin
# シークレットキー minioadmin
# path-style オンpath-style は任意ではありません。 コア設定のドキュメントは MINIO_DOMAIN についてはっきり書いています。この設定は "enables Virtual Host-style requests to the MinIO AIStor deployment"、そして "omitting this setting directs MinIO AIStor to only accept the default path-style requests"。管理者がドメインを設定していない限り bucket.host/key は拒否され、通るのは host/bucket/key だけです。Amazon S3 では正しい仮想ホスト形式を既定にしているクライアントは、素の MinIO に対して名前解決エラーや署名エラーを返します。どちらのメッセージも「path-style を有効にしろ」とは言ってくれません。両方を受け付ける Cloudflare R2 とは対照的です。
リージョンは「合わせる」ものです。 MinIO は MINIO_SITE_REGION を文書化していて(例は mc admin config set ALIAS site region="us-east-1")、用途はサイトレプリケーションの設定と説明されています。万能の既定値は公開されていません。リージョンは SigV4 の資格情報スコープに含まれるため、サーバー側と食い違うと「リージョンが違う」ではなく署名エラーとして現れます。空欄か us-east-1 にしておき、運用側が指定しているなら同じ文字列をそのまま入れてください。続きは MinIO の SignatureDoesNotMatch にまとめています。
TLS と、自己署名証明書の代償
MinIO は既定で $HOME/.minio/certs から PEM 形式の public.crt と private.key を読み、--certs-dir で場所を変えられます。ドキュメントは "self-signed, internal or private certificate authorities (CAs), [and] third-party CAs" に対応すると書いています。信頼はディレクトリで表現され、CA ファイルは CAs/ サブディレクトリに置きます("MinIO AIStor reads all top-level files in the CAs/ directory and adds valid X.509 PEM certificates to the trusted root CA pool")。
クライアント側に出るエラー文字列は覚えておく価値があります。MinIO の TLS トラブルシューティングページが列挙しているのは x509: certificate signed by unknown authority、x509: certificate has expired or is not yet valid、x509: certificate is valid for X, not Y、tls: bad certificate です。
mc の逃げ道は文書化されていて、同時に推奨されていません。--insecure あるいは MC_INSECURE=true は "disable SSL certificate verification"、つまりテスト用です。MinIO が勧める恒久策は、自己署名を配り続けるのではなく CA からノード証明書を発行し、その CA を CAs/ に置くこと。デスクトップクライアントでも同じ話が一段上で成り立ちます。その CA をマシンのトラストストアに取り込めば、デスクトップアプリはそこを見るので、https:// のエンドポイントがまとめて通るようになります。
バージョニング、オブジェクトロック、暗号化をクライアント側から見る
いずれもサーバー側の設定ですが、GUI の見え方を変えます。
- バージョニングは bucket 単位で、後から停止(suspend)もできます。バージョン ID を指定しない
DELETEは "creates a 0-byteDeleteMarkeras the latest version of that object"、つまり一覧から消えても容量は残ります。完全に消すにはバージョン ID を指定します。 - オブジェクトロックにはバージョニングが前提です("bucket versioning is a prerequisite for configuring object locking and retention rules")。ドキュメントは "must enable object locking during bucket creation as per S3 behavior" と書いていますが、最近の例外が 1 つあります。リリース
RELEASE.2025-05-20T20-30-00Z以降はmc retention set --defaultで既存 bucket にも既定の保持ルールを設定できます。 - 保持モードは「誰が勝てるか」を決めます。GOVERNANCE は
s3:BypassGovernanceRetentionを持つユーザーだけがロックされたオブジェクトを変更でき、COMPLIANCE は root を含むすべてのユーザーが期間満了まで変更できません。リーガルホールドは無期限で、保持ルールとは独立です。 - 暗号化は SSE-KMS と SSE-S3 が外部キーマネージャーを必要とし、SSE-C は "requires a TLS/HTTPS-enabled deployment"(鍵をリクエストヘッダーで送るため)です。
実務的にはこう読めます。どのクライアントで削除してもバージョン一覧にオブジェクトが残るなら、それはバージョニングが正しく効いている状態です。削除そのものが失敗するなら、アプリを疑う前に保持ルールを確認してください。COMPLIANCE モードならどのクライアントでも覆せません。
MinIO 向けツールの比較
| ツール | デスクトップ GUI | 複数サーバーを同時に | ドライブとしてマウント | Linux | 価格 |
|---|---|---|---|---|---|
| AnyStorage | あり | あり(S3・R2・B2・WebDAV・SFTP も同時に) | あり(ローカル WebDAV、ドライバ不要) | あり(AppImage と .deb) | 無料プランと有料 Pro |
| MinIO Console | なし(ブラウザ UI) | なし(1 コンソール 1 デプロイ) | なし | ブラウザのみ | サーバー同梱 |
| mc | なし(コマンドライン) | あり(1 サーバー 1 エイリアス) | なし | あり | 無料・オープンソース |
| Cyberduck | あり | あり(多プロトコル) | なし | なし | 無料・オープンソース |
| rclone | なし(コマンドライン) | あり(多バックエンド) | あり(FUSE または WinFsp が必要) | あり | 無料・オープンソース |
順位ではなくトレードオフとして読んでください。
- コンソールはデプロイの管理(ユーザー、ポリシー、レプリケーション、保持設定)に向いた場所です。ただし 1 デプロイ 1 タブで、ポートはランダムなことがあります。
- mc はスクリプト化できるものすべてで勝ちます。
mc mirror、mc rm --recursive、cron、CI。GUI のエラーメッセージが上品すぎて役に立たないときに使う道具でもあります。 - Cyberduck は S3 プロトコル経由で MinIO を扱える堅実な無料ブラウザで、マウントはできず Linux 版もありません。rclone は最も強力で最も手間がかかり、
rclone mountには FUSE か WinFsp の導入と--vfs-cache-modeの判断が必要です。 - AnyStorage はファイルマネージャーの層です。複数の MinIO サーバーをクラウドの bucket と並べて開き、必要ならドライバ不要のマウントを足せます。
macOS・Windows・Linux から接続する
0.2.25 は 2026 年 9 月 23 日公開で、対応環境は macOS 11 以降、Windows 10 以降、Ubuntu 20.04 以降。サーバーに到達できるマシンなら同じ接続がそのまま使えます。Mac なら brew install --cask kilerd/tap/anystorage。パッケージは macOS のページと Linux のページ、プロトコル全般は S3 クライアント(GUI)の概要にあります。認証情報は暗号化してローカルに保存され、アカウント登録は不要、無料プランは接続 2 つまでです。
MinIO の bucket をドライブとしてマウントする
パスしか受け取らないプログラムが相手のとき、AnyStorage は接続中のストレージ(MinIO を含む)を自分のマシンの http://127.0.0.1:3211 で動く WebDAV サーバーとして再提供します。FUSE も WinFsp も管理者権限も要りません。マウントは Finder の「サーバへ接続」、エクスプローラーの「ネットワークドライブの割り当て」、Nautilus や Dolphin の dav://127.0.0.1:3211 で行います。無料プランでは読み取り専用、Pro で読み書き。S3 での同じ手順はマウント手順のページにあります。
よくある質問
MinIO で SignatureDoesNotMatch が出るのはなぜですか?
よくある原因は 4 つ、可能性の高い順に:クライアントのリージョンがサーバー側と一致していない、MinIO が path-style しか受け付けないのに仮想ホスト形式で接続している、MinIO の前段のプロキシが Host ヘッダーやパスを書き換えている、そして本当にシークレットが違う。詳細は MinIO の SignatureDoesNotMatch へ。
MinIO はどのポートに接続すればいいですか?
S3 API は 9000 です(--address を省略したときに MinIO が bind するポート)。コンソールは別サービスで、運用側が --console-address ":9001" を渡していない限りポートはランダムであり、S3 のリクエストには応答しません。
MinIO で path-style は必要ですか?
管理者が MINIO_DOMAIN を設定していない限り必要です。設定がなければ MinIO は "only accept[s] the default path-style requests" なので、仮想ホスト形式の bucket URL を使うクライアントは名前解決エラーや署名エラーで失敗します。
MinIO サーバーが自己署名証明書です。どうすればいいですか?
発行元の CA をマシンのトラストストアに取り込み、https:// を使い続けてください。デスクトップクライアントが見るのはそこです。MinIO 自身も、自己署名を配り続けるのではなく CA からノード証明書を発行してサーバーの CAs/ に置くことを勧めています。mc --insecure はテスト用です。兆候は x509: certificate signed by unknown authority。
MinIO の bucket をドライブにできますか?
できます。ローカルの WebDAV サーバーを起動し、OS 標準の WebDAV クライアントで http://127.0.0.1:3211 をマウントすれば、bucket がフォルダとして現れます。無料プランでは読み取り専用、Pro で読み書き、どちらの場合もカーネルドライバは不要です。