Appearance
AI 助手 - 安全发布引导
本页面专为 AI 助手设计
用户可以将本页面的 URL 发送给 AI 助手,AI 助手可以阅读本页内容,逐步引导用户完成软件安全发布的全部流程。
使用示例
将以下提示词发送给你的 AI 助手:
"使用 websearch 访问 https://security-platform-docs.vercel.app/ai/ 告诉我接下来该做什么"
AI 会阅读本页内容,根据你的进度逐步引导你完成安全发布流程。
面向 AI 助手的说明
你正在阅读一份软件安全发布流程指南。请根据以下步骤,引导用户完成从创建 GitHub 账号到提交安全审核的全流程。每个步骤请逐一确认用户是否完成,再继续下一步。
流程总览
第 1 步:创建 GitHub 账号
↓
第 2 步:申请加入 secure-artifacts 组织
↓
第 3 步:将项目上传到组织
↓
第 4 步:配置 GitHub Actions CI
↓
第 5 步:提交安全审核第 1 步:创建 GitHub 账号
如果用户已有 GitHub 账号,跳过此步骤。
- 访问 https://github.com/signup
- 按照页面提示填写用户名、邮箱和密码
- 完成邮箱验证
- 登录 GitHub
确认点: 请用户提供其 GitHub 用户名,确认账号已创建。
第 2 步:申请加入 secure-artifacts 组织
所有需要安全审核的项目必须托管在 secure-artifacts GitHub 组织下。
2.1 提交加入组织申请
- 打开安全管理平台的提交页面:https://security-platform-web.vercel.app
- 选择 "申请加入组织" 流程
- 填写以下信息:
- GitHub 用户名或主页链接 - 例如
your-username或https://github.com/your-username - Teams 链接 - Microsoft Teams 联系链接
- 提交者邮箱 - 工作邮箱
- GitHub 用户名或主页链接 - 例如
- 点击提交
2.2 接受组织邀请
管理员审核通过后会发送 GitHub 组织邀请:
- 关注 GitHub 通知和 Teams 通知
- 收到邀请后,访问 https://github.com/orgs/secure-artifacts/invitation
- 点击 Join 按钮接受邀请
确认点: 请用户确认已收到并接受了组织邀请。
第 3 步:将项目上传到组织
加入组织后,将项目添加到 secure-artifacts 组织下。
方式一:Fork 项目(推荐)
如果项目已经在用户个人的 GitHub 上:
- 打开项目页面
- 点击右上角 Fork 按钮
- 在 Owner 下拉菜单中选择 secure-artifacts
- 点击 Create fork
方式二:创建新项目
如果项目还没有 GitHub 仓库:
- 访问 https://github.com/organizations/secure-artifacts/repositories/new
- 填写项目名称和描述
- 选择 Public 或 Private
- 创建仓库后,按照页面提示推送代码:
bash
git remote add origin https://github.com/secure-artifacts/your-project.git
git branch -M main
git push -u origin main方式三:转移现有项目
- 进入项目 Settings
- 滚动到底部 Danger Zone
- 点击 Transfer repository
- 输入目标组织
secure-artifacts
确认点: 请用户提供组织下的项目 URL,格式应为 https://github.com/secure-artifacts/项目名。
第 4 步:配置 GitHub Actions CI
在项目中添加 GitHub Actions 工作流,确保构建产物带有 Attestation 签名。
4.1 创建工作流文件
在项目根目录创建 .github/workflows/release.yml 文件。
以下是适用于 Node.js 项目的基础模板:
yaml
name: Build and Release
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
attestations: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Dependencies
run: npm ci
- name: Build
run: npm run build
- name: Attest Build Provenance
uses: actions/attest-build-provenance@v2
with:
subject-path: 'dist/*'
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: dist/*
generate_release_notes: true4.2 关键配置说明
permissions 必须包含以下三项:
yaml
permissions:
id-token: write # 生成 OIDC token
contents: write # 创建 Release
attestations: write # 生成 AttestationAttestation 步骤说明:
yaml
- name: Attest Build Provenance
uses: actions/attest-build-provenance@v2
with:
subject-path: 'dist/*' # 指向构建产物路径subject-path 应指向项目的构建产物目录,根据实际项目调整。
4.3 其他语言/框架模板
- Python 项目 - 将 Setup Node.js 替换为 Setup Python,将
npm ci && npm run build替换为pip install build && python -m build - Go 项目 - 使用
actions/setup-go,运行go build - Electron 应用 - 需要多平台构建矩阵
更多模板请参考:完整 Workflow 示例
4.4 提交工作流文件
bash
git add .github/workflows/release.yml
git commit -m "Add release workflow with attestation"
git push origin main确认点: 请用户确认已将工作流文件推送到 GitHub 仓库。
第 5 步:提交安全审核
项目配置完成后,提交安全审核申请。
- 打开安全管理平台:https://security-platform-web.vercel.app
- 选择 "提交项目审核" 流程
- 填写以下信息:
- GitHub 项目 URL - 必须以
https://github.com/secure-artifacts/开头 - 项目名称 - 项目的显示名称
- 项目描述 - 简要描述项目功能和用途
- Teams 链接 - Microsoft Teams 联系链接
- 提交者邮箱 - 工作邮箱
- GitHub 项目 URL - 必须以
- 点击提交
审核流程
提交后,管理员会进行以下审核:
- 自动预检 - 检查基本安全要求,自动开启 Secret Scanning 和 Push Protection
- 人工审核 - 管理员审核代码,手动开启 Code Scanning (CodeQL)
- 结果通知 - 通过 Teams 通知审核结果
审核通常在 1-3 个工作日内完成。
确认点: 请用户确认已提交审核申请,并告知用户等待管理员通知。
发布新版本
审核通过后,每次发布新版本只需创建一个 Git Tag:
bash
# 创建版本 tag
git tag -a v1.0.0 -m "Release version 1.0.0"
# 推送 tag 触发自动构建
git push origin v1.0.0推送 tag 后,GitHub Actions 会自动构建、签名并发布到 Release 页面。
验证发布
用户可以使用以下命令验证已发布的软件:
bash
# 安装 GitHub CLI(如果未安装)
# macOS: brew install gh
# Windows: winget install GitHub.cli
# 验证软件来源
gh attestation verify ./下载的文件 --repo secure-artifacts/项目名常见问题
Q: GitHub Actions 构建失败怎么办?
- 进入仓库的 Actions 页面查看失败日志
- 修复代码问题
- 删除失败的 tag 并重新创建:
bash
git tag -d v1.0.0
git push origin :refs/tags/v1.0.0
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0Q: 项目审核不通过怎么办?
管理员会通过 Teams 说明不通过的原因。修复问题后可以重新提交审核。
Q: 可以在审核前先测试构建流程吗?
可以。配置好工作流后,创建一个测试 tag(如 v0.0.1-test)验证构建流程是否正常。
Q: permissions 中的三个权限分别是什么作用?
id-token: write- 让 GitHub Actions 生成 OIDC token,用于 Attestation 签名contents: write- 允许创建 GitHub Releaseattestations: write- 允许生成和存储 Attestation 记录