okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

AWS CodeCommitのリポジトリにSSHでアクセスする

前回のブログAWS CodeCommitを触ってみました。その時作成しGitたリポジトリへはHTTPSを使ってアクセスしましたが、今回はSSHを使ったやり方をまとめます。
ドキュメントにはリポジトリのサイズが大きい場合はHTTPSでなくSSHの使用を検討しましょうって書いてますね。

SSHキーの操作をするIAMポリシーを作成&割り当てる

AWS Management ConsoleでIAMにアクセスし、左メニューからPoliciesを選択します。

f:id:okochang:20150713093955p:plain

ポリシーテンプレートの中からIAMUserSSHKeysを選択し、Attachを選択します。

f:id:okochang:20150713012822p:plain

アタッチしたいユーザーをチェックして、Attach Policyをクリックします(IAMユーザーは事前に作成しておいて下さい)。

f:id:okochang:20150713012919p:plain

IAMユーザーにSSH公開鍵を割り当てる

IAMユーザーにSSH公開鍵を割り当てます。左メニューからUsersを選択します。

f:id:okochang:20150713094125p:plain

割り当てたいユーザーをクリックします。

f:id:okochang:20150713013045p:plain

設定画面のSSH keys for AWS CodeCommitにあるUpload SSH Keyをクリックします。

f:id:okochang:20150713013149p:plain

使いたいSSH公開鍵のテキストデータをペーストしてUpload SSH Keyをクリックします。
SSHの公開鍵と秘密鍵のペアは事前に作成しておいて下さい。

f:id:okochang:20150713013227p:plain

ローカルコンピュータのSSH設定

CodeCommitにSSHアクセスする場合の設定をします。SSH公開鍵をアップロードするとSSH Key IDが付与されます。

f:id:okochang:20150713013339p:plain

CodeCommitのホスト名、付与されたSSH Key ID、秘密鍵のパス、を以下のように設定します。

$ vim .ssh/config
Host git-codecommit.*.amazonaws.com
    User APKAI2EI6HC4N47QBQ3Q
    IdentityFile ~/.ssh/your-ssh-private-key.pem

設定ファイルの権限設定を忘れずにしておいてください。

$ chmod 600 .ssh/config

動作確認

以下のようにSSHで前回のGitリポジトリを手元にCloneできました。

$ git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/SampleRepository

必要に応じて、リモートリポジトリの設定を追加します。

$ git remote add  ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/SampleRepository

感想

普段はGitリポジトリへの接続はSSHを使っているので、個人的にはこっちのほうがしっくりきます。
OpsWorksで起動するEC2インスタンスSSH公開鍵をセットしたり出来ますが、その時の手順とはまったく別物という感じですね。

参考

docs.aws.amazon.com