您可能会因为某些原因将机密提交到仓库,例如在文档中提供虚假的机密,或在示例应用中使用。此类情况下,您可以快速忽略警报并记录原因。然而,也可能出现需要完全忽略某个目录以避免大规模产生误报的情况。例如,您可能拥有一个单体应用,其中包含多个集成,每个集成都有一个包含虚拟密钥的文件,这些文件可能触发大量误报,需要进行分流。
您可以配置 secret_scanning.yml 文件,让机密扫描自动关闭在特定目录中发现的警报,并在推送保护中排除这些目录。这些警报将被标记为“已通过配置忽略”。
为用户排除机密扫描警报的目录
-
在 GitHub 上,导航至仓库的主页面。
-
在文件列表上方,选择 添加文件下拉菜单,然后点击 创建新文件。
或者,您可以点击在左侧的文件树视图中。

-
在文件名字段中,输入 ".github/secret_scanning.yml".
-
在 编辑新文件 下,输入
paths-ignore:,随后写入想要从机密扫描中排除的路径。YAML paths-ignore: - "docs/**"
paths-ignore: - "docs/**"这会指示机密扫描自动关闭
docs目录下的所有警报。您可以将此示例文件用作模板,以添加希望在自己仓库中排除的文件和文件夹。您还可以使用特殊字符,例如
*来过滤路径。有关过滤模式的更多信息,请参阅 GitHub Actions 工作流语法。YAML paths-ignore: - "foo/bar/*.js"
paths-ignore: - "foo/bar/*.js"注意
- 如果
paths-ignore中的条目超过 1,000 条,机密扫描仅会排除前 1,000 个目录。 - 如果
secret_scanning.yml大于 1 MB,机密扫描将忽略整个文件。
- 如果
验证文件夹已从机密扫描中排除
- 打开一个已从机密扫描中排除的目录中的文件
- 粘贴一个预先无效化的机密,或一个测试机密。
- 提交更改。
- 在 GitHub 上,导航至仓库的主页面。
- 在仓库名称下,点击 安全与质量 选项卡。如果您看不到 “在 “安全与质量” 选项卡中,选择 下拉菜单,然后点击 安全与质量。此时不应出现针对您刚刚放入文件的机密的新打开警报。
最佳实践
最佳实践包括
- 尽量减少排除的目录数量,并在定义排除规则时做到尽可能精确。这样可以确保指令清晰明确,且排除能够按预期工作。
- 在
secret_scanning.yml文件中使用注释说明为何排除特定文件或文件夹。与普通代码一样,使用注释能够阐明您的意图,便于他人理解预期行为。 - 定期审查
secret_scanning.yml文件。随着时间推移,某些排除可能已不再适用,保持文件整洁且当前是良好的实践。如上所述使用注释可以帮助完成此工作。 - 向安全团队告知您已排除的文件和文件夹以及排除原因。良好的沟通对于确保所有人达成共识、了解为何特定目录或文件被排除至关重要。