可能存在需要将机密提交到存储库的情况,例如在文档或示例应用中提供虚假机密时。 在这些场景中,可以快速驳回警报并记录原因。 但在某些情况下,可能希望完全忽略某个目录,以避免大规模产生误报警报。 例如,你可能有一个包含多个集成的整体应用程序,其中包含一个虚拟密钥文件,可能会引发大量虚假警报,需要进行会审。
可以配置 secret_scanning.yml 文件,以自动关闭 secret scanning 在特定目录中发现的警报,并将这些目录排除在推送保护之外。 这些警报将被关闭,并标记为“根据配置忽略”。
从 用户的机密扫描警报
中排除目录
-
在 GitHub 上,导航到存储库的主页面。1. 在文件列表上方,选择“Add file” 下拉菜单,然后单击“ Create new file”********。
也可在左侧的文件树状视图中单击 。

-
在“文件名”字段中,输入“.github/secret_scanning.yml”。
-
在“编辑新文件”**** 下方,输入
paths-ignore:,后跟要从 secret scanning 中排除的路径。YAML paths-ignore: - "docs/**"
paths-ignore: - "docs/**"这会告知 secret scanning 自动关闭
docs目录中的针对所有内容的警报。 可以使用此示例文件作为模板来添加想要从自己的存储库中排除的文件和文件夹。也可以使用特殊字符(如
*)筛选路径。 有关筛选模式的更多信息,请参阅 GitHub Actions 的工作流语法。YAML paths-ignore: - "foo/bar/*.js"
paths-ignore: - "foo/bar/*.js"注意
- 如果
paths-ignore中的条目超过 1,000 个,secret scanning 只会从扫描中排除前 1,000 个目录。 - 如果
secret_scanning.yml大于 1 MB,secret scanning 将忽略整个文件。
- 如果
验证目录已从 secret scanning 中排除
- 在已从机密扫描中排除的目录中打开一个文件
- 粘贴一个预先失效的机密或测试机密。
- 提交更改。
- 在 GitHub 上,导航到存储库的主页面。
- 在仓库名称下,单击 “Security”****。 如果看不到“Security”选项卡,请选择 下拉菜单,然后单击“Security”********。
刚引入文件的机密不应有新的未处理警报。

最佳做法
最佳做法包括:
- 尽量减少排除的目录数量,定义排除规则时尽可能精确。 这可确保说明尽可能清晰,且排除规则按预期生效。
- 在
secret_scanning.yml文件的注释中说明排除特定文件或文件夹的原因。 与常规代码一样,使用注释可明确意图,让他人更容易理解预期行为。 - 定期查看
secret_scanning.yml文件。 随着时间推移,某些排除规则可能不再适用,保持文件整洁和最新是良好做法。 如前所述,使用注释有助于实现这一点。 - 告知安全团队已排除的文件和文件夹及其原因。 良好的沟通对于确保所有人达成共识、理解排除特定文件夹或文件的原因至关重要。