Help us learn about your current experience with the documentation. Take the survey.

密钥检测

  • Tier: 免费版, 高级版, 旗舰版
  • Offering: GitLab.com, GitLab 自托管版, GitLab 专属版

您的应用程序可能会使用外部资源,包括 CI/CD 服务、数据库或外部存储。访问这些资源 需要身份验证,通常使用私钥和令牌等静态方法。这些方法被称为“密钥”(secrets),因为它们不应与他人共享。

为最小化暴露密钥的风险,请始终将密钥存储在仓库之外。然而,密钥有时会意外地提交到 Git 仓库中。当敏感值被推送到远程仓库后,任何有权访问该仓库的人都可以使用该密钥来冒充授权用户。

密钥检测会监控您的活动,以实现以下两个目的:

  • 帮助防止您的密钥泄露。
  • 帮助您在密钥泄露时做出响应。

您应采取多层安全策略,并启用所有可用的密钥检测方法:

  • 推送密钥保护 会在您将更改推送到 GitLab 时扫描提交内容中的密钥。如果检测到密钥,推送操作将被阻止,除非您跳过了推送密钥保护。此方法可降低密钥泄露的风险。
  • 流水线密钥检测 作为项目 CI/CD 流水线的一部分运行。会扫描仓库默认分支的提交内容以查找密钥。如果在合并请求流水线中启用了流水线密钥检测,则会扫描开发分支的提交内容,使您能够在这些提交内容合并到默认分支之前做出响应。
  • 客户端密钥检测 会在描述和评论保存到 GitLab 之前,扫描问题(issues)和合并请求(merge requests)中的描述和评论以查找密钥。当检测到密钥时,您可以选择编辑输入内容以移除密钥,或者如果这是误报,则保存描述或评论。

如果密钥被提交到仓库,GitLab 会在漏洞报告中记录此次暴露事件。对于某些类型的密钥,GitLab 甚至可以自动撤销已暴露的密钥。您应尽快撤销并替换已暴露的密钥。有关特定密钥的修复指导,请查看漏洞报告中提供的详细信息。

相关主题