MinIO/MC: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
{|class='wikitable mw-collapsible mw-made-collapsible mw-collapsed'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
!scope='col' style='width:1000px'|
'''MinIO » MC » Install'''
'''MinIO » MC » Install'''
Line 15: Line 15:


==MC » Quick » Setup==
==MC » Quick » Setup==
{|class='wikitable mw-collapsible mw-made-collapsible mw-collapsed'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
!scope='col' style='width:1000px'|
'''MinIO » MC » Quick » Setup'''
'''MinIO » MC » Quick » Setup'''
Line 51: Line 51:


==MC » Manage » Alias==
==MC » Manage » Alias==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
!scope='col' style='width:1000px'|
'''MinIO » MC » Manage » Alias'''
'''MinIO » MC » Manage » Alias'''
Line 77: Line 77:


==MC » Manage » User==
==MC » Manage » User==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
!scope='col' style='width:1000px'|
'''MinIO » MC » Manage » User'''
'''MinIO » MC » Manage » User'''
Line 92: Line 92:
mc admin user list s3_minio_host_k8s_local_admin --json|jq -rs ' .[].accessKey'
mc admin user list s3_minio_host_k8s_local_admin --json|jq -rs ' .[].accessKey'
mc admin user list s3_minio_host_k8s_local_admin --json|jq -rs '[.[].accessKey]|join(" ")'
mc admin user list s3_minio_host_k8s_local_admin --json|jq -rs '[.[].accessKey]|join(" ")'
</syntaxhighlight>
|}
==MC » Manage » Policy==
{|class='wikitable mw-collapsible'
!scope='col' style='width:1000px'|
'''MinIO » Policy » iamAcademiaList'''
|-
|valign='top'|
<syntaxhighlight lang="yaml">
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin iamAcademiaList /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:ListAllMyBuckets
    Resource:
      - arn:aws:s3:::*
YML
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang="bash">
mc admin policy info  s3_minio_host_k8s_local_admin iamAcademiaList|yq -P '.Policy'
mc admin policy rm    s3_minio_host_k8s_local_admin iamAcademiaList
mc admin policy ls    s3_minio_host_k8s_local_admin
</syntaxhighlight>
|}
==MC » System » Policy==
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
'''MinIO » Policy » consoleAdmin'''
|-
|valign='top'|
<syntaxhighlight lang="bash">
mc admin policy info  s3_minio_host_k8s_local_admin consoleAdmin|yq -P '.Policy'
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang="yaml">
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin consoleAdmin /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - admin:*
  - Effect: Allow
    Action:
      - kms:*
  - Effect: Allow
    Action:
      - s3:*
    Resource:
      - arn:aws:s3:::*
YML
</syntaxhighlight>
|}
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
'''MinIO » Policy » diagnostics'''
|-
|valign='top'|
<syntaxhighlight lang="bash">
mc admin policy info  s3_minio_host_k8s_local_admin diagnostics|yq -P '.Policy'
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang="yaml">
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin diagnostics /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - admin:TopLocksInfo
      - admin:BandwidthMonitor
      - admin:ConsoleLog
      - admin:OBDInfo
      - admin:Profiling
      - admin:Prometheus
      - admin:ServerInfo
      - admin:ServerTrace
    Resource:
      - arn:aws:s3:::*
YML
</syntaxhighlight>
|}
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
'''MinIO » Policy » readonly'''
|-
|valign='top'|
<syntaxhighlight lang="bash">
mc admin policy info  s3_minio_host_k8s_local_admin readonly|yq -P '.Policy'
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang="yaml">
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin readonly /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:GetObject
      - s3:GetBucketLocation
    Resource:
      - arn:aws:s3:::*
YML
</syntaxhighlight>
|}
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
'''MinIO » Policy » readwrite'''
|-
|valign='top'|
<syntaxhighlight lang="bash">
mc admin policy info  s3_minio_host_k8s_local_admin readwrite|yq -P '.Policy'
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang="yaml">
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin readwrite /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:*
    Resource:
      - arn:aws:s3:::*
