安全与风控
创建或管理 Mapbox 访问令牌时如何按最小权限、URL…
在创建、配置、存储、轮换或审计 Mapbox 访问令牌时,按令牌类型、作用域、URL 限制和安全存储规范操作。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
创建或管理 Mapbox 访问令牌时如何特定
解决思路
- 按用途选择令牌类型:客户端用 Public Token(pk.*),服务端/CI/管理任务用 Secret Token(sk.*),一次性或临时委派用 Temporary Token(tk.*,最长 1 小时,由 secret token 创建并自动过期)。
- Public Token 仅授予公开作用域:styles:tiles、styles:read、fonts:read、datasets:read、vision:read;Secret Token 才可使用 styles:write、styles:list、tokens:read、tokens:write 等敏感作用域。
- 遵循最小权限原则授予作用域:只给当前功能真正需要的作用域,例如仅显示地图用 ['styles:read','fonts:read'],若使用栅格瓦片源再加 'styles:tiles';避免一次性授予 styles:write、styles:delete、tokens:write 等。
- 按用例组合作用域:公开地图显示用 ['styles:read','fonts:read','styles:tiles'] 并加 allowedUrls;样式管理用 ['styles:read','styles:write','styles:list'](secret);令牌管理用 ['tokens:read','tokens:write'](secret);只读审计用 ['styles:list','styles:read','tokens:read'](secret)。
- 为 Public Token 配置 URL 限制:推荐使用 https://myapp.com/*、https://*.myapp.com/*、https://staging.myapp.com/*、http://localhost:* 等具体模式;避免 *、http://*、*.com/* 等过宽模式。
- 按环境创建独立令牌:生产用 https://myapp.com/* 与 https://www.myapp.com/*,预发用 https://staging.myapp.com/*,开发用 http://localhost:* 与 http://127.0.0.1:*,并分别设置描述性 note。
- Secret Token 存储:放入环境变量或密钥管理服务(如 AWS Secrets Manager、HashiCorp Vault),静态加密,通过 IAM 策略限制访问,并记录令牌使用日志。
- Secret Token 禁止事项:不要硬编码到源码、不要提交到版本控制、不要明文写入配置文件、不要通过邮件或 Slack 分享、不要跨多个服务复用。
- 使用 .env 存放 MAPBOX_SECRET_TOKEN,并在 .gitignore 中加入 .env、.env.local、.env.*.local,确保永不提交。
- 客户端只使用 Public Token,并应用 URL 限制、每个应用使用不同令牌、定期轮换、监控使用情况;不要暴露 secret token、不要使用无 URL 限制的令牌、不要在不相关应用间共享令牌、不要授予过多作用域。
- 在客户端代码中从打包器对应的环境变量读取令牌(Vite 示例:import.meta.env.VITE_MAPBOX_ACCESS_TOKEN),不要硬编码真实 pk. 令牌;其他框架(Next.js、CRA、Angular、CDN)参考 references/token-management.md,且不要在同一表达式中混用 import.meta.env 与 process.env,否则浏览器会抛 ReferenceError。
- 在构造地图前先校验令牌:若令牌缺失或等于占位符(如 'YOUR_MAPBOX_ACCESS_TOKEN')则抛出错误,然后再设置 mapboxgl.accessToken 并调用 new mapboxgl.Map(...),避免出现无提示的空白地图。
- 令牌创建检查:客户端用 public、服务端用 secret;按最小权限授予作用域;为 public token 加 URL 限制;使用描述性名称/备注;记录用途与环境。
- 令牌管理检查:secret token 存入环境变量或密钥管理器;绝不提交到版本控制;每 90 天(或按策略)轮换;及时删除未使用令牌;按环境隔离令牌;在 new mapboxgl.Map 前校验令牌是否存在。
- 监控检查:跟踪令牌使用模式;为异常活动设置告警;每月进行安全审计;每季度审查团队访问权限;扫描仓库中是否暴露令牌。
- 事件响应检查:编写吊销流程文档;维护紧急联系人列表;记录轮换流程;准备事后复盘模板;对团队进行安全流程培训。
- 按需加载参考文件:references/token-management.md(不同打包器的环境变量名与访问方式)、references/rotation-monitoring.md(零停机与紧急轮换、监控指标、告警规则、月度/季度审计清单)、references/incident-response.md(事件响应步骤与常见安全错误示例)。
适用边界 · 注意事项
- 不使用 Mapbox 或不需要管理 Mapbox 访问令牌的场景。
- 没有服务端环境或密钥管理设施、无法安全存放 secret token 的场景。
- 仅做本地一次性实验且不涉及真实用户数据或生产部署时,可简化流程,但仍不应提交真实令牌。