AWS CodeCommit

AWS 提供的全托管 Git 仓库服务,具备 IAM 认证授权和存储自动加密功能。曾于 2024 年 7 月一度停止接受新用户,2025 年 11 月已恢复一般提供

概述

AWS CodeCommit 是一项全托管的 Git 仓库源代码管理服务。其特点是通过 IAM 用户或角色进行访问控制、使用 AWS KMS 自动加密存储数据,以及与 CodePipeline 紧密集成,可在 AWS 生态系统内构建完整的 CI/CD 流水线。曾于 2024 年 7 月 25 日一度停止接受新客户,但应客户要求已于 2025 年 11 月 24 日恢复一般提供,新用户注册也已重新开放(截至 2026 年 8 月)。

IAM 集成认证带来的 AWS 原生源代码管理

CodeCommit 最大的差异化优势在于可通过 IAM 统一管理 Git 仓库的认证和授权。GitHub 或 GitLab 需要为每个用户管理 SSH 密钥或个人访问令牌,而 CodeCommit 可通过 IAM 策略以声明式方式定义仓库级和分支级的访问控制。例如仅允许发布管理员角色向 main 分支推送这样的控制可通过 IAM 策略的 Condition 子句实现。认证方式支持 HTTPS(通过 Git 凭证助手)和 SSH,使用 AWS CLI 的 credential helper 可透明地使用 IAM 临时凭证进行 Git 操作。存储数据通过 AWS KMS 客户托管密钥或 AWS 托管密钥自动加密,通信通过 TLS 保护。对于金融机构和政府机关等对源代码存储位置有严格要求的组织,仓库封闭在 AWS 区域内是一大优势。

CodePipeline 集成与 CI/CD 流水线构建模式

CodeCommit 作为 CodePipeline 的源阶段原生集成,可构建以仓库推送为触发、通过 CodeBuild 执行构建和测试、通过 CodeDeploy 自动部署的 CI/CD 流水线。通过 EventBridge 规则检测推送事件,无轮询延迟,流水线实时启动。还具备拉取请求功能,可通过审批规则模板强制至少需要 2 名审阅者批准等合并条件。但与 GitHub 或 GitLab 相比,拉取请求的 UI 和功能较为有限。Azure DevOps 的 Azure Repos 也提供类似的云原生 Git 仓库,且截至 2026 年仍可新注册使用。Git 相关书籍(Amazon)可帮助打好基础。

从停止受理到恢复提供的经过与实务教训

2024 年 7 月 25 日,AWS 一度停止向新客户提供 CodeCommit,并在官方博客中建议迁移到 GitHub、GitLab、Bitbucket 等第三方 Git 托管服务。此后,AWS 根据客户反馈调整了方针,CodeCommit 已于 2025 年 11 月 24 日恢复一般提供,新用户注册也已重新开放(截至 2026 年 8 月)。这段经过给实务留下的教训,是平时就确保仓库可移植性的重要性。使用 git clone --mirror 获取仓库的完整副本,再通过 git push --mirror 推送到目标仓库,Git 数据本身很容易迁移;但基于 IAM 的访问控制、审批规则模板、EventBridge 触发器等 AWS 特有的周边配置,则需要针对目标平台的认证模型(GitHub 的 Organization 权限、GitLab 的组权限等)和 Webhooks 重新设计。在选择或迁移托管服务时,应将这些「Git 本体之外」的附带配置的迁移成本一并纳入评估。

分享XB!