Compliance Studio

处理泄露的 API 密钥

当 k-ID API 密钥在源代码控制、日志或客户端代码中暴露时的处理步骤。

如果 k-ID API 密钥已经暴露(提交到代码仓库、粘贴到公开频道、写入日志或随客户端代码发布),请尽快删除并替换该密钥。在删除之前,任何持有该密钥的人都可以以您的产品身份调用 k-ID API。

仅从代码中移除密钥或重写 git 历史是不够的。分支、克隆、缓存或 CI 日志中可能已经存在副本。让泄露的密钥失效的唯一方法是在 Compliance Studio 中删除它。

1. 确定密钥

确认该密钥属于哪个产品和哪个环境。

当前格式的 API 密钥以表示环境的前缀开头:

前缀环境
kgs_live_生产
kgs_test_测试

要在 Compliance Studio 中找到该密钥,请打开可能相关的产品,进入开发者设置标签页,并在测试和生产之间切换。API 密钥部分会显示每个密钥的开头几个字符,请将其与泄露的值进行比对。在当前格式之前创建的密钥会标有旧版,并显示较少的字符。

生产密钥

生产密钥泄露后,他人可以访问您的生产数据。如果密钥出现在公开场所,请立即删除它(第 3 步),之后再进行替换,即使您的集成会因此短暂不可用。

2. 创建替换密钥

一个产品的每个环境可以同时有多个有效密钥,因此通常可以在不停机的情况下替换密钥。

  1. 在同一产品的开发者设置标签页上,选择相同的环境(测试或生产),然后点击添加API密钥。
  2. 为新密钥填写描述,以便与要替换的密钥区分开。
  3. 复制新密钥。
  4. 更新所有使用旧密钥的地方:环境变量、密钥管理器、CI/CD 变量,以及调用 k-ID API 的其他服务。
  5. 部署更改,并确认您的集成使用新密钥正常工作。

3. 删除泄露的密钥

  1. 在开发者设置标签页的 API 密钥部分中找到泄露的密钥。
  2. 点击其旁边的删除(垃圾桶)图标,然后点击确认。

删除立即生效。使用已删除密钥的请求会被拒绝并返回 401 Unauthorized,已删除的密钥无法恢复。

4. 从泄露位置移除密钥

密钥删除后便无法再使用,但您仍应清理暴露的位置:

  • **源代码控制:**从代码中移除密钥,并将其改为存放在环境变量或密钥管理器中。如果还想将其从仓库历史中移除,请参阅 GitHub 指南从仓库中删除敏感数据。
  • **客户端代码:**如果密钥随网页、移动应用或游戏客户端一起发布,请将所有使用该密钥的 k-ID API 调用移到您的服务器上。API 密钥绝不能到达终端用户的设备。请参阅安全建议。
  • **日志和消息:**从出现过该密钥的日志、工单、聊天消息和文档中删除或遮盖密钥。

5. 检查异常活动

  • 在产品的历史记录标签页的活动部分,检查是否有您不认识的 API 密钥已添加、API 密钥已编辑和 API 密钥已移除条目,并查看每项更改是由谁做出的。请参阅版本历史与回滚。
  • 检查您自己的服务器日志,以及密钥暴露期间您的产品收到的会话和验证,看是否有任何异常。

如果您认为密钥已被滥用,或在执行上述步骤时需要帮助,请联系 support@k-id.com 或您的 k-ID 客户经理。请提供产品名称、环境,以及密钥大约何时、在何处暴露。请勿包含密钥本身。

防止泄露

  • 仅在服务器上保存 API 密钥,存放在环境变量或密钥管理器中。
  • 切勿将密钥提交到源代码控制。将包含密钥的文件(例如 .env)添加到 .gitignore。
  • 为每个服务或部署阶段使用单独的密钥,并填写说明其用途的描述,这样您可以只删除一个密钥而不影响其他密钥。
  • 为您的仓库启用 GitHub 密钥扫描和推送保护。

有关管理密钥的更多信息,请参阅开发者设置。

On this page