CodeCommit を使ってみよう

March 18, 2019

リポジトリの作成

まずは CodeCommit リポジトリを作成から。
マネジメントコンソールの [リポジトリの作成] から実際にリポジトリを作ってみよう。

f:id:shiro_kochi:2018××××××××:plain:w100:left

作成すると、リポジトリ一覧から確認できるようになる。

f:id:shiro_kochi:2018××××××××:plain:w100:left

SSH 接続の設定

まずは、CodeCommit 用の SSH キーの作成を行う。

$ ssh-keygen -t rsa -b 2048 -f codecommit  
Generating public/private rsa key pair.  
Enter passphrase (empty for no passphrase):   
Enter same passphrase again:   
Your identification has been saved in codecommit.  
Your public key has been saved in codecommit.pub.  
The key fingerprint is:  
SHA256:KGZXUmbWvTtLlFXPWPHUyLhTOqVXG8V+RpYjWeU7V/g yuki@HomeMacs-Mac-mini.local  
The key's randomart image is:  
+---[RSA 2048]----+  
|        =. . oo*%|  
|       =  . oo*@O|  
|      . .    X+=X|  
|       +    X .o*|  
|    + o S  . = +E|  
|   o o      +   o|  
|           . o   |  
|            .    |  
|                 |  
+----[SHA256]-----+  
  
$ ls -al codecommit*  
-rw-------  1 yuki  staff  1679 Mar 17 14:01 codecommit  
-rw-r--r--  1 yuki  staff   410 Mar 17 14:01 codecommit.pub  

IAM ユーザに SSH キーを登録

CodeCommit へのアクセス権を持った IAM ユーザに公開鍵の登録を行う。
対象の IAM ユーザに IAM Policy CodeCommitFullAccess を付与し、その後、IAM ユーザ設定画面の [Upload SSH Public Key] から先ほど作成した公開鍵の中身をコピーペーストでアップロードする。

f:id:shiro_kochi:2018××××××××:plain:w100:left

ここで、SSH キー ID を控えておき、以下のように ~/.ssh/config に設定を追加しておく。

Host git-codecommit.*.amazonaws.com  
     User APKAXXXXXXXXXXXXXXXX  
     IdentityFile ~/.ssh/codecommit  

リポジトリに接続

実際にリポジトリに接続し、コードをアップロードする。
まずは以下の要領で CodeCommit に接続する。

$ ssh git-codecommit.us-west-2.amazonaws.com  
You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-west-2.amazonaws.com closed by remote host.  
Connection to git-codecommit.us-west-2.amazonaws.com closed.  

あとは Git の設定を行い、Origin に CodeCommit の URL を追加する。

$ git remote -v  
origin	     https://github.com/xxx/LogChance.git (fetch)  
origin	     https://github.com/xxx/LogChance.git (push)  
$ git remote set-url --add origin ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/LogChance  
$ git remote -v  
origin					https://github.com/U-PIN/LogChance.git (fetch)  
origin					https://github.com/U-PIN/LogChance.git (push)  
origin					ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/LogChance (push)  

ここまで来たらあとは git push origin master で GitHub と CodeCommit に同時に変更がプッシュされる形になる。

$ git push origin master  
Everything up-to-date  
Warning: Permanently added the RSA host key for IP address '52.119.168.71' to the list of known hosts.  
Counting objects: 1482, done.  
Delta compression using up to 4 threads.  
Compressing objects: 100% (1324/1324), done.  
Writing objects: 100% (1482/1482), 1.57 MiB | 1.44 MiB/s, done.  
Total 1482 (delta 424), reused 0 (delta 0)  
To ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/LogChance  
 * [new branch]      master -> master  

 © 2023, Dealing with Ambiguity