Skip to content

CodeCommit Overview

  • Version control is the ability to understand the various changes that happened to the code over time (and possibly roll back)
  • All these are enabled by using a version control system such as Git
  • A Git repository can be synchronized on your computer but it usually is uploaded on a central online repository
  • Benefits are:
    • Collaborate with other developers
    • Make sure the code is backed-up somewhere
    • Make sure it's fully viewable and auditable

CodeCommit

  • Git repositories can be expensive
  • The industry includes GitHub, GitLab, BitBucket, ...
  • And AWs CodeCommit:
    • Private Git repositories
    • No size limit on repositories (scale seamlessly)
    • Fully managed, highly available
    • Code only in AWS Cloud account => increased security and compliance
    • Security (encrypted, access control, ...)
    • Integrated with Jenkins, AWS CodeBuild and other CI tools

Security

  • Interactions are done using Git (standard)
  • Authentication
    • SSH keys - aws users can configure SSH keys in their IAM Console
    • HTTPS - with AWS CLI Credential helper or Git Credentials for IAM user
  • Authorization
    • IAM policies to manage users/roles permissions to repositories
  • Encryption
    • Repositories are automatically encrypted at rest using AWS KMS
    • Encrypted in transit (can only use HTTPS or SSH - both secure)
  • Cross-account Access
    • DO NOT share your SSH keys or your AWS credentials
    • Use an IAM Role in your AWS account and use AWS STS (AssumeRole API)

CodeCommit vs GitHub

CodeCommit GitHub
Support Code Review (Pull Requests) y y
Integration with AWS CodeBuild y y
Authentication (SSH & HTTPS) y y
Security IAM Users & Roles Github users
Hosting Managed & hosted by AWS Hosted by Github Github enterprise: self hosted on your servers
UI minimal fully featured