Silo Console 设置
0903 之后的内嵌 Console 修复
正在修复的问题包括本机代理来源地址识别(#147)与 WebSocket 限额配置被忽略(#148)。以下行为要求所用构建包含这两项修复;0903 镜像尚不包含它们。
代理来源地址
内嵌 Console 使用 MINIO_API_TRUSTED_PROXIES;CONSOLE_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* 系统路径、点路径分量 |
| 签名、会话令牌、版本、对象分片和下载响应选项 | 通过查询参数选择的 acl、tagging、retention、legal-hold、attributes、uploadId、lambdaArn、torrent 操作,以及非法查询编码 |
| 后端直接响应 | 所有 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
可选
动画
可选
此设置没有对应的配置变量。 请改用环境变量。
浏览器重定向
可选
此设置没有对应的配置变量。 请改用环境变量。
浏览器重定向 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 地址或主机名上监听并响应。
此设置没有对应的配置变量。 请改用环境变量。
会话时长
可选
此设置没有对应的配置变量。 请改用环境变量。
日志查询 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 Console 配置为在 HTTP 响应中生成 Strict-Transport-Security 头。
要生成该头,你 必须 使用 MINIO_BROWSER_HSTS_SECONDS 或 hsts_seconds 设置持续时间。 其他 HSTS 设置是可选的。
MINIO_BROWSER_HSTS_SECONDS
envvar
已配置策略生效的 max_age(秒)。 默认为 0,即禁用。 你 必须 配置 非零 时长,才能启用 Strict-Transport-Security 头。
MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS
envvar
设置为 on 可将已配置的 HSTS 策略同时应用到所有 MinIO Console 子域名。 默认为 off。
MINIO_BROWSER_HSTS_PRELOAD
envvar
设置为 on 可指示客户端浏览器将 MinIO Console 域名加入其 HSTS 预加载列表。 默认为 off。
以下配置项需要重启服务后才会生效。 要重启服务,请使用 mc admin service restart。
browser hsts_seconds
mc-conf
已配置策略生效的 max_age(秒)。 默认为 0,即禁用。 你 必须 配置 非零 时长,才能启用 Strict-Transport-Security 头。
browser hsts_include_subdomains
mc-conf
设置为 on 可将已配置的 HSTS 策略同时应用到所有 MinIO Console 子域名。 默认为 off。
browser hsts_preload
mc-conf
设置为 on 可指示客户端浏览器将 MinIO Console 域名加入其 HSTS 预加载列表。 默认为 off。
示例
以下示例展示了给定配置项对应的渲染后响应头。 等价的环境变量会生成相同结果。 所有示例均使用 31536000,即一个自然年(365 天)的秒数。
hsts_seconds
hsts_include_subdomains
hsts_preload
来源策略
可选
将 MinIO Console 配置为在 HTTP 响应中生成 Referrer-Policy 头。 默认为 strict-origin-when-cross-origin。
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 可能如下所示:
如果你使用独立的 MinIO Console 进程,则该变量对应 CONSOLE_PROMETHEUS_AUTH_TOKEN。
此设置没有对应的配置变量。 请改用环境变量。