安全基线
目的
定义代码、凭证、仓库和生产环境的最低安全实践。先保证人类操作有边界、有审计,再考虑让自动化或 Agent 接触这些资源。
工具
| 需要 | 工具 |
|---|---|
| 开发者密钥 | 1Password |
| 高级密钥 / 动态凭证 | Vault |
| 依赖扫描 | Dependabot / GitHub Advanced Security |
| SAST | CodeQL / Semgrep |
| Secret scanning | GitHub secret scanning / TruffleHog |
| SBOM | Syft / GitHub dependency graph |
| Provenance | 面向 SLSA 的 build attestations |
| 访问控制 | SSO/MFA、GitHub teams、cloud IAM |
最低规则
- 组织工具启用 SSO 和 MFA。
- Repo access 最小权限。
- Main 分支启用保护。
- 使用集中 secret manager。
- Secret 不得出现在代码、日志、Slack/Lark、issue comment 或截图。
- CI 或定时任务执行依赖扫描。
- Auth、权限、数据导出、支付、生产配置必须安全 review。
- 关键动作必须有 audit log。
三角色安全责任
| 角色 | 负责判断 | 例子 |
|---|---|---|
| 产品负责人 | 业务是否接受用户和数据风险 | 客户数据导出、权限变化、对外沟通 |
| 技术负责人 | 技术方案和安全边界是否可接受 | auth、支付、数据删除、生产配置 |
| 平台 / 资深工程师 | 权限、secret、审计、工具策略如何落地 | IAM、secret manager、CI secret、audit log |
密钥管理
通用阶段建议:
| 阶段 | 建议 |
|---|---|
| 早期 | 1Password vaults 和 service accounts |
| Infra 复杂后 | Vault 或 cloud secret manager |
| 合规/复杂场景 | Vault dynamic credentials + audit |
1Password Secrets Automation 可以通过 service account 或 Connect 向应用暴露密钥。Vault 可以集中管理密钥、轮换凭证、按需生成凭证,并审计访问。
供应链
最低要求:
- Lockfile 必须提交。
- CI 使用 frozen lockfile。
- 开启 Dependabot 或同类能力。
- Build artifact 可追溯到 commit。
- Container image 使用 immutable digest 或 commit tag。
- 生产 artifact 尽可能生成 SBOM。
后续 Agent 就绪要求
这一节在人类安全基线稳定后再看。
Agent runtime 必须具备:
- 独立于人类用户的身份。
- 短期 token。
- Scope-limited repo grant。
- Tool allowlist。
- Secret access audit。
- Sandbox 或 worktree 隔离。
- 风险动作 approval gate。
下一步阅读
读完或填完这份文档后,通常继续看:
- 31-技术规范-technical-standards.md:安全红线明确后,回到技术规范落实到代码和 review。