ふりぶろぐ
Web Engineer's Blog
AWS

【AWS】CodeCommitリポジトリを作成してcloneするところまで

CodeCommitのリポジトリをcloneする方法について解説します。

環境
  • AWS
    • CodeCommit
    • IAM

GitHubリポジトリとのミラーリングをやってみたかったのでCodeCommitリポジトリを作ってみました。

ミラーリングの方法についてはこちら。

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は公開鍵と一緒に生成された秘密鍵です。

SSHキーID

CodeCommitリポジトリの作成とclone

リポジトリの作成

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

リポジトリの作成

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

リポジトリの設定

リポジトリのclone

作成できたらcloneコマンドをコピーします。

SSHのクローン

IAMの設定が正しいか確認するためにローカルにcloneしてみましょう。

git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/sample

URLは自分のリポジトリのもの(コピーしたもの)に変更してください。

これでcloneできると思います!

あとがき

リポジトリは簡単に作れるのにIAMの設定に時間がかかりますね。

CodeCommitにあげておくと他のCodeシリーズが使いやすくなると思うので知っておいてよかったかも。

GitHubとのミラーリングも試して見る価値あり。

ABOUT ME
りーふ
たまにブログを書いてるWebエンジニア。 サーバーサイドメインでインフラとフロントエンドもたまにやります。 Javaが得意。 Play Frameworkが好き。 本業は迷惑をかけない程度に手を抜くスタイル。 意識高い系は苦手。