Token 鉴权模型
InfluxDB 2.x 不再使用 1.x 的用户名加密码,而统一采用 API Token:每次请求在头部带 Authorization: Token <值>,服务端按 Token 绑定的权限集合放行。一个 Token 可以精确到「对某些桶可读、对某些桶可写」,也可以完全授权;创建时明文只返回一次,之后接口只提供 ID、描述与状态,无法再查看完整值。
基本信息
| 适用版本 | InfluxDB 2.x / 3.x 兼容 API(1.x 无此模型) |
|---|---|
| 创建 | influx auth create -o <组织> --read-bucket <桶ID> --write-bucket <桶ID> -d "用途说明" |
| 查看 | influx auth list -o <组织>(只见 ID、描述、权限、状态,不含明文) |
| 吊销 | influx auth delete --id <Token ID> |
| 使用 | HTTP 头 Authorization: Token <值>;CLI 用 -t 或环境变量 INFLUX_TOKEN |
| 权限粒度 | --read-bucket / --write-bucket / --read-orgs / --write-orgs / --read-tasks 等,--all-access 为全权 |
典型使用场景
- 按应用分配独立 Token:某个服务出问题或被下线时,单独吊销而不影响其他系统
- 给报表与看板工具只发读权限 Token,写入能力不外借
- CI/CD 与脚本通过环境变量注入 Token,避免写进代码仓库
- 接入前先用 influx bucket list 拿到桶 ID,再按最小范围授权
- 定期用 auth list 盘点游离 Token,清理已下线服务的遗留凭据
创建到使用
创建到使用
# 先取桶 ID(授权时用的是 ID,不是桶名)
influx bucket list -n metrics
# 为写入端创建仅限该桶的读写 Token,明文只在这里返回一次
influx auth create -o my-org --read-bucket 0a1b2c3d --write-bucket 0a1b2c3d -d "app writer"
# 盘点现有 Token 的权限与状态
influx auth list -o my-org
# 客户端使用:环境变量方式,避免出现在命令历史里
export INFLUX_TOKEN=<创建时返回的值>
influx query 'from(bucket:"metrics") |> range(start: -5m) |> limit(n:1)'
# 服务下线后吊销对应 Token
# influx auth delete --id 0a1b2c3d4e5f6000权限类型读法
| 类型 | 能做什么 | 适用对象 |
|---|---|---|
| all-access | 实例内全部资源的读写与管理 | 仅限自动化运维平台,需严格保管 |
| read/write-bucket | 指定桶的读或写 | 业务应用、采集器、看板工具 |
| read/write-orgs 等 | 组织、任务、看板等资源的读写 | 管理脚本与运维人员 |
| 状态列 | active / inactive | inactive 表示已删除或停用的凭据,不应再被引用 |
Token 明文只在创建响应中出现一次,后续无法再查看:创建后立即写入密钥管理或配置中心,不要留在终端回滚缓冲与聊天记录里。
all-access Token 泄露等于整个实例失守,可以删桶、改任务、建新用户;面向应用一律发放限定桶的读写 Token,并把全权 Token 限制在极少数运维入口。