【AWS】CodeCommitリポジトリを作成してcloneする!

今回はこのような質問をいただきました。

CodeCommitを使いたい!
AWS上でソースコード管理を行うならCodeCommitですよね。
そこで今回はこちらの質問について解説していきます!
- AWS
- CodeCommit
- IAM
CodeCommitの準備!
IAMの作成
まずはCodeCommitへアクセスするためのIAMを用意します。
グループの作成
IAMのグループ→新しいグループを作成と進んでください。

グループ名を入力します。
私はCodeCommitSSHOnlyと設定しました。

次にポリシーを割り当てます。
以下の3つを割り当ててください。
- IAMUserSSHKeys
- IAMReadOnlyAccess
- AWSCodeCommitFullAccess

確認したらグループを作成します。

ユーザを作成する
次はIAMのユーザー→ユーザーを追加と進んでください。

ユーザー名を入力し、アクセスの種類を選択します。
アクセスの種類はプログラムによるアクセスを選択してください。
ユーザー名はcodecommit_ssh_userと設定しました。

先ほど作成したCodeCommitSSHOnlyというグループに追加します。

タグの設定は不要でそのまま作成します。

作成すると一覧に表示されているので詳細ページへ行きます。

認証情報タブからアクセスキーを削除します。

公開鍵とIAMを連携する
鍵ファイル用意するため、少しだけローカルで作業をします。
以下のコマンドで鍵ファイルを生成します。
すでに鍵ファイルがある人は作る必要ないかも。
$ ssh-keygen
デフォルトだと~/.ssh
にid_rsaとid_rsa.pubが生成されます。
名前を指定して生成した場合はその名前になっています。
生成されたid_rsa.pubの内容をコピーします。
$ cat ~/.ssh/id_rsa.pub | pbcopy
そしてコピーした内容をSSH パブリックキーのアップロードに貼り付けます。

これでIAMの設定が完了しました。
SSHの設定
configファイルの設定
~/.ssh/configに以下の設定を追記します。
Host git-codecommit.*.amazonaws.com
User APKXXXXXXXXXXXXX
IdentityFile ~/.ssh/id_rsa
UserはIAMに公開鍵を登録した際に発行されたSSHキーIDを設定してください。
IdentityFileは公開鍵と一緒に生成された秘密鍵です。

CodeCommitリポジトリの作成とclone
リポジトリの作成
まずはCodeCommitのリポジトリを作成します。

リポジトリ名を入力して作成しましょう。

リポジトリのclone
作成できたらcloneコマンドをコピーします。

IAMの設定が正しいか確認するためにローカルにcloneしてみましょう!
git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/sample
URLは自分のリポジトリのもの(コピーしたもの)に変更してください。
これでcloneできると思います!
あとがき
リポジトリは簡単に作れるのにIAMの設定に時間がかかりますね。
CodeCommitにあげておくと他のCodeシリーズが使いやすくなると思うので知っておいてよかったかも。
GitHubとのミラーリングも試して見る価値あり!
