0Pricing
DevOps Bootcamp · 课时

CI/CD 安全最佳实践

了解流水线中的常见安全漏洞,以及在整个开发生命周期中降低风险的最佳实践

CI/CD 安全最佳实践 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

为什么持续集成/持续交付安全很重要

在现代软件开发中,持续集成/持续交付流水线至关重要。它们可以自动完成代码的构建、测试和部署。

但是,能力越大,责任越大!保护这些流水线的安全对于防范恶意攻击或意外漏洞、保护您的代码、数据和基础设施至关重要。

识别流水线漏洞

在保护安全之前,我们需要了解防护目标。持续集成/持续交付流水线可能容易受到多种攻击:

  • 凭据被盗:被窃取的应用程序接口密钥或令牌。
  • 恶意依赖项:使用存在已知安全缺陷的库。
  • 不安全的配置:访问控制或构建步骤配置错误。
  • 供应链攻击:篡改构建过程本身。

应用最小权限访问

最小权限原则(PoLP)是指只向用户和自动化进程(例如持续集成/持续交付作业)授予完成任务所需的最低权限,不授予更多权限。

如果凭据或作业遭到入侵,这可以限制潜在损害。对于 GitHub 操作,请为每个作业定义具体权限。

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read # Only read access to repo code
      packages: write # Only write to package registry
      id-token: write # Needed for OIDC authentication
    steps:
      - uses: actions/checkout@v4
      - run: echo "Build logic here"

保护代码与依赖项

源代码是应用程序的核心。请从一开始就确保它的安全。

  • 代码审查:同伴审查可以发现潜在的安全缺陷。
  • 静态分析:使用工具扫描代码中的漏洞(专门的 SAST 将在后续课程介绍)。
  • 依赖项扫描:定期检查第三方库中的已知漏洞。

管理第三方依赖项

大多数项目都依赖开源库。这些库功能强大,但如果管理不当,也可能引入漏洞。

  • 使用依赖项 Scanner:集成 Dependabot 等工具,自动检查已知漏洞。
  • 固定依赖项版本:指定依赖项的确切版本,避免发生意外变更。
  • 定期更新:及时更新依赖项,以获得安全补丁。

强化构建环境

构建和测试代码的环境应尽可能安全。您可以将它想象成软件的洁净室。

  • 临时运行器:为每个作业使用全新且隔离的环境。GitHub 托管的运行器默认就是临时的。
  • 最少工具:只安装必要的工具,以缩小攻击面。
  • 安全的基础映像:如果使用容器,请使用可信且经过强化的基础映像。

绝不硬编码机密信息

应用程序接口密钥、数据库凭据或私有令牌等敏感信息绝对 NEVER 直接硬编码到您的代码仓库或工作流文件中。

请始终使用安全的机密信息管理系统。这样可以让敏感数据远离版本控制,并以加密形式保存。

验证工作流输入

如果您的工作流接受外部输入(例如来自手动触发器或拉取请求评论的输入),就必须对这些输入进行验证和清理。

不可信输入可能成为注入攻击的途径,这与 Web 应用程序验证用户输入的情况类似。

on:
  workflow_dispatch:
    inputs:
      deploy_env:
        description: 'Environment to deploy to (e.g., staging, production)'
        required: true
        type: choice
        options:
          - 'staging'
          - 'production'
      version_tag:
        description: 'Git tag for the release version'
        required: true
        type: string

记录并监控流水线活动

了解流水线活动是重要的安全控制措施。良好的日志记录有助于您快速检测和响应可疑行为。

  • 全面日志记录:记录工作流中的所有重要事件和操作。
  • 监控异常:关注失败的安全检查、未经授权的访问尝试或异常的构建时长。
  • 告警:为关键安全事件设置告警。

检查您的理解

让我们测试您对持续集成/持续交付安全最佳实践的掌握程度。

课程总结与后续步骤

恭喜您!您已经学会了持续集成/持续交付流水线的基本安全最佳实践。

  • 应用最小权限原则。
  • 保护源代码并管理依赖项。
  • 强化构建环境。
  • 绝不硬编码机密信息。
  • 验证所有工作流输入。
  • 实施健全的日志记录和监控。

这些实践为安全的 DevOps 生命周期奠定了坚实基础。在接下来的课程中,我们将深入学习 GitHub 机密信息和 SAST 等具体工具与技术。

常见问题解答

「CI/CD 安全最佳实践」课时是免费的吗?

是的 — 「CI/CD 安全最佳实践」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「CI/CD 安全最佳实践」这节课中我会学到什么?

了解流水线中的常见安全漏洞,以及在整个开发生命周期中降低风险的最佳实践 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「CI/CD 安全最佳实践」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. CI/CD 安全最佳实践
  2. 使用 GitHub 管理机密信息
  3. 静态应用安全测试(SAST)
  4. 依赖项与供应链安全(SCA)
← 返回 DevOps Bootcamp