CodeCommit 〜クライアント側設定編〜
前回の記事では、AWS CodeCommitのサーバー側の設定を行いました。
CodeCommit 〜サーバー側設定編〜 - Tatsuyashi's Blog
今回はクライアント側の設定と実際にコミット、プッシュまで行ってみたいと思います。
が!
実はサーバー側の設定、まだ残っていました(笑)
ということで今回はまず残っているサーバー側の設定から行っていきます。
IAMユーザの作成
AWSといえば、IAMによるユーザ・権限の管理ですね!
例に漏れず、CodeCommitも権限が必要です。
専用のユーザを作ってみたいと思います。
まずIAMコンソールを開き、左のサイドバーから「ユーザー」→「ユーザーを追加」とクリックしていきます。
ユーザ情報を入力していきます。サンプルのユーザーなので名前は適当です。
アクセス許可の設定は「既存のポリシーを直接アタッチ」から「AWSCodeCommitFullAccess」をアタッチします。
ユーザーの追加が完了すると、アクセスキーID・シークレットアクセスキーが表示されるので、コピーしておきます。
これで、CodeCommitの権限を持ったユーザが作成できました。
HTTPS接続
HTTPSで接続する手順に入ります。
Git認証情報の生成
IAMコンソールを開き、左のサイドバーから「ユーザー」→対象ユーザをクリックし、「認証情報」タブを開きます。
「AWS CodeCommit の HTTPS Git 認証情報」の「生成」ボタンをクリックします。
認証情報が生成されるので、証明書をダウンロードしてユーザに配布します。
パスワードを確認できる唯一の機会ですので忘れずダウンロードやメモをしましょう。
クライアントからの接続
※管理者ではなく、開発者自身がコンソールにログインして操作します。
CodeCommitコンソールを開き、対象のリポジトリを選択し、「クローンURL」から「HTTPS」を選択します。
クリップボードにURLがコピーされるので、早速接続してみたいと思います。
クローン
①クローンします。
git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test
②認証が求められるので、先ほど生成したユーザ名とパスワードを入力します。
Cloning into 'test'... remote: Counting objects: 3, done. Unpacking objects: 100% (3/3), done. Checking connectivity... done.
クローンが成功します。
コミット&プッシュ
とりあえず何かしらソースに変更を加えて・・・
①ステージ
git add README.md
②コミット
git commit -m "test commit"
コミットが成功します。
③プッシュ
git push origin master
プッシュが成功します。
クローンしてからの流れは通常のGitの操作と同じですね。
確認
プッシュされた内容を確認します。
CodeCommitコンソールから対象のリポジトリを開きます。
変更が反映されていますね!
HTTPSでの接続はこれで終わりです。
SSH接続
次にSSHで接続する手順に入ります。
SSH鍵ペアの生成
※開発者作業
ssh-keygen
鍵名はcodecommit_rsaにしておきます。
Enter file in which to save the key (/c/Users/xxxxx/.ssh/id_rsa): /c/Users/xxxxx/.ssh/codecommit_rsa
以上で、codecommit_rsaとcodecommit_rsa.pubが作成されます。
SSH公開鍵のアップロード
IAMコンソールを開き、左のサイドバーから「ユーザー」→対象ユーザをクリックし、「認証情報」タブを開きます。
「SSH 公開鍵のアップロード」をクリックします。
公開鍵の入力欄が表示されるので、codecommit_rsa.pubの内容を貼り付けます。
公開鍵がアップロードできたら、SSHキーIDをコピーしておきます。
SSH秘密鍵の設定
./.ssh/configを以下のように編集します。ファイルがなければ作成します。
Host git-codecommit.*.amazonaws.com User APKAEIBAERJR2EXAMPLE IdentityFile ~/.ssh/codecommit_rsa
UserにはコピーしておいたSSHキーIDを設定します。
SSHの接続テストをします。
ssh git-codecommit.us-east-2.amazonaws.com
実行するとAWS CodeCommitサーバーのフィンガープリントが表示されます。
接続続行の確認には「yes」、その後パスフレーズの入力を求められるので入力します。
You have successfully authenticated〜〜〜
と表示されれば接続テストOKです。
クライアントからの接続
CodeCommitコンソールを開き、対象のリポジトリを選択し、「クローンURL」から「SSH」を選択します。
クリップボードにURLがコピーされるので、接続してみたいと思います。
クローン
①クローンします。
git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test
サーバーのフィンガープリントが表示されます。
接続続行の確認には「yes」、その後パスフレーズの入力を求められるので入力します。
Unpacking objects: 100% (3/3), done. Checking connectivity... done.
クローンが成功します。
コミット&プッシュ
ソースに変更を加えて・・・
①ステージ
git add README.md
②コミット
git commit -m "ssh test commit"
コミットが成功します。
③プッシュ
git push origin master
パスフレーズを聞かれるので、入力するとプッシュが完了します。
確認
プッシュされた内容を確認します。
CodeCommitコンソールから対象のリポジトリを開きます。
変更が反映されていますね!
SSHでの接続はこれで終わりです。
まとめ
今回はCodeCommitに実際に接続してソースの編集、コミット、プッシュまで行いました。
HTTPSとSSH両方試しましたが、手間がかからなくてなおかつ公式ドキュメントで推奨されているHTTPSを使用していこうと思います。