简介
作为组织所有者或安全经理,你可以使用 GitHub 的安全功能来保护组织的代码、依赖项和机密的安全。 有关详细信息,请参阅“GitHub 安全功能”。
组织的安全需求是独一无二的。 如果组织受到了某个特定功能可能阻止的漏洞的影响,或者该功能可帮助你的组织满足合规性要求,则可能需要启用该功能。
可以同时跨组织中的多个存储库启用安全功能。 对于要启用的每个功能,必须决定如何在组织的存储库中推出该功能。 不同的功能对组织及其参与者的影响不同,因此评估每个功能的影响非常重要。 例如:
- 某些功能可以生成通知,以通知组织成员特定漏洞:为了确保这些通知具有针对性和相关性,在你启用某项功能之前,可能要求成员检查其通知设置。 有关详细信息,请参阅“配置通知”。
- 某些功能可能会占用启用这些功能的每个存储库的资源。 例如,在专用存储库中启用 code scanning 可能会使用 GitHub Advanced Security 许可证,在存储库中运行 code scanning 分析将导致使用 GitHub Actions 或其他 CI 系统。
作为组织所有者,你可以通过向团队分配“安全经理”角色来授予某些用户启用或禁用安全功能的权限。 安全经理可以配置安全设置并监视组织中安全功能的使用情况。 有关详细信息,请参阅“管理组织中的安全管理员”。
关于功能的先决条件
某些安全功能具有先决条件。 例如,Dependabot alerts 使用来自依赖项关系图的信息,因此启用 Dependabot alerts 会自动启用依赖项关系图。
某些功能仅适用于使用 GitHub Advanced Security 并已启用 Advanced Security 作为存储库功能的企业。 有关详细信息,请参阅“关于 GitHub 高级安全性”。
Note
企业可以设置策略来管理哪些组织可以启用 GitHub Advanced Security。 有关详细信息,请参阅“强制实施企业的代码安全性和分析策略”。
必须为每个存储库单独配置一些功能。 例如,若要在存储库中启用 Dependabot version updates,必须添加一个 dependabot.yml
文件,指定在何处查找有关项目依赖项的信息。 有关详细信息,请参阅“配置 Dependabot 版本更新”。
在组织中启用安全功能
决定启用安全功能后,下一步是决定如何在组织中推出该功能。
- 如果要尽快推出某项功能,可以一次性为所有符合条件的存储库启用该功能。 有关详细信息,请参阅为所有仓库启用功能。
- 如果要控制功能推出的速度,以及哪些存储库中启用了哪些功能,则可以为所选存储库启用功能。 有关详细信息,请参阅为所选仓库启用功能。
确定如何为组织的现有存储库启用功能后,还必须决定如何处理未来在组织中创建的任何新存储库。 有关详细信息,请参阅为新仓库启用功能。
有关创建跨大型组织或企业推出安全功能的策略的详细信息,请参阅 大规模采用 GitHub 高级安全性简介。
为所有存储库启用功能
推出安全功能的最快方法是一次性为组织中的所有存储库启用该功能。 如果已确定对某项功能的迫切需要,则为所有存储库启用该功能可在整个组织中提供保护,而无需暂停设计推出计划。
在为所有存储库启用某项功能之前,应考虑此操作将产生的影响。 如果不确定某项功能将产生什么影响,最安全的做法是先为有限的所选存储库启用该功能。 在以下情况下,一次性为所有存储库启用某项功能可能是一个合适的选项。
- 你已大致了解组织中的所有存储库,并且确信它们都会受益于特定功能。
- 如果某个功能需要 GitHub Advanced Security 许可证或 GitHub Actions 分钟等资源,则表示你已评估所需的资源并乐于继续。
- 如果该功能生成通知或拉取请求,则你确信这些通知或拉取请求将对于接收它们或必须审阅它们的成员具有针对性和相关性。
准备好继续操作后,请按照以下步骤为所有存储库启用功能。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “设置”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。
-
在左侧边栏中,单击“ 代码安全与分析”。
-
找到要启用的功能,并使用任何关联的复选框微调选项。
-
当你准备要在组织中支持某项功能的所有存储库中启用该功能,请单击该功能名称旁边的“全部启用”。
单击“全部启用”时,系统会提示你确认你的选择。 你还将被告知该功能是否依赖于其他功能,或者需要 GitHub Advanced Security。 有关详细信息,请参阅“管理组织的安全和分析设置”。
为所选存储库启用功能
在某些情况下,最好是识别需要某项功能的存储库,然后仅为这些存储库启用该功能。
如果不确定某项功能将产生的影响,可能需要先在有限的所选存储库中测试该功能,然后再承诺为所有存储库启用该功能,或者可能需要在多个阶段逐步推出该功能。 你可能还意识到,组织中的某些存储库需要与其他存储库不同的一组功能。
可以使用“安全覆盖范围”视图来识别需要特定功能的存储库,然后为这些存储库启用该功能。 以下步骤介绍如何查找“安全覆盖范围”视图。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击“ 安全性”。
-
在边栏中,单击“ 覆盖范围”。
在此视图中,可以使用复选框来选择特定的存储库,也可以使用搜索栏查找要在其中启用某项功能的存储库。 例如,可以使用筛选器来标识某个团队具有写入或管理员访问权限的存储库,或排除不需要相同保护级别的存储库,例如测试存储库或内部文档的存储库。 然后,可以一次性为所有所选存储库启用功能。 有关详细信息,请参阅“为多个存储库启用安全功能”。
如果 GitHub Advanced Security 的许可证数量有限,则可能需要确定包含关键项目或提交频率最高的存储库的优先级。 请参阅 关于 GitHub 高级安全的计费。
Note
- 启用 code scanning 默认设置“不会”__ 覆盖所选存储库的高级设置的任何现有配置,但“会”__ 覆盖默认设置的任何现有配置。
- 为 secret scanning 启用“警报”将会启用 高置信度 警报。 如果要启用非提供程序警报,则需要编辑存储库、组织或企业设置。 有关警报类型的详细信息,请参阅“支持的机密”。
为新存储库启用功能
可以选择在组织中创建的所有新存储库中自动启用安全功能。 在新存储库中启用功能可确保它们立即受到保护,并确保尽早识别存储库中的任何漏洞。 但是,若要尽可能高效地使用安全功能,可能需要单独查看每个新存储库。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “设置”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。
-
在左侧边栏中,单击“ 代码安全与分析”。
-
在功能名称下方,选择用于在适用的未来存储库中自动启用该功能的选项。
监视安全功能的影响
启用某项功能后,应与组织中的存储库管理员和参与者沟通,以评估该功能的影响。 可能需要在存储库级别调整某些功能的配置,或重新评估组织中安全功能的分布情况。 还应监视功能生成的安全警报,以及成员对这些警报的响应。
可以使用安全概述查看哪些团队和存储库受到安全警报的影响,并按严重性细分警报。 有关详细信息,请参阅“评估代码安全风险”。
可以使用各种工具来监视组织成员为响应安全警报而采取的操作。 有关详细信息,请参阅“审核安全警报”。
后续步骤
为了帮助用户报告安全漏洞,可以创建一个默认安全策略,该策略将显示在组织的任何公共存储库中,并且该存储库未设置自己的安全策略。 有关详细信息,请参阅“创建默认的社区运行状况文件”。
组织的安全设置到位后,你可能希望阻止用户更改存储库中的安全设置。 企业所有者可以阻止存储库管理员启用或禁用存储库中的功能。 有关详细信息,请参阅“强制实施企业的代码安全性和分析策略”。
如果使用 GitHub Actions,则可以使用 GitHub 的安全功能来提高工作流的安全性。 有关详细信息,请参阅“使用 GitHub 的安全功能来保护 GitHub Actions 的使用”。