実際のところ
# エイリアス設定
docker run --rm -it --network lobe-net minio/mc \
mc alias set local http://minio:9000 \
$MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
# バケット作成(例:LobeChat用)
docker run --rm -it --network lobe-net minio/mc \
mc mb local/lobechat
# バージョニング有効化(RAG向けに推奨)
docker run --rm -it --network lobe-net minio/mc \
mc version enable local/lobechat
# 最小権限のユーザーを作る(アプリ接続用)
docker run --rm -it --network lobe-net minio/mc \
mc admin user add local lobeapp YOUR_APP_SECRET
# ポリシー作成(lobechat バケット限定の読書き)
cat > bucket-policy.json <<'JSON'
{
"Version": "2012-10-17",
"Statement": [
{ "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::lobechat"] },
{ "Effect": "Allow", "Action": ["s3:PutObject","s3:GetObject","s3:DeleteObject"], "Resource": ["arn:aws:s3:::lobechat/*"] }
]
}
JSON
# ポリシー作成
docker run --rm -i --network lobe-net -v "$PWD:/work" -w /work minio/mc \
mc admin policy create local lobeapp-policy bucket-policy.json
# ユーザーにポリシー付与
docker run --rm -i --network lobe-net minio/mc \
mc admin policy attach local/lobeapp-policy --user lobeapp
参考もと