Skip to main content

为存储库配置机密扫描

可以配置 GitHub 如何扫描存储库中遭到泄露的机密并生成警报。

谁可以使用此功能?

People with admin permissions to a repository can enable secret scanning for the repository.

Secret scanning is available for organization-owned repositories, and in beta for user-owned repositories in GitHub Enterprise Server if your enterprise has a license for GitHub Advanced Security. For more information, see "About secret scanning" and "About GitHub Advanced Security."

注意:站点管理员必须为 你的 GitHub Enterprise Server 实例 启用 secret scanning,你才能使用这些功能。 有关详细信息,请参阅“为设备配置密码扫描”。

如果企业所有者在企业级别设置了策略,你可能无法启用或禁用 secret scanning。 有关详细信息,请参阅“强制实施企业的代码安全性和分析策略”。

启用 机密扫描

可以为任何存储库启用机密扫描。 启用后,secret scanning 将在 GitHub 仓库中存在的所有分支上扫描整个 Git 历史记录的任何密钥。 此外,secret scanning 会扫描:

  • 问题中的描述和评论
  • 打开和结束的_历史_问题中的标题、描述和评论

还可以同时为组织中的多个存储库启用 secret scanning。 有关详细信息,请参阅“保护组织快速入门”。

注意:如果组织由企业帐户拥有,则企业所有者还可以在企业级别启用 secret scanning。 有关详细信息,请参阅“管理企业的 GitHub Advanced Security 功能”。

存储库管理员可以选择随时为存储库禁用secret scanning。 有关详细信息,请参阅“管理存储库的安全和分析设置”。

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 如果尚未对存储库启用 Advanced Security,请在“GitHub Advanced Security”右侧单击“启用”。

  5. 查看启用 Advanced Security 的影响,然后单击“为此存储库启用 GitHub Advanced Security”。

  6. 当您启用 Advanced Security 时,secret scanning 可能会因为组织的设置而自动启用。 如果显示“Secret scanning”带有“启用”按钮,则仍需通过单击“启用”来启用 secret scanning 。 如果你看到“禁用”按钮,则表示 secret scanning 已启用。

    “代码安全和分析”页的“Secret scanning”部分的屏幕截图,其中“启用”按钮以深橙色边框突出显示。

启用 机密扫描 的额外功能

可以通过存储库的“代码安全和分析”设置启用以下附加 secret scanning 功能:

为非提供商模式启用扫描

注意: 非提供商模式检测目前处于 beta 版本阶段,可能会发生变化。

可以为非提供商模式启用扫描。 非提供商模式对应于私钥等机密,其误报率较高。

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 在 Secret scanning 下,选择“扫描非提供商模式”旁边的复选框。

有关非提供商模式的详细信息,请参阅“机密扫描模式”。

从 机密扫描 中排除目录

可以将 secret_scanning.yml 文件配置为从 secret scanning 中排除目录,包括使用推送保护时。 例如,可以排除包含测试或随机生成内容的目录。

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。

  2. 在文件列表上方,选择“添加文件” 下拉菜单,然后单击“ 创建新文件” 。

    也可在左侧的文件树状视图中单击

    存储库主页的屏幕截图。 在文件列表上方,标有“添加文件”的按钮以深橙色框出。 在存储库的文件树状视图中,带加号图标的按钮也以深橙色框出。

  3. 在文件名字段中,键入 .github/secret_scanning.yml。

  4. 在“编辑新文件”下,键入 paths-ignore:,后跟要从 secret scanning 中排除的路径。

    paths-ignore:
      - "foo/bar/*.js"
    

    可以使用特殊字符(例如 *)来筛选路径。 有关筛选器模式的详细信息,请参阅“GitHub Actions 的工作流语法”。

    注意:

    • 如果 paths-ignore 中的条目超过 1,000 个,secret scanning 只会从扫描中排除前 1,000 个目录。
    • 如果 secret_scanning.yml 大于 1 MB,secret scanning 将忽略整个文件。

您也可以忽略来自 secret scanning 的个别警报。 有关详细信息,请参阅“管理来自机密扫描的警报”。

延伸阅读