Using AWS CodeCommit (VSC)

Introductory session to AWS CodeCommit

The AWS CodeCommit service allows organizations to securely import and host scalable, private Git code repositories. All open source git clients can integrate and work with CodeCommit repositories via the CLI.

CodeCommit also supports several Git commands and works with Jenkins, an open source tool for continuous integration. There is no size limit with repositories hosted with AWS CodeCommit  and can be up to 2GB

AWS CodeCommit stores data in Amazon S3 and Amazon DynamoDB. CodeCommit automatically encrypts files and repositories at rest through AWS Key

Greater security measure can be implemented by integrating CodeCommit with AWS IAM (Identity and Access Management), which enables Admins to assign user-access rights (policies) and establish MFA. Connection to CodeCommit can be achieved via  HTTPS or SSH.

Step 1:

Create a Repository on AWS CodeCommit
– Navigate to this Url and select your desired region https://eu-central-1.console.aws.amazon.com/codecommit

Then click on Create Repository

 

Step 2: Configure the email notification

Here, you can either select an existing SNS Topic or create a new Topic

Now, on the same page a new dialog window pops up and here, you can subscribe users

Enter the email and save

You should get an email, to confirm subscription to the Topic and close the Subscribe window and save.

Create IAM policies and attach these Policies to the users
– For Admins: Attached AWSCodeCommitFullAccess to the users

  • For normal users: Attached AWSCodeCommitPowerUser

Note: Without having these policies assigned to the IAM user(s), you will never be able to clone the repository nor perform any related task.

Now you can select your connection types to get tips

For HTTP connection to the Repository, I will discuss this in the next article.

Step 3:  For SSH connection
To connect using SSh, please follow these steps

https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-windows.html

Download git for windows from here

Note: Since you are using git, the .ssh file would be located in install path e.g., for me C:\Program Files\Git\etc\ssh

My path, your might be different <installPath>\Git\etc\ssh\ssh_config

Generate your Public and Private Keys for Git and AWS CodeCommit

Run the Git Bash program
enter ssh-keygen as shown below to generate your public and private key files and follow the directions to save the file to the .ssh directory for your profile

Note: This generates the public and private key files

  • Navigate to the path .ssh to get the public key and copy the content
  • Sign in to AWS Console
    note: You must have the right policies assigned in order to perform this.
  • In the IAM console, in the navigation pane, choose Users, and from the list of users, choose your IAM user.
  • On the user details page, choose the Security Credentials tab, and then choose Upload SSH public key.
  • Paste the contents of your SSH public key into the field, and then choose Upload SSH public key.
  • Copy or save the information in SSH Key ID (for example, AxxxxxxxxxxxxxxxxxE).

  • Navigate to .ssh/config
  • Add the following lines to the file, where the user is the SSH Key ID generated after uploading the Public Key.

and the value for IdentityFile is the path to and name of the private key file:

Note: Ensure you give the right name and path of the private key  for the IdentityFile and

  • Save the file as config
    Note: not with any extension but just config and close the notepad. If you use an extension, the ssh connection will fail.

You can test your SSH configuration by running this syntax:
– ssh git-codecommit.us-east-2.amazonaws.com

Step 4: Connect to the AWS CodeCommit Console and Clone the Repository

To connect to an AWS CodeCommit repository

  • Open the AWS CodeCommit console at https://console.aws.amazon.com/codecommit.
  • In the region selector, choose the right region where the repository was created. Repositories are specific to an AWS region
  • Choose the repository and this will open the code page for the specific repository
  • Choose Clone URL, and then copy the SSH URL

In the git bash programe (In the Bash emulator), run the git clone command followed by the copied url to clone the repository.
This command will clone and create a local repo in a sundirectory of the directory where this command is run.

https://aws.amazon.com/codecommit/pricing/

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html

https://searchaws.techtarget.com/definition/AWS-CodeCommit-Amazon-Web-Services-CodeCommit

https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html?icmpid=docs_acc_console_intro

https://stackoverflow.com/questions/9513712/git-ssh-client-for-windows-and-wrong-path-for-ssh-config-file