交付管道安全保障:从代码到基础设施的全方位防护
1. 代码完整性保障
在代码管理过程中,确保代码的完整性至关重要。对于 Git 仓库,有两种方式可以保障代码完整性:提交签名和标签签名。
1.1 提交签名与标签签名
- 提交签名 :为每个提交进行签名是最理想的方式,它能确保每一次代码变更的真实性和完整性。
- 标签签名 :如果为每个提交签名负担过重,也可以选择仅对 Git 标签进行签名。标签是 Git 树在某个时间点的快照,修改 Git 历史会破坏标签。假设开发者已彻底审查了标签之前的所有提交,那么对标签进行签名是在不签署每个提交的情况下,保证代码库完整性的好方法。然而,其缺点在于,在大型代码库中,一个看似无害的提交可能会被包含在签名标签下,却对应用造成实际损害。
2. 容器存储的访问控制
Docker 容器在生产环境中的完整性对服务安全至关重要,我们需要防止容器被恶意篡改。主要关注的是 Docker Hub 仓库的访问控制,防止攻击者用欺诈版本替换应用容器。
2.1 管理 Docker Hub 和 CircleCI 之间的权限
在最初设置管道时,我们为 CircleCI 提供了具有完整权限的凭证来推送容器到仓库,但为了提高安全性,应使用具有有限权限的凭证。具体步骤如下:
1. 创建团队 :创建一个仅对目标仓库具有写入权限的团队。
2. 创建新用户 :创建一个具有新凭证的 Doc
超级会员免费看
订阅专栏 解锁全文
847

被折叠的 条评论
为什么被折叠?



