跳转到主要内容

Silo Console 设置

0903 之后的内嵌 Console 修复

正在修复的问题包括本机代理来源地址识别(#147)WebSocket 限额配置被忽略(#148)。以下行为要求所用构建包含这两项修复;0903 镜像尚不包含它们。

代理来源地址

内嵌 Console 使用 MINIO_API_TRUSTED_PROXIESCONSOLE_TRUSTED_PROXIES 仍仅供独立 Console 使用。客户端地址会影响 aws:SourceIp 策略和 WebSocket 限额。

配置 信任的 Console TCP 对端 转发链中跳过的地址
未设置或空白 环回地址(127.0.0.0/8::1,包括 IPv4 映射地址)
IP/CIDR 列表 环回地址及列表中的对端 仅显式列出的地址
none / off
非法或无法读取 启动报错

列表用逗号、分号或空白分隔。其他主机或容器中的代理需要配置其实际对端地址。本机代理无需额外配置,但必须清理转发来源头:这一行为基于对本机进程的信任。头部中的环回地址不会自动成为可信转发节点。独立 Console 仍要求显式配置代理信任。

Server 的 S3 策略保持不变。设置 none/off 时,S3 也会忽略内嵌 Console 转发的浏览器地址,因此经 Console 执行的 IP 策略看到的是内部对端。WebSocket Origin 检查仍要求匹配主机与端口;信任环回对端不代表允许任意来源。

WebSocket 连接限额

在 Server 环境变量或 MINIO_CONFIG_ENV_FILE 中设置:

变量 默认值
CONSOLE_WS_MAX_CONNECTIONS 1024
CONSOLE_WS_MAX_CONNECTIONS_PER_CLIENT 256
CONSOLE_WS_MAX_ANONYMOUS_CONNECTIONS 64
CONSOLE_WS_MAX_ANONYMOUS_CONNECTIONS_PER_CLIENT 8

公开浏览每个标签页使用一个 WebSocket。NAT 后的客户端共享一个地址;IPv6 客户端按 /64 共享限额。例如,设置 CONSOLE_WS_MAX_ANONYMOUS_CONNECTIONS_PER_CLIENT=16 可增加同一地址的匿名标签页容量。默认值和登录用户的预留容量保持不变。

数值必须为 1 到 1048576 的整数。匿名总量与匿名单客户端限额必须分别低于对应的共享限额,匿名单客户端限额不得超过匿名总量。未设置时使用默认值;显式空值、字面量 env:// 引用与不符合上述关系的配置均会报错。配置错误会在 Console 开始服务前退出 Server 进程,此时 S3 监听器可能已经启动。其他 CONSOLE_* 用户覆盖值仍会清除,并由 Server 配置生成。

对象分享

说明

Console v2.4.1: #56 实现了以下请求边界,并随 v2.4.1 发布。Server #209 接入了对应的内嵌行为。详见组件说明

该修复无需新增配置,请求限制始终执行,正常分享继续可用。CONSOLE_SHARE_MINIO_URL 仍只选择生成的链接格式。匿名代理仅允许下载对象内容的 GET 请求:

允许 拒绝
已配置 S3 的协议、主机和有效端口 其他源地址,以及带用户信息、片段的 URL
/合法桶名/非空对象键 根路径、仅桶路径、minio.minio.sys* 系统路径、点路径分量
签名、会话令牌、版本、对象分片和下载响应选项 通过查询参数选择的 acltaggingretentionlegal-holdattributesuploadIdlambdaArntorrent 操作,以及非法查询编码
后端直接响应 所有 3xx 返回 502,不跟随跳转,也不转发 Location

S3 继续执行授权检查:公共对象按策略允许匿名读取,私有对象需要有效授权。URL 的原始编码和签名参数保持不变。手工利用此接口代理桶列表、对象子资源或依赖重定向的下载将不再可用。

分享可用时,请求边界始终生效。原型曾包含 CONSOLE_SHARE_ENABLED=off, 最终撤掉了该开关及配套前端状态和内嵌 Server 配置传递:彻底关闭分享是独立的 产品需求,代理自身应当无需额外配置就正确限制访问范围。 CONSOLE_SHARE_MINIO_URL 因而继续只选择链接格式,不承担访问控制职责。 只检查是否存在签名字段不能保护公开指标;针对限定为对象下载的代理,也没有 必要另建 Console MAC 或分享链接注册表。编码后的 URL 本身不保证由 Console 签发。

这些检查只增加本地解析和比较,不增加 S3/IAM 请求、令牌存储、签名密钥或 整个对象的内存缓冲。后续增加通过查询参数选择的 S3 操作时,需要同步审查 拒绝列表与回归测试。Issue 设计记录 说明了威胁范围、备选方案和兼容性权衡。感谢 Jiri Pejchal(@jiri-pejchal) 报告内部指标暴露问题。

Console 设置参考

说明

上游 MinIO 变更:RELEASE.2025-05-24T17-08-30Z

上游 MinIO 将其 Console 裁剪为对象浏览器。SILO Console 保留包括用户管理在内的管理界面,详见 Console 兼容性

以下继承的设置说明应结合实际部署的 Server 与 Console 版本阅读。

本页介绍用于管理 MinIO Console 访问与行为的设置。

你可以通过以下方式建立或修改设置:

  • 在启动或重启 MinIO Server 之前,在宿主机系统上定义 环境变量。 如何定义环境变量,请参考所用操作系统的文档。
  • 使用 mc admin config set 定义 配置项

如果同时定义了环境变量和对应的配置项,MinIO 使用环境变量的值。

有些设置只有环境变量或配置项中的一种,而不是两者同时存在。

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

浏览器设置

以下设置用于控制内嵌 MinIO Console 的行为。

MinIO Console

可选

MINIO_BROWSER

envvar

指定 off 以禁用内嵌 MinIO Console。

此设置没有对应的配置变量。 请改用环境变量。

动画

可选

MINIO_BROWSER_LOGIN_ANIMATION

envvar

说明

新增: MinIO

Server RELEASE.2023-05-04T21-44-30Z

指定 off 以禁用 MinIO Console 的动画登录界面。 默认为 on

此设置没有对应的配置变量。 请改用环境变量。

浏览器重定向

可选

MINIO_BROWSER_REDIRECT

envvar

说明

新增: MinIO

Server RELEASE.2023-09-16T01-01-47Z

指定是否将来自 Web 浏览器的请求自动重定向到 Console 地址。 默认为 true

此设置没有对应的配置变量。 请改用环境变量。

浏览器重定向 URL

可选

MINIO_BROWSER_REDIRECT_URL

envvar

指定 MinIO Console 监听传入连接的 Fully Qualified Domain Name (FQDN)。

如果你希望 MinIO Console 仅通过反向代理服务对外提供,必须指定由该服务管理的主机名。

例如,假设某个反向代理被配置为将 https://example.net/minio/ 路由到 MinIO Console。 你必须将此环境变量设置为与该主机名一致,这样 Console 才会使用该主机名进行监听并响应请求。

如果省略此变量,Console 会在运行 MinIO Server 的主机所关联的所有 IP 地址或主机名上监听并响应。

此设置没有对应的配置变量。 请改用环境变量。

会话时长

可选

MINIO_BROWSER_SESSION_DURATION

envvar

说明

新增: MinIO

Server RELEASE.2023-08-23T10-07-06Z

指定使用 MinIO Console 时浏览器会话的持续时间。

MinIO 支持以下时间单位:

  • s - 秒,”60s”
  • m - 分钟,”60m”
  • h - 小时,”24h”
  • d - 天,”7d”

默认为 12h

此设置没有对应的配置变量。 请改用环境变量。

日志查询 URL

可选

MINIO_LOG_QUERY_URL

envvar

指定 PostgreSQL 服务的 URL,MinIO 会将 Audit logs 写入该服务。 内嵌 MinIO Console 提供日志搜索工具,可查询 PostgreSQL 服务中收集的日志。

此设置没有对应的配置变量。 请改用环境变量。

内容安全策略

可选

将 MinIO Console 配置为在 HTTP 响应中生成 Content-Security-Policy 头。 默认为 default-src 'self' 'unsafe-eval' 'unsafe-inline';

MINIO_BROWSER_CONTENT_SECURITY_POLICY

envvar

export MINIO_BROWSER_CONTENT_SECURITY_POLICY="default-src 'self' 'unsafe-eval' 'unsafe-inline';"
browser csp_policy

mc-conf

mc admin config set browser \
   csp_policy="default-src 'self' 'unsafe-eval' 'unsafe-inline';" \
   [ARGUMENT=VALUE ...]

严格传输安全

可选

将 MinIO Console 配置为在 HTTP 响应中生成 Strict-Transport-Security 头。

要生成该头,你 必须 使用 MINIO_BROWSER_HSTS_SECONDShsts_seconds 设置持续时间。 其他 HSTS 设置是可选的。

MINIO_BROWSER_HSTS_SECONDS

envvar

已配置策略生效的 max_age(秒)。 默认为 0,即禁用。 你 必须 配置 非零 时长,才能启用 Strict-Transport-Security 头。

export MINIO_BROWSER_HSTS_SECONDS=31536000
MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS

envvar

设置为 on 可将已配置的 HSTS 策略同时应用到所有 MinIO Console 子域名。 默认为 off

export MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS="on"
MINIO_BROWSER_HSTS_PRELOAD

envvar

设置为 on 可指示客户端浏览器将 MinIO Console 域名加入其 HSTS 预加载列表。 默认为 off

export MINIO_BROWSER_HSTS_PRELOAD="on"

以下配置项需要重启服务后才会生效。 要重启服务,请使用 mc admin service restart

browser hsts_seconds

mc-conf

已配置策略生效的 max_age(秒)。 默认为 0,即禁用。 你 必须 配置 非零 时长,才能启用 Strict-Transport-Security 头。

mc admin config set browser \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]
browser hsts_include_subdomains