YML
</syntaxhighlight>
|}
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='width:1000px'|
'''MinIO » Policy » writeonly'''
|-
|valign='top'|
<syntaxhighlight lang="bash">
mc admin policy info  s3_minio_host_k8s_local_admin writeonly|yq -P '.Policy'
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang="yaml">
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin writeonly /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:PutObject
    Resource:
      - arn:aws:s3:::*
YML
</syntaxhighlight>
</syntaxhighlight>
|}
|}
Line 172: Line 351:


==Playground==
==Playground==
{|
{|class='wikitable mw-collapsible mw-collapsed' style='width:100%'
|valign='top'|
!scope='col' colspan='2'|
<syntaxhighlight lang="bash">
'''MinIO » MC » Playground'''
|-
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0 3px 0' lang='bash'>
jq -r '.aliases.s3_minio_host_k8s_local_admin' ~/.mc/config.json
jq -r '.aliases.s3_minio_host_k8s_local_admin' ~/.mc/config.json
mc alias export s3_minio_host_k8s_local_admin|jq -r .
mc alias export s3_minio_host_k8s_local_admin|jq -r .
Line 184: Line 366:
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="bash">
<syntaxhighlight style='margin:3px 0 3px 0' lang='bash'>
cat <<'JSN'| mc alias import s3_minio_host_k8s_local_admin
cat <<'JSN'| mc alias import s3_minio_host_k8s_local_admin
{ "url": "http://s3.minio.host.k8s.local",
{ "url": "http://s3.minio.host.k8s.local",
Line 195: Line 377:
</syntaxhighlight>
</syntaxhighlight>


|-
|valign='top'|
|valign='top'|
<syntaxhighlight lang="bash">
<syntaxhighlight style='margin:3px 0 3px 0' lang='bash'>
set +o history
set +o history
echo -e "academia\nsadaqah!" | \
echo -e "academia\nsadaqah!" | \
mc admin user add s3_minio_host_k8s_local_admin
mc admin user add s3_minio_host_k8s_local_admin
set -o history   
set -o history   
</syntaxhighlight>
</syntaxhighlight>


|-
|colspan='3'|
----
|-
|valign='top'|
|valign='top'|
<syntaxhighlight lang="bash">
<syntaxhighlight style='margin:3px 0 3px 0' lang='bash'>
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|-
<syntaxhighlight lang="bash">
|valign='top' colspan='2'|
</syntaxhighlight>
<syntaxhighlight style='margin:3px 0 3px 0' lang='bash'>
 
mc ls            s3_minio_host_k8s_local_admin/chorke-bkp/wiki/mediawiki/daily/2025/M07/2025-07-01/apps/chorke_wiki_mediawiki.apps.2025-07-01T0000.tar.gz
|valign='top'|
mc share download s3_minio_host_k8s_local_admin/chorke-bkp/wiki/mediawiki/daily/2025/M07/2025-07-01/apps/chorke_wiki_mediawiki.apps.2025-07-01T0000.tar.gz --expire=10m
<syntaxhighlight lang="bash">
</syntaxhighlight>
</syntaxhighlight>
|}
|}



Latest revision as of 03:16, 4 December 2025

MinIO » MC » Install

cat <<'EXE'| sudo bash
wget  -c https://dl.min.io/client/mc/release/linux-amd64/mc \
      -P /usr/local/bin/
chmod +x /usr/local/bin/mc
EXE
xdg-open http://minio.host.k8s.local &>/dev/null &

MC » Quick » Setup

MinIO » MC » Quick » Setup

echo -n 'Username: ';read -s MC_ACCESS_KEY;export MC_ACCESS_KEY;echo
# Username: admin

echo -n 'Password: ';read -s MC_SECRET_KEY;export MC_SECRET_KEY;echo
# Password: sadaqah!

export MC_HOST_s3_minio_host_k8s_local_admin="http://${MC_ACCESS_KEY}:${MC_SECRET_KEY}@s3.minio.host.k8s.local"
mc ping        s3_minio_host_k8s_local_admin -c=3
mc ready       s3_minio_host_k8s_local_admin
mc admin info  s3_minio_host_k8s_local_admin
mc alias ls

EXPIRY_DATE="$(date --utc -d '+1 year' +'%Y-%m-%dT00:00:00%:z')";\
mc admin user svcacct add  s3_minio_host_k8s_local_admin ${MC_ACCESS_KEY} --expiry ${EXPIRY_DATE};\
             unset MC_HOST_s3_minio_host_k8s_local_admin;unset MC_ACCESS_KEY;unset MC_SECRET_KEY
:'
Access Key: HS7LQO7XFCJGWNU1OQ50
Secret Key: TkbFQXTXZjYquDhzfdFBUyguZF15s0W+OYrb3LXQ
Expiration: 2026-06-30 00:00:00 +0000 UTC
'

MC » Manage » Alias

MinIO » MC » Manage » Alias

echo -n 'AccessKey: ';read -s MC_ACCESS_KEY;export MC_ACCESS_KEY;echo
# AccessKey: HS7LQO7XFCJGWNU1OQ50

echo -n 'SecretKey: ';read -s MC_SECRET_KEY;export MC_SECRET_KEY;echo
# SecretKey: TkbFQXTXZjYquDhzfdFBUyguZF15s0W+OYrb3LXQ

mc alias set   s3_minio_host_k8s_local_admin http://s3.minio.host.k8s.local ${MC_ACCESS_KEY} ${MC_SECRET_KEY}
mc ping        s3_minio_host_k8s_local_admin -c=3
mc ready       s3_minio_host_k8s_local_admin
mc admin info  s3_minio_host_k8s_local_admin
mc alias rm    s3_minio_host_k8s_local_admin
mc alias ls

MC » Manage » User

MinIO » MC » Manage » User

set +o history
echo -e "academia\nsadaqah!" | \
mc admin user add s3_minio_host_k8s_local_admin
mc admin user add s3_minio_host_k8s_local_admin academia sadaqah!
set -o history

mc admin user list s3_minio_host_k8s_local_admin
mc admin user list s3_minio_host_k8s_local_admin --json|jq -rs ' .[].accessKey'
mc admin user list s3_minio_host_k8s_local_admin --json|jq -rs '[.[].accessKey]|join(" ")'

MC » Manage » Policy

MinIO » Policy » iamAcademiaList

yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin iamAcademiaList /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:ListAllMyBuckets
    Resource:
      - arn:aws:s3:::*
YML
mc admin policy info   s3_minio_host_k8s_local_admin iamAcademiaList|yq -P '.Policy'
mc admin policy rm     s3_minio_host_k8s_local_admin iamAcademiaList
mc admin policy ls     s3_minio_host_k8s_local_admin

MC » System » Policy

MinIO » Policy » consoleAdmin

mc admin policy info   s3_minio_host_k8s_local_admin consoleAdmin|yq -P '.Policy'
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin consoleAdmin /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - admin:*
  - Effect: Allow
    Action:
      - kms:*
  - Effect: Allow
    Action:
      - s3:*
    Resource:
      - arn:aws:s3:::*
YML

MinIO » Policy » diagnostics

mc admin policy info   s3_minio_host_k8s_local_admin diagnostics|yq -P '.Policy'
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin diagnostics /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - admin:TopLocksInfo
      - admin:BandwidthMonitor
      - admin:ConsoleLog
      - admin:OBDInfo
      - admin:Profiling
      - admin:Prometheus
      - admin:ServerInfo
      - admin:ServerTrace
    Resource:
      - arn:aws:s3:::*
YML

MinIO » Policy » readonly

mc admin policy info   s3_minio_host_k8s_local_admin readonly|yq -P '.Policy'
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin readonly /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:GetObject
      - s3:GetBucketLocation
    Resource:
      - arn:aws:s3:::*
YML

MinIO » Policy » readwrite

mc admin policy info   s3_minio_host_k8s_local_admin readwrite|yq -P '.Policy'
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin readwrite /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:*
    Resource:
      - arn:aws:s3:::*
YML

MinIO » Policy » writeonly

mc admin policy info   s3_minio_host_k8s_local_admin writeonly|yq -P '.Policy'
yq -o=json <<'YML'| \
mc admin policy create s3_minio_host_k8s_local_admin writeonly /dev/stdin
---
Version: "2012-10-17"
Statement:
  - Effect: Allow
    Action:
      - s3:PutObject
    Resource:
      - arn:aws:s3:::*
YML

MC » Manage » Bucket

MinIO » MC » Manage » Bucket

mc ready  s3_minio_host_k8s_local_admin
mc mb     s3_minio_host_k8s_local_admin/academia
mc mb     s3_minio_host_k8s_local_admin/agronomy
mc mirror s3_minio_host_k8s_local_admin/academia \
          s3_minio_host_k8s_local_admin/agronomy
mc rb     s3_minio_host_k8s_local_admin/academia

MC » Manage » Service » AC

MinIO » MC » Manage » Service » AC

mc admin user svcacct add  s3_minio_host_k8s_local_admin academia
mc admin user svcacct list s3_minio_host_k8s_local_admin academia

EXPIRY_DATE="$(date --utc -d '+1 year' +'%Y-%m-%dT00:00:00%:z')";\
mc admin user svcacct add  s3_minio_host_k8s_local_admin academia --expiry ${EXPIRY_DATE}

for key in $(\
mc admin user svcacct list s3_minio_host_k8s_local_admin academia --json|jq -rs '[.[].accessKey]|join(" ")');do \
mc admin user svcacct rm   s3_minio_host_k8s_local_admin ${key};done

Create » Random » Key

Access Key Time (Seconds)
Real User System Status
time echo "$(cat /dev/urandom|tr -dc 'A-Za-z0-9'|head -c 20)" 0.007 0.001 0.012 🟢
time echo "$(openssl rand -base64 16|tr -d /=+|cut -c1-20)" 0.009 0.002 0.012 🟡
time echo "$(openssl rand -hex 12|tr -d /=+|cut -c1-20)" 0.008 0.003 0.009 🟡
time echo "$(makepasswd --chars 20)" 0.023 0.020 0.003 🔴

Secret Key Time (Seconds)
Real User System Status
time echo "$(cat /dev/urandom|tr -dc 'A-Za-z0-9'|head -c 40)" 0.006 0.003 0.007 🟢
time echo "$(openssl rand -base64 32|tr -d /=+|cut -c1-40)" 0.007 0.003 0.009 🟡
time echo "$(openssl rand -hex 24|tr -d /=+|cut -c1-40)" 0.009 0.003 0.011 🟡
time echo "$(makepasswd --chars 40)" 0.021 0.016 0.005 🔴

Playground

MinIO » MC » Playground

jq -r '.aliases.s3_minio_host_k8s_local_admin' ~/.mc/config.json
mc alias export s3_minio_host_k8s_local_admin|jq -r .
mc alias remove s3_minio_host_k8s_local_admin
mc admin info   s3_minio_host_k8s_local_admin

jq -r '.aliases|keys[]' ~/.mc/config.json
mc alias list
cat <<'JSN'| mc alias import s3_minio_host_k8s_local_admin
{ "url": "http://s3.minio.host.k8s.local",
  "accessKey": "admin",
  "secretKey": "sadaqah!",
  "path": "auto",
  "api": "s3v4" }
JSN
set +o history
echo -e "academia\nsadaqah!" | \
mc admin user add s3_minio_host_k8s_local_admin
set -o history
mc ls             s3_minio_host_k8s_local_admin/chorke-bkp/wiki/mediawiki/daily/2025/M07/2025-07-01/apps/chorke_wiki_mediawiki.apps.2025-07-01T0000.tar.gz
mc share download s3_minio_host_k8s_local_admin/chorke-bkp/wiki/mediawiki/daily/2025/M07/2025-07-01/apps/chorke_wiki_mediawiki.apps.2025-07-01T0000.tar.gz --expire=10m

References