使用 wait-for-secrets 构建无密钥 CI/CD 流水线

Eliminate persistent secrets & use MFA in your CI/ CD pipelines

持续集成和持续交付(CI/CD)平台在管理关键 IT 系统和软件发布中起着至关重要的作用。随着 DevOps 文化和基础设施即代码实践的兴起,CI/CD 系统还管理整个基础设施和应用栈。因此,这些平台通常存储着可访问高度敏感资源的密钥,例如云管理员 IAM 身份和软件分发账户。

不幸的是,CI/CD 平台在软件供应链中的重要性使其成为攻击者寻求窃取敏感数据的目标。最近的 CircleCI 泄露事件就是这种攻击模式的一个例证。其他 CI/CD 提供商,如 TravisCI,也曾遭受类似的安全事件。CircleCI 建议其客户轮换存储在其平台上的所有密钥;这是标准的安全事件响应实践。然而,这种被动式密钥轮换活动对大型组织来说需要付出大量努力。创建存储在 CI/CD 中所有密钥的清单对这类组织来说并非易事。

为了解决这一问题并提升安全性,关键是摒弃在 CI/CD 中使用长期密钥和单因素认证技术。为此,StepSecurity 开发了一个名为 wait-for-secrets 的开源项目。wait-for-secrets 不依赖 CI/CD 平台提供密钥,而是允许项目负责人在 CI/CD 流水线执行时交互式地提供密钥。这种方法消除了在 CI/CD 平台中存储长期访问密钥的需要。这种部署模式还减少了组织需要维护的密钥数量,因为你可以在 CI/CD 中复用现有账户,而无需创建专用账户。此外,wait-for-secrets 可以在 CI/CD 中启用多因素认证,为敏感操作提供额外的安全层。

GitHub Actions 中使用 wait-for-secrets 的演示

我们强烈推荐对特权密钥使用它来增强软件供应链的安全。如果你使用长期密钥在 CI/CD 中执行敏感操作,请尝试 wait-for-secrets