mc-conf

设置为 on 可将已配置的 HSTS 策略同时应用到所有 MinIO Console 子域名。 默认为 off

mc admin config set browser \
   hsts_include_subdomains="on" \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]
browser hsts_preload

mc-conf

设置为 on 可指示客户端浏览器将 MinIO Console 域名加入其 HSTS 预加载列表。 默认为 off

mc admin config set browser \
   hsts_preload="on" \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]

示例

以下示例展示了给定配置项对应的渲染后响应头。 等价的环境变量会生成相同结果。 所有示例均使用 31536000,即一个自然年(365 天)的秒数。

hsts_seconds

mc admin config set ALIAS browser hsts_seconds=31536000
Strict-Transport-Security: max-age=31536000

hsts_include_subdomains

mc admin config set ALIAS browser hsts_seconds=31536000 hsts_include_subdomains=on
Strict-Transport-Security: max-age=31536000; includeSubDomains

hsts_preload

mc admin config set ALIAS browser hsts_seconds=31536000 hsts_include_subdomains=on hsts_preload=on
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

来源策略

可选

将 MinIO Console 配置为在 HTTP 响应中生成 Referrer-Policy 头。 默认为 strict-origin-when-cross-origin

MINIO_BROWSER_REFERRER_POLICY

envvar

