AWS CodeCommit

Servicio de repositorio Git completamente administrado proporcionado por AWS con autenticación/autorización mediante IAM y encriptación automática en reposo, cuyo acceso para nuevos usuarios fue suspendido en julio de 2024

Descripción general

AWS CodeCommit era un servicio de gestión de código fuente que proporcionaba repositorios Git de forma completamente administrada. Se caracterizaba por el control de acceso mediante usuarios y roles IAM, encriptación automática de datos almacenados con AWS KMS y estrecha integración con CodePipeline, permitiendo construir pipelines CI/CD completamente dentro del ecosistema AWS. El 25 de julio de 2024 se suspendió la aceptación de nuevos clientes, y se recomienda a los usuarios existentes migrar a otros servicios.

Gestión de código fuente nativa de AWS mediante autenticación integrada con IAM

El principal factor diferenciador de CodeCommit era la capacidad de gestionar centralmente la autenticación y autorización de repositorios Git mediante IAM. Mientras que en GitHub o GitLab es necesario gestionar claves SSH o tokens de acceso personal por usuario, en CodeCommit se podía definir declarativamente el control de acceso por repositorio y por rama mediante políticas IAM. Por ejemplo, controles como "solo el rol de release manager puede hacer push a la rama main" se podían implementar con cláusulas Condition en políticas IAM. Los métodos de autenticación soportaban tanto HTTPS (a través del credential helper de Git) como SSH, y usando el credential helper de AWS CLI se podían realizar operaciones Git de forma transparente con credenciales temporales de IAM. Los datos almacenados se encriptaban automáticamente con claves administradas por el cliente o claves administradas por AWS de KMS, y las comunicaciones se protegían con TLS. Para organizaciones con requisitos estrictos sobre la ubicación de almacenamiento del código fuente, como instituciones financieras o agencias gubernamentales, el hecho de que los repositorios estuvieran contenidos dentro de una región AWS era una gran ventaja.

Integración con CodePipeline y patrones de construcción de pipelines CI/CD

CodeCommit se integraba nativamente como etapa de origen de CodePipeline, permitiendo construir pipelines CI/CD que ejecutaban automáticamente compilación y pruebas en CodeBuild y despliegue con CodeDeploy al hacer push al repositorio. Al detectar eventos de push a través de reglas de EventBridge, el pipeline se iniciaba en tiempo real sin retrasos por polling. También contaba con funcionalidad de pull requests, pudiendo forzar condiciones de merge como "se requiere la aprobación de al menos 2 revisores" mediante plantillas de reglas de aprobación. Sin embargo, comparado con GitHub o GitLab, la UI y funcionalidad de pull requests era limitada, resultando insuficiente como workflow de revisión de código. Azure DevOps Azure Repos también proporciona repositorios Git nativos de la nube de manera similar, pero Azure Repos sigue disponible para nuevos usuarios en 2026 y la integración con Azure Pipelines continúa. Libros sobre Git (Amazon) permiten consolidar los fundamentos aplicables a cualquier servicio de hosting.

Fin del servicio y selección de destino de migración - Acciones que deben tomar los usuarios existentes

El 25 de julio de 2024, AWS suspendió la provisión de CodeCommit a nuevas cuentas. Los usuarios existentes pueden seguir utilizándolo, pero no se añadirán nuevas funcionalidades y se prevé una reducción gradual. Los destinos de migración recomendados oficialmente por AWS en su blog son servicios de hosting Git de terceros como GitHub, GitLab y Bitbucket. Para la migración, primero es necesario rediseñar el control de acceso basado en IAM al modelo de autenticación del destino (permisos de Organization en GitHub, permisos de grupo en GitLab, etc.). CodePipeline soporta GitHub y Bitbucket como proveedores de origen, por lo que la reconstrucción del pipeline es relativamente sencilla. Sin embargo, si se usaban reglas de EventBridge con triggers de CodeCommit, será necesario reemplazarlas por GitHub Webhooks o GitLab Webhooks. El procedimiento de migración más simple es obtener una copia completa del repositorio con git clone --mirror y reflejarla en el destino con git push --mirror. Las reglas de protección de ramas y plantillas de aprobación deben reconfigurarse manualmente, por lo que es importante hacer un inventario de la configuración actual antes de la migración.

共有するXB!