GitHub 的全新自定义运行器镜像让您可以直接将 Harden-Runner 嵌入到您的基础设施中,无需修改任何工作流文件即可在整个工作流中提供自动运行时保护。
GitHub 推出了一项强大的新功能:GitHub 托管运行器的自定义镜像。此功能现已处于公开预览阶段,从根本上改变了组织管理 CI 环境安全和工具的方式。
借助这一公开预览功能,团队可以直接将 StepSecurity 的 Harden-Runner 烘焙到运行器镜像中,无需在各个工作流中添加 Harden-Runner action,同时获得持久化的组织级运行时保护。
传统工作流级安全面临的挑战
迄今为止,在 GitHub 托管运行器上使用运行时保护来保护 GitHub Actions 工作流,需要采用逐个工作流的方式。团队必须在每个工作流文件的每个作业中添加 Harden-Runner action 作为第一步。虽然这提供了全面的安全监控和策略执行,但也带来了几个运营挑战:
工作流文件激增:拥有数百或数千个工作流的组织面临着逐一更新每个工作流文件的繁琐任务。即使使用 Secure Repo 和策略驱动 PR 等自动化工具,在大型代码库中保持一致性也需要持续的努力。
开发者摩擦:每个新工作流都要求开发者记得包含 Harden-Runner 步骤。这在开发过程中造成了摩擦,并为不同团队和项目之间不一致的安全态势打开了大门。
治理缺口:没有集中执行机制,安全团队确保每个工作流都受到保护的能力有限。一个被遗忘的步骤就可能使关键构建管道容易受到供应链攻击。
维护开销:安全策略或 Harden-Runner 版本的更新需要在多个工作流文件中进行协调变更,为安全和 DevOps 团队带来运营负担。
对于在多个代码仓库中运行数千个工作流的企业来说,这些挑战变得尤为突出。
自定义运行器镜像改变游戏规则
GitHub 的自定义运行器镜像功能从根本上改变了这一等式。组织现在可以基于 GitHub 策划的基础镜像创建自定义虚拟机镜像,并包含所需的所有工具、依赖项和安全代理。这包括 Harden-Runner 代理。
当您将 Harden-Runner 烘焙到自定义运行器镜像中时,安全代理成为基础设施本身的一部分,而不是每个工作流中的步骤。每个在使用此自定义镜像的运行器上运行的作业都会自动继承内置的运行时保护和监控功能,无需对工作流文件进行任何更改。
这种架构转变带来了几个直接优势:
透明的安全性:工作流在完全运行时保护下运行,而无需开发者修改工作流文件,甚至无需了解底层安全机制。保护就在那里,默认启用。
集中控制:安全团队可以通过运行器镜像生命周期管理来管理和更新 Harden-Runner 代理,而不是在各个代码仓库中追踪单个工作流文件。
一致的策略执行:当安全策略通过策略存储附加时,它们会统一应用于使用自定义镜像运行器运行的所有工作流。这消除了工作流级方法带来的治理缺口。
简化的入职流程:新项目和workflows在使用带有自定义镜像的运行器时会立即受益于运行时安全性。无需完成安全检查清单,无需记住任何步骤。
在 Settings → Harden-Runner Installation 下,您可以找到 GitHub 托管自定义 VM 镜像的安装说明。
GitHub 托管自定义 VM 的安装说明
与现有工作流无冲突
一个常见问题是,如果某些工作流仍然包含 Harden-Runner GitHub Action 步骤,会发生什么。
简短的回答是:没有冲突。
当 Harden-Runner 烘焙到镜像中时,内置的代理会在 VM 启动时启动。如果工作流也包含 Harden-Runner action,该 action 只会检测到已经运行的代理。它会跳过冗余设置。工作流继续正常运行。
这允许团队逐步迁移。您无需在切换到自定义镜像之前更新数百个工作流。内置安装优先,作业执行保持稳定。
CI/CD 安全的未来之路
自定义运行器镜像与内置运行时安全相结合代表了 CI/CD 安全实践的成熟。它不是将安全作为开发者必须记住包含的附加组件,而是将其作为平台本身的一部分。
这类似于在基础设施安全的其他领域看到的演变。正如现代云环境在基础设施层提供安全控制,而不需要每个应用程序实现自己的安全一样,带有内置 Harden-Runner 的自定义运行器镜像将平台级安全性引入 CI/CD 管道。
对于大规模运行 GitHub Actions 的组织来说,这种架构方法解决了历来限制运行时安全采用的运营挑战。安全团队获得集中控制和一致执行。开发者获得透明保护,而无需增加工作流复杂性。组织在整个工作流和代码仓库中实现对 CI/CD 运行时活动的全面可见性。
企业笔记本电脑和生产服务器长期以来受益于强大的安全监控。处理同等敏感数据(包括云密钥、生产构建和源代码)的 CI/CD 运行器也应该获得同级别的保护。带有内置 Harden-Runner 的自定义运行器镜像使这种保护在企业规模上实际可行地部署和维护。