export MINIO_BROWSER_REFERRER_POLICY="strict-origin-when-cross-origin"
browser referrer_policy

mc-conf

mc admin config set browser \
   referrer_policy="strict-origin-when-cross-origin" \
   [ARGUMENT=VALUE ...]

Prometheus 设置

以下设置用于管理 MinIO 与你的 Prometheus 服务之间的交互方式。

Prometheus URL

可选

MINIO_PROMETHEUS_URL

envvar

指定已配置为 抓取 MinIO 指标 的 Prometheus 服务 URL。

MinIO Console 使用 minio-job Prometheus 抓取作业,将集群指标填充到 Dashboard

如果你使用独立的 MinIO Console 进程,则该变量对应 CONSOLE_PROMETHEUS_URL

此设置没有对应的配置变量。 请改用环境变量。

Prometheus Job ID

可选

MINIO_PROMETHEUS_JOB_ID

envvar

指定用于 抓取 MinIO 指标 的自定义 Prometheus job ID。

MinIO 默认为 minio-job

如果你使用独立的 MinIO Console 进程,则该变量对应 CONSOLE_PROMETHEUS_JOB_ID

此设置没有对应的配置变量。 请改用环境变量。

Prometheus Auth Token

可选

MINIO_PROMETHEUS_AUTH_TOKEN

envvar

指定 Console 连接 Prometheus 服务时应使用的 basic auth token

例如,你使用的 basic auth token 可能如下所示:

eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW8iLCJleHAiOjQ4NTAwMzg0MDJ9.GZCKR3d0FH2TCvNHSd39HaVfSuQVVV0s8glICBDmhT51V6CQ_hw8gTYlKHJmcpR8aHkqiJwCqcYJhaMmqwe00XY

如果你使用独立的 MinIO Console 进程,则该变量对应 CONSOLE_PROMETHEUS_AUTH_TOKEN

此设置没有对应的配置变量。 请改用环境变